カスタマーサクセス部営業課の小室です。このブログはサーバーワークスのカレンダー | Advent Calendar 2023 - Qiita の25日記事です。25日じゃないって?まだ私の中ではクリスマス🎄なので許されたい(遅れて申し訳ない)
皆さん、アニメ『葬送のフリーレン』公式サイトご覧になりましたでしょうか?今年見たアニメの中ではTOP3に入るぐらい面白いアニメでしたね。ヒンメルが本当にいいやつで…ぜひ営業課に採用したい… さて登場人物のフリーレンは1000年も生きているエルフなのですが、こんなに長く生きていると過去どうだったのか、その途中経過で何があったのか我々短命種人類は忘れてしまいますよね。そこで使いたいのかAWS ConfigとAWS CloudTrailです。
AWS Configのセットアップ
ConfigはAWSのリソースがどう変化したのか?どうあるべきか?を記録・確認してくれるサービスです。まるでお父さんみたいですね、リソースの変化に気づきアドバイスをくれる良きサービスです。
設定
AWSマネージメントコンソールでAWS Configを選択します
その後、AWS Configのセットアップをクリック。場所によっては「今すぐ始める」「1-Clickセットアップ」のような説明もあるかもしれません。AWSさんは早くConfigで現状情報を取得しておいて欲しいようです。何を記録するかを選択します。該当AWSアカウントが汎用的にいろんな用途で使うなら左側、単発のリソース(例えば管理用として使うなど)であれば右側でよいでしょう。
🥷 特定リージョンに依存しないグローバル設定は指定リージョンに保存されます。具体的にはAmazon Elastic Container Registry Public、AWS Global Accelerator、Amazon Route 53です。 Selecting Which Resources AWS Config Records - AWS Config
🥷 2022年2月以降にセットアップされたConfigのグローバル設定のデータは指定リージョン(GovCloud含む)に保存されてる仕様に変更しています。
どの頻度で記録するかを選びます。どちらにするか悩ましいですが、まずは継続的な記憶でよいと思います。1日の間にリソースを何度も変更する場合は日次でもよいかと思います。
オーバーライド設定を選びます。これ最初なんじゃ!?て感じですが、特定リージョンに依存しないグローバル設定 (RDS グローバルクラスター、IAM ユーザー、グループ、ロール、カスタマーマネージドポリシー) は、上記の保存期間設定が適用されていません。コスト削減の為にAWSさんが配慮してくださっているようで有り難いですね。
どのような権限設定でデータを保存するかを選択します。 今後の運用の負荷軽減を考えたら左側、独自にIAMロールでの権限管理をされている場合は右側がよいかと思います。
どこにそのデータを貯めるかを選択します。個人利用などであれば1AWSアカウントの場合が多いので同アカウント内に貯める事が多いかと思いますが、AWSマルチアカウント戦略ですと、ログを貯めるAWSアカウントは実際の利用するAWSアカウントとは別であるべし、とありますので、企業利用の場合は別AWSアカウントにあるS3バケットにしましょう。デフォルト期間は 7 年です。
また通知を受けたい場合はお手軽ならSNSトピック通知も良いかもしれません。 更に複雑に通知したい場合はConfig →Amazon EventBridgeを使いましょう。
Amazon EventBridge を使用した AWS Config のモニタリング - AWS Config
ルール
次のページでマネージドConfig Ruleが沢山出てきます。これはAWS環境はこうあるべし!という設定を入れておくと、途中でうっかり設定を間違った際に気づいて通知を送ってくれるというものです。例えば緊急でAmazon EC2にSSHポートを0.0.0.0/0(インターネットすべて)に設定を追加しメンテナンスをしてそのまま帰ってしまった、などの時に気づく事が出来ます。
詳細はこちらです。 AWS Config マネージドルールのリスト - AWS Config
この機能は個人的にはうまく使えばかなり役に立つと思っていますが派手ではないので…🫣 余り注目されていないけども運用メンバーには地味に役に立つ機能です。後でも追加出来ます。
レビュー
選んだ設定が表示されるので確認ボタンを押すと自動で設定を入れてくれます。
その後、ダッシュボードが作成され、今後データが溜まっていく中で、ルールを選択している場合の通知や変更管理を見ることが可能です。
試してみる
今回はセキュリティグループが22ポートを制限なしに受け入れていたら気づくようにしました。
EC2を気軽にSSHを全世界公開で起動…
Configのダッシュボードを見てみたら、優秀なConfig先生がオラオラ準拠してねーぞ!!💢てお知らせしてくれます。
よく見たら前に作ったセキュリティグループもチェックしてくれていたので2つあったようです。設定を削除してConfig先生の怒りを収めることが出来ました。ほっ…
CloudTrailのセットアップ
CloudTrailはAWSのリソース上で我々が何をしたのかを記録してくれるサービスです。まるでお母さんみたいですね。そっとすべてを見守って記録してくれてます。
イベント履歴
デフォルトの設定でCloudTrailはイベント履歴というAWSがリソース上で我々(API含む)が実行した行動はすべてが記録されています。直近 90 日間の履歴が閲覧、検索、ダウンロードすることが出来ます。ささっと誰が何をしたいのかを見たい時はここが便利です。
CloudTrail Lake
今一番最推しなのがCloudTrail Llakeです。S3に溜まったデータをAthenaを使わずSQL検索したり可視化が容易だったりマネージドですのでいい事づくしです。 Lakeと聞くとなんだか底なし沼のようなイメージがありますが、大丈夫です。単純明快です。
証跡
こちらはS3に貯めていく設定ですので、他のサービスと連携したい時に選ぶサービスです。
CloudTrail Lakeのセットアップ
イベントデータストアの設定
料金オプションはAWSさんが勧めている1年でよいと思います。7年オプションも選んでみたい気持ちもあります(検証アカウントなので余り意味はないかもですが)。小学1年生が中学2年になる月日ですね。
CloudTrail Lakeに溜め込んだデータをAthenaで使えるようにするかどうか出ますが今回は特にその予定はないのでチェックは入れません。
タグ等あれば記入し次へ進みます。
イベントの選択
今回はAWSの履歴などを見れるようにしたいのでAWSイベントを選択します。
統合イベントを選ぶと様々な独自、SaaSからの情報を取り込む事が出来ます。AWS 外のイベントソースとの統合を作成する - AWS CloudTrail
CloudTrail イベントでは管理イベントのみチェックを入れます。ついでにその他設定で現在のリージョンのみにしました。 管理イベントではKSMおよびRDSのDataAPIは除外しました。RDSのような内部で別サービスのAPIを使っているサービスはAPIが大量に出てしまう事があります。除外するときの注意事項もあるので以下のドキュメント読まれるのをおすすめします。 AWS CloudTrail による Data API コールのログ記録 - Amazon Aurora
確認と作成
選んだ設定を確認しデータストア作成します。
試してみたかったが…
作ったばかりなのでイベントが溜まってなかったのでクエリ発行しても意味がなかったので、少し溜まってから再度トライしたいと思います🥺。私のような短命種族はせかせかして駄目ですね…もうちょっと長い目でAWSと向き合わなければ…
AWSを長く使って行こう!という場合は先にCloudTrailを仕込んでおくと後々楽に探したりが出来そうです。
ConfigとCloudTrailと向き合って今
フリーレンはエルフなので長生きしてて当たり前ですが、AmazonがAWSを2006年に始めてから今もなお改善・新サービスを出し続けており、パブリッククラウドの第一線に居ることを考えると、使う側もAWS含めたシステムを適切に長く使う事をエルフのように考え、仕組みを上手く使う必要があるのではないでしょうか。
私もですが多くの皆さんが突然案件や社内資産管理を丸投げされ、なにこれ!?過去に何があったんだ??と悩み探しまくり翻弄した方も多いのではないかと思います。 次の世代にその苦労を引き継がない為にも、我々の世代で過去の記憶を適切に管理、引き継げるように出来ると良い未来が来ると元エンジニアとして信じています💪😤
今年も多くのお問い合わせ、皆様のお困り事を共有頂き有難うございました。AWSのプレミアティア サービスパートナーの営業/エンジニアとして、皆さんの悩みに良い解決策を提案出来るように来年もメンバー全員で成長出来るようにしていきたいと思っています。また来年もよろしくお願いします!
なにかAWSでお困り事がありましたら お問い合わせ - 株式会社サーバーワークスへ、 ふぅん…サーバーワークス面白いじゃんって思いましたらサーバーワークス採用サイトへ!ご連絡お待ちしております🎉