CloudWatchを利用してサクッと使える監視基盤を構築する FinatextTechNight#4 株式会社Finatext ぐらにゅ © 2024 Finatext Holdings Ltd.
自己紹介 ● 名前: 山吹明里 ○ 「ぐらにゅ」と呼ばれてます ○ 大体のSNSは @gurany_touでやっています ● 役職: インフラエンジニア ○ 証券事業でAWS・Terraformであれそれやってます ○ 過去はオンプレのNWエンジニアをやっていました ○ 某図書館でインフラ基盤の企画/調達/構築/運用の担当職員をしていました ● 好きなAWSサービス: VPC ○ L3が好きです © 2024 Finatext Holdings Ltd. 1
会社紹介 株式会社Finatextについて 「金融を“サービス”として再発明する」をミッションに掲げ、次世代金融インフラの 提供を通して組込型金融を実現するフィンテック企業です。 証券・保険・クレジット・データ解析などの事業を展開し、「金融がもっと暮らしに 寄り添う世の中」の実現を目指しています。 © 2024 Finatext Holdings Ltd. 2
はじめに CloudWatch、どのくらい活用してますか? © 2024 Finatext Holdings Ltd. 3
今回話す内容 ● CloudWatch Dashboardについて ○ 概要 ○ Terraformでのコード管理について ○ 使ってみての感想 ● CloudWatch Alarmについて ○ 概要 ○ AWS推奨アラームについて ○ Terraformでのコード管理について © 2024 Finatext Holdings Ltd. 4
CloudWatch Dashboardについて © 2024 Finatext Holdings Ltd. 5
CloudWatch Dashboard概要 概要 ● Amazon CloudWatch Dashboardは、AWSリソースやアプリケーションのパフォ ーマンスを視覚的に監視するためのツール ● ダッシュボードにウィジェットを追加・配置することで、メトリクスやログデー タを一覧表示し、システムの健全性を把握できる ● ダッシュボード上からCloudWatch Alarmの設定を行ったり、設定しているAlarm をダッシュボード上に表示する ● パブリックへの共有、ユーザ名・パスワードを利用した共有、SSOによる共有がで きる © 2024 Finatext Holdings Ltd. 6
実際に利用しているダッシュボード © 2024 Finatext Holdings Ltd. 7
Terraformで管理する 目的 ● ダッシュボードで可視化したいAWSサービス・メトリクスがある程度決まってい るので、Terraform Moduleを作成・管理することにした ○ アーキテクチャとしてマイクロサービスを採用しており、「マイクロサービス 単位でダッシュボードが欲しくなるよね」と考えたため ● ALB/ECS/RDSなど利用しているサービスで表示したいメトリクスなどの設定を1 つにまとめ、可視化したいリソースをlistで渡すだけで簡単にダッシュボードが作 れるように ○ 開発者にとっては状況を可視化することが目的であって、ダッシュボードを作るこ と自体は目的ではないので © 2024 Finatext Holdings Ltd. 8
Terraformで管理する Terraform Moduleで管理する利点 ● 見て欲しいメトリクスをコードベースで集中管理することができる ○ 見て欲しいメトリクスを追加したい時に網羅的に追加しやすい ● 1からダッシュボードを作ったり、コードを書いたりする必要がないので、サクッ と見たいメトリクスを可視化することができる ○ 利用する側は「どのリソースをダッシュボードで可視化するか」だけを考えて利用 できるようなModuleであることを念頭に設計 詳細はテックブログ参照 CloudWatch DashboardをTerraformでコード化した話 © 2024 Finatext Holdings Ltd. 9
CloudWatch Dashboardを使ってみた感想 良いところ ● メトリクスはCloudWatchで自動で収集されているので、追加設定なしでダッシュ ボードでの可視化ができるところ ● 料金も1ダッシュボードあたり月3ドル程度と比較的安価であること ○ 無料枠は「ダッシュボード 3個(最大メトリクス50個)/1ヶ月」 ○ 自動ダッシュボードも無料で利用可能 © 2024 Finatext Holdings Ltd. 10
CloudWatch Dashboardを使ってみた感想 不便なところ ● レイアウト周りでちょっと考えないといけないことがある ○ ダッシュボードの横幅に制限がある。最大24まで。 ■ 横幅6のウィジェットだと4枚しかおけない ○ JSONで全てのウィジェットを(0,0)にしてすると縦に並んでしまう ○ 上にウィジェットがない状態で配置をすると、勝手に上にいってしまう ■ 透明なウィジェットをhight:1/width:24で置くと回避できる(以下の画像参照) © 2024 Finatext Holdings Ltd. 11
CloudWatch Alarmについて © 2024 Finatext Holdings Ltd. 12
CloudWatch Alarm概要 概要 ● CloudWatch Alarmは、定義された条件や基準に沿って警告や通知を行うサービス ● 特定のメトリクスが指定した条件を満たさない状態になった場合に警告を出した り、SNSトピックを紐付けすることで通知を行うことができる ● カスタムフィルターを作成することで、CloudWatch Logsに入るログデータに対 して特定の文字列などで検索を行い、一致した場合にはCloudWatch Alarmを利用 して通知を行うことができる © 2024 Finatext Holdings Ltd. 13
AWS推奨アラームについて ● AWSが「推奨アラーム」として、アラーム監視に関するベストプラクティスを公 開している。各サービスで監視を推奨するメトリクスやそのアラーム設定などが 書かれている ○ https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitor ing/Best_Practice_Recommended_Alarms_AWS_Services.html ● 推奨アラームのコードについても、マネジメントコンソール上から自動生成が可 能 ○ https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring /Best-Practice-Alarms.html © 2024 Finatext Holdings Ltd. 14
Terraformで管理する 目的 ● AWS推奨アラームでピックアップされているメトリクスをもれなくアラーム監視 したかったので、Terraform Moduleを作成・管理することにした ○ マイクロサービスによってしきい値の差はあるものの、同じメトリクスを監視する ようにしたい ● アラーム設定にかかるコストを下げて、手軽に導入できるようにしたい ○ アラーム監視に関するそれぞれの設定値を設計・実装するのにはどうしても手間が かかるので、そのコストを下げることで簡単に導入できる状態を作りたい © 2024 Finatext Holdings Ltd. 15
Terraformで管理する Terraform Moduleで管理する利点 ● アラーム監視をコードベースで集中管理することができる ○ しきい値についてもvariablesにしておくことで、利用側で状況に応じてある程度 は自由に設定できるようにした ● デフォルトのしきい値をあらかじめModule側で設定した状態にすることで、サク ッとアラーム監視の設定を入れることができる ○ 例えばRDSのアラーム監視は以下を利用側で記述するだけで設定可能 © 2024 Finatext Holdings Ltd. 16
まとめ CloudWatchにはその他にもいろいろな機能があります 今回はDashboardとAlarmのみでしたが、今後も色々な機能を活用して、サクッと運 用監視ができるような仕組みを構築していきます © 2024 Finatext Holdings Ltd. 17