満漢全席を食らえ!JAWS DAYS 2019レポート 第9回
Fintech企業として高いレベルのセキュリティと運用をAWS上で実現
Kubernetesに移行中のfreee、セキュリティとモニタリングを語る
2019年04月16日 10時00分更新
意外と手軽? 「Elastic Stack」を活用し、Kubenetesクラスタの監視を実現
続けて、同じくfreeeでSREに携わる河村篤志さんが、どのようにKubenetesクラスターのモニタリングを行なっているかを紹介した。
河村さんは、ご存知の方も多いであろうO'Reillyジャパンの「入門・監視」を引き合いに出し、監視とは「あるシステムやそのシステムのコンポーネントの振る舞いや出力を観察し、チェックし続ける行為である」と定義。その目的として、予防・保守や異常検知、今後の改善指標といった事柄が挙げられると説明した。
正しい監視を行なうには、データを収集するための基盤とそれを格納するストレージ、可視化・分析のための基盤と問題をエンジニアに通知するアラートといったコンポーネントが必要だ。それも、何でもかんでもアラートを出すのではなく、ビジネスロジックや継続性に直結したメトリックを取捨選択し、トリアージする必要があるし、運用・人件費を含んだコストも適正でなくてはならない。
何より、「今使っているシステムが、未来永劫フィットするかというと疑問が残る。そのとき、そのときのシステムに合う形に監視も改善していく必要があり、それに適したアーキテクチャでなくてはならない」と、これからの監視に必要な要素を説明した。
では、Kubenetesの監視には何が必要だろうか。Kubenetesの環境ではクラスターそのものに加え、それを構成する「ノード」があり、その中で大量の「ポッド」が動いている。ポッドとしてデプロイされるアプリも多岐に渡っており「それらについて個別に設定を加えていくのは現実的ではない。freeeの場合もKubenetesで動いているポッド数は100を超えており、それらに個別に設定するのは無理」だと判断したそうだ。
こうした要件を踏まえた上で、freeeでは「Elastic Stack」を活用してKubenetesクラスターを監視している。
これまたご存じの方も多いだろうが、Elastic Stackは、データストアとなる「Elasticsearch」を中心としたログ収集・メトリクス監視のためのオープンソースソフトウェア群で、可視化を行なう「Kibana」やデータを収集する「Logstash」や「Beats」が含まれている。
freeeでは、データコレクターにBeats、具体的には、ログ収集を行なう「Filebeat」とメトリック収集のための「Metricbeat」を活用し、各Kubenetesクラスターにデプロイして必要なデータを収集し、ログ収集基盤のAmazon Kinesisに送信しているそうだ。Kinesisからはさらに、永続的な保存用のS3と、デバッグや直近データに対する解析のためのElasticsearch Serviceにログストリームを送信している。Elasticsearch Serviceに含まれないアラート機能については、Yelpの「ElastAlert」を使っている。
FilebeatにしてもMetricbeatにしても、軽量で、しかもHelmコマンドで手軽に導入できる、というのが河村さんの実感だそう。Kubenetesクラスターのメタデータも一通り取得できるため、個別のアプリごとにタグを付与したりすることなく、「どのポッドがどうなっているか」をさっと把握できるという。
「まずよかったのは、導入がけっこう楽なこと。Helmコマンドを使い慣れていれば苦もなく導入できる。また、共通のバックエンドとしてElasticserachとKibanaを使っているため、ログを送ってしまえばあとはよしなにやってくれるというラクさもある」(河村さん)。さらにluceneを用いてビジュアライズや柔軟なアラーティングを実現しているという。
ダッシュボードの作成が大変だったり、ElastAlertの設定難易度が高かったり、たまにバグを踏んだりと、まだ微妙な部分もなくはない。だが、「EasticStackを使った監視システムのいいところは、導入が簡単で、モジュール単位で作られているので差し替えがしやすいこと」と河村さん。今後のシステムの変化に応じて監視の仕組みも変えていく可能性はあるが、それに適したアーキテクチャと言えそうだ。さらに、「将来的には、SRE以外のメンバーもルールや監視の追加を行なえる仕組み作りもやっていきたい」という。
この連載の記事
-
第14回
デジタル
“いとみやび”な日本の働き方、私たちは、組織はどう変わっていくべきなのか? -
第13回
デジタル
私たちはなぜ、どんな風に技術書を書いたのか? -
第12回
デジタル
Infrastructure as Codeが目的化してない?ABEJAの村主さんが問う -
第11回
デジタル
AWS Well-Architected FrameworkをアレンジしたCA SREチームの挑戦 -
第10回
デジタル
危ないAWS環境の共通点はここ!ペンテスターが攻撃者視点で指摘する -
第8回
デジタル
運用に丸投げしてない? AWSでよりよいセキュリティライフを送るポイント -
第7回
デジタル
なにはともあれAWS Security Hubを有効にしてほしい -
第6回
デジタル
アプライアンスベンダーF5とNUTANIXがJAWS DAYSで語ったこと -
第5回
デジタル
オタク心をわしづかみにする虎の穴のAWS活用 -
第4回
デジタル
初心者がつまづきやすいCPUクレジットの落とし穴 - この連載の一覧へ