アプリ開発者とインフラ技術者間のSRE的なコミュニケーション改善に役立つインフラ基盤とは:SREの考え方で“運用”を変えるインフラ基盤 大解剖(3)(2/3 ページ)
本連載では、「インフラの、特に基盤寄りの立場からSRE(Site Reliability Engineering)の活動を行い、Webサービスの価値を高めるためにはどうしたらいいか」について、リクルートの新たなインフラ基盤を例に見ていきます。今回は、インフラ基盤の技術的解説とともに、出始めている成果、今後の展望についてお話しします。
既存インフラとの親和性を担保しつつ、ユーザー利便性を最大化させるベストプラクティスとは
前述の通り、Fleetインフラ基盤の主要なネットワーク機能はNSX、BIG-IP VEが担っており、「Fleet」というサービスを提供する上でアレンジを加えた使い方をしています。
アレンジの内容には、連載第1回で述べたような「既存のインフラであるRAFTELとの親和性を考慮したインフラとしての機能を提供する」「利用者にインフラの構成要素をそのまま出さず簡単にオペレーション可能とする」などの工夫を加えています。ここからは、2つのコンポーネントをどのように使っているかを紹介します。
FleetにおけるBIG-IP VEの使い方
Fleetインフラ基盤では、前述の通りロードバランサーの機能としてBIG-IP VEを利用しています。BIG-IP VEにはもともとGUIベースの管理画面、「iControl REST」というREST APIが管理機能として備えられており、権限制御も可能で各種機能をインフラ利用者に解放することも可能です。
Fleetでは、標準の機能を全解放するといったことをあえてせず、「Fleetコンソール」経由で本当に必要な機能のみに制限しています。これにより、ネットワークの知見が少ない利用者でも迷うことなく操作することを可能にしました。また、フロント(インターネット側)とバック(社内側)で別々に「Virtual Server」を立ち上げられるなど、既存インフラとの親和性を担保した状態でロードバランサー機能を提供しています。
「Fleetコンソール」では、BIG-IP VEへの設定追加/変更作業は、iControl REST経由で操作しています。また、ロードバランサーの中心機能であるVirtual Serverの払い出し、設定変更周りについては「Fleetコンソール」上のアプリケーションから「Ansible」を呼び出すことで、設定変更の冪等性を担保する形をとっています。
FleetにおけるNSXの使い方
Fleetインフラ基盤ではNSXを利用して、物理機器にとらわれないインフラの払い出しを実現しています。ただし、NSXを特に何も気にせず利用者に全機能を解放してしまうと、機能が多過ぎて利用者にとって非常に難解なインフラになってしまいます。
連載第1回で述べた、下記のような既存インフラとの親和性をきちんと担保した上で、利用者が簡単に機能を活用できるように設計する必要がありました。
- RAFTELと同じNFSストレージをマウント可能
- RAFTEL ←→ Fleet間で相互通信可能
- RAFTELと同じ仕様を踏襲して便利な部分の使い勝手は同じに(認証方法、名前解決)
- リクルートのセキュリティルールにのっとった設定「セット」をあらかじめ提供(ログ保管、通信)
そのためFleetインフラ基盤では、利用者が操作できない機能や設定を意図的に作ることで、誤って上記のような機能が利用不可とならないようアレンジしています。少しではありますが、どのような機能を活用しているかを紹介します。
・ファイアウォール機能:NSX Distributed Firewall
NSXには「Distributed Firewall(DFW)」と呼ばれるファイアウォール機能があります。Fleetでは、ユーザーにこの機能を提供し、Fleetインフラ基盤としてのファイアウォール機能を実現しています。こちらの制御にもNSXが持っているAPIを活用して、「Fleetコンソール」から設定を実施できる仕組みを備えています。
ファイアウォール機能をユーザーに解放するに当たり、以下のような要件を担保した状態で提供できるようコントロールしなければなりません。
- セキュリティルールにのっとるため、許容できない通信を遮断する
- 認証や名前解決など、共通的に利用できるべき機能の通信が遮断されないようにする
FleetではDFWのセクションを活用し、機能実現を図っています。
Fleetインフラ基盤として上記の要件を担保するためのファイアウォールルールは、大きく変わることはあまりありません。そのため、インフラとして投入するルールのセクションは、優先的に当たるよう、上部に、ユーザーが「Fleetコンソール」から投入する機能は下部に設けることで実現しています。
また、一部インフラとして投入するルールの中にはVM払い出しに伴って動的に変更される箇所が存在しています。こちらは「Security Group」を活用することで、「Fleetコンソール」からVM払い出しが行われるタイミングで動的に適用箇所が変更できるような工夫を加えています。
・物理環境接続:NSX Edge Service Gateway
NSXは、物理環境との接続に対して、「Edge Service Gateway(ESG)」という機能を持っています。
ESGでは、物理環境接続以外にもロードバランサー機能など、仮想アプライアンスとしての機能を持たせることもできますが、前述の理由により、Fleetでは物理環境接続の機能に絞って利用しています。
こちらは、Fleetならではといった工夫はしていませんが、ベストプラクティスであるECMP(Equal Cost Multi Path)を利用した接続形態を用いて、外部物理ルーターとの接続を実現しています。
・パフォーマンス確保の工夫:vSphere Distributed Switch
Fleetインフラ基盤ではネットワークパフォーマンス確保の工夫として、例えばストレージへのNFS(Network File System)通信など、少しでもオーバーヘッドを減らしたいトラフィックに対して工夫を入れています。
NSXでは、基本的にVXLANを利用し、VMからの通信を行う形となっています。Fleetインフラ基盤では、vSphere ESXi/vCenterの機能である「vSphere Distributed Switch」(vDS)の「dvPortGroup」に、直接物理環境のVLANを通す設計(NSXのバイパス)を施しています。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- SREの現場はどうなっているのか――従来型の運用との決定的な違いとは
Site Reliability Engineering(以下、SRE)の現場はどうなっているのか。SREの日常的な仕事とはどのようなものなのか。開発エンジニアと運用担当エンジニアは、実際どのように役割分担し、協力し合っているのか。「SRE本」の監訳者などが語った。 - エンジニア視点で説明する「メルカリ」、リリースから4年の道のり
2017年6月、執行役員 Chief Business Officer(CBO)に、元Facebookのバイスプレジデント ジョン・ラーゲリン氏を迎えるなど、国内はもちろんグローバル展開も加速させているメルカリ。世界に支持される同社サービスはどのように作られ、支えられているのか?――2017年9月に開催された技術カンファレンス「Mercari Tech Conf 2017」にサービス開発・運用の舞台裏を探った。 - 富士フイルムとメルカリSREが語る、「運用管理」という仕事の本当の価値と役割とは
@ITは2017年12月12日に「@IT運用管理セミナー〜運用管理は『なくなる仕事』?」を開催した。本稿では、その内容をレポートする。