AWS クラウドサービスのログ
- リソース別ログ
- EC2 の作成/削除、S3 ストレージログ、データベースログ、サーバーレスリソースログ、コンテナログなど…
- 各リソースは CloudWatch で確認・統合できます。
- CloudWatch agent を使えば EC2 のログを拡張して統合分析できます。
- ネットワークトラフィックログ
- 仮想ネットワークの VPC Flow ログ
- VPC ごとにフローログを作成して管理
- リソースイベントログ
- AWS SDK・CLI による API ログの管理
- API を呼び出した IP アドレスとユーザーアカウントを追跡可能
- コストイベントログ
- クラウド利用時にリソース別・タグ別のコストを確認
- 設定した予算を超えたときの警告メール機能
AWS CloudWatch とは?
- Amazon CloudWatch は、AWS リソースおよび AWS 上で動くアプリケーションをリアルタイムで監視します。CloudWatch でリソースやアプリケーションの測定可能な変数であるメトリクスを収集・追跡できます。
- CloudWatch のホームには利用中のすべての AWS サービスのメトリクスが自動表示されます。カスタムダッシュボードを追加作成して、独自アプリのメトリクスや選択したメトリクスのカスタムセットを表示できます。
- メトリクスを監視して通知を送ったり、しきい値超過時に監視対象リソースを自動変更するアラームを作成できます。たとえば EC2 インスタンスの CPU 使用率やディスク読み書きを監視し、負荷増加に対して追加インスタンスを起動すべきかをそのデータで判断できます。あまり使われていないインスタンスを停止するのにも使えます。
- CloudWatch を使えば、システム全体のリソース使用率、アプリ性能、運用状態を把握できます。
AWS CloudWatch の使い方

AWS CloudWatch のメイン画面です。ここで様々なログ設定ができます。Alarms → Billing で予算に関するアラームを設定してみます。

Create alarm を押してアラームを作成します。

Metric name は名前、Currency は通貨、Statistic は統計量、Period は周期です。周期を短くしすぎると CloudWatch の費用が増えるので、程よく設定しましょう。

分かりやすいように画面を韓国語に翻訳しています。支出のしきい値を設定し、それを上回ったら警報するのか、下回ったら警報するのかを設定します。

アラームを選択し「新しいトピックの作成」を押して、トピック名と通知先メールアドレスを入力し Create topic を押します。次に同じトピックを使うときは、この名前を再利用できます。

オートスケーリング中にコストが上下するのをアラーム状態として扱う設定です(今回の実習では使いません)。あとは次へ進み、最後に名前と説明を記入すれば完了です。

正しく作成されたことを確認しました。周期を 1 日に設定したため、データが溜まるまでは「データ不足」と表示されます。1 日経てば情報が蓄積されます。AWS CloudWatch はここまでです。
AWS CloudTrail とは?
AWS CloudTrail は、AWS アカウントの運用・リスク監査、ガバナンス、コンプライアンスの実現を支援する AWS サービスです。ユーザー、ロール、AWS サービスが実行した操作は CloudTrail にイベントとして記録されます。AWS Management Console、AWS CLI、AWS SDK・API で行われた操作が含まれます。
AWS CloudTrail の概要
- アカウント管理、コンプライアンス、運用・リスク監査を支援するサービス
- 記録された情報を参照して、ユーザー・ロール・サービスが行った操作を確認できる
- AWS 上のあらゆる行為のイベントを集めて分析やリソース変更の追跡が可能
AWS CloudTrail のイベント種別
- 管理イベント:アカウントリソースで実行される管理操作の情報を提供
- データイベント:リソース上で実行されるリソース操作の情報を提供
- Insights イベント:アカウントで発生した異常なアクティビティの記録
AWS CloudTrail の動作
AWS CloudTrail はアカウント作成時に有効化されます。アカウント内の活動が CloudTrail イベントとして記録され、AWS Console の Event History で確認できます。
AWS CloudTrail は指定した S3 バケット にイベントを保存するよう構成できます。また AWS CloudWatch Logs や Events を通じて Trail のイベントを配信・分析できます。
- すべてのリージョンに適用される Trail
- 全リージョン適用の Trail を作成すると、CloudTrail は各リージョンでイベントを記録し、ログファイルを指定した S3 バケットに配信します。新リージョン追加時も自動的に含まれてログされます。
- 1 つのリージョンに適用される Trail
- 単一リージョンの Trail を作成すると、そのリージョンのみイベントを記録し、指定した S3 バケットにログファイルを配信します。
デフォルトでは CloudTrail のログファイルは S3 SSE(サーバー側暗号化)で暗号化されます。任意で AWS Key Management Service(AWS KMS)キーで暗号化することもできます。
CloudTrail のワークフロー
アカウントのイベント履歴を確認
- CloudTrail コンソールまたは AWS CLI で、直近 90 日間に記録されたイベントを表示・検索できます。
イベントのダウンロード
- アカウントの最大過去 90 日分の CloudTrail イベントを含む CSV または JSON ファイルをダウンロードできます。
保存済みクエリ結果のダウンロード
- 保存された CloudTrail Lake クエリ結果を含む CSV ファイルをダウンロードできます
Trail の作成
- CloudTrail は trail を使って Amazon S3 バケットにログファイルを配信できます。
- コンソールで trail を作成すると、デフォルトで全リージョンに適用されます。
- trail は AWS パーティション内の全リージョンのイベントをログし、指定 S3 バケットへログファイルを配信します。
Amazon SNS トピックの作成と購読
- トピックを購読すると、ログファイルがバケットへ配信された際に通知を受け取れます。
- Amazon SNS は Amazon Simple Queue Service を使ったプログラム的な方法を含め、様々な方法で通知できます。
ログファイルの閲覧
- Amazon S3 を使ってログファイルを取得できます。
ユーザー権限の管理
- AWS Identity and Access Management(IAM)を使えば、trail の作成・設定・削除、ログの開始・停止、ログファイルを含む S3 バケットへのアクセス権を持つユーザーを管理できます。
CloudWatch Logs によるイベント監視
- CloudWatch Logs へイベントを送るよう trail を構成できます。
- CloudWatch Logs で、アカウント内で特定の API 呼び出しやイベントが発生したかを監視できます。
管理イベントとデータイベントのロギング
- 読み取り専用、書き込み専用、またはすべての管理・データイベントをログするよう trail を構成します。
ログの暗号化と整合性の有効化
- ログファイル暗号化はログへの追加のセキュリティ層を提供します。
- 整合性検証を使えば、CloudTrail の配信後にファイルが改変されていないことを確認できます。
CloudTrail Lake の有効化
- CloudTrail Lake ではイベントに対して精密な SQL ベースのクエリを実行できます。
- イベントはイベントデータストアに集約されます。イベントデータストアは高度なイベントセレクタで選んだ基準に基づく不変のイベントコレクションです。
- イベントデータは最大 7 年間イベントデータストアに保管できます。
- CloudTrail Lake はセキュリティ調査やトラブルシュートを支援する監査ソリューションの一部です。
Trail イベントを CloudTrail Lake にコピー
- 既存の trail イベントをイベントデータストアへコピーして、記録済みイベントのポイントインタイムスナップショットを作成できます。
CloudTrail Lake クエリ結果を S3 バケットへ保存
- クエリ実行時に結果を S3 バケットへ保存できます。
他の AWS アカウントとログファイルを共有
複数アカウントのログを集約
- 複数アカウントのログファイルを単一バケットに集約できます。
Trail とは?
Trail
は Amazon S3 バケット、CloudWatch Logs、CloudWatch Events に CloudTrail イベントを届ける構成です。Trail で配信したいイベントをフィルタし、AWS KMS キーでイベントログファイルを暗号化し、配信時の Amazon SNS 通知を設定できます。
CloudTrail 実習
簡単に CloudTrail を実習してみます。

上の画像のように CloudTrail → Trails に入り Create trail を押します。

前述のとおり CloudTrail はリージョンで発生したイベントを S3 バケットに保存します。ここではその S3 バケットを作成します。Log file validation については後日別途まとめます。その下の CloudWatch Logs オプションは、この CloudTrail を CloudWatch にもログするかどうかです。あとは next を続けて Create trail します。

作成に成功したことを確認できます。S3 に行くと先ほど作ったバケットができているのも確認できます。

ログが入る AWSLogs フォルダが作られ、その中にログが正しく残っていることを確認できました。
原文(韓国語): tistory — 2023-02-22 公開、当ブログへ移行。この翻訳は AI の協力で作成されました。