みなさん。こんにちは。今回は、ログ操作・管理に対して非常に便利なマネジメントサービスである、Amazon CloudWatch Logs を説明していきます。

  1. Amazon CloudWatch Logs ができる事
  2. 機能
  3. Amazon CloudWatch Logs の始め方
  4. ロググループとログストリームの操作
  5. Amazon CloudWatch Logs におけるデータ保護
  6. CloudWatch Logs エージェント
  7. CloudWatch Logs Insights を使用したログデータの分析

■ 1. Amazon CloudWatch Logs ができる事

EC2 インスタンス、AWS CloudTrail、Route 53 およびその他のソースから各種ログファイルをモニタリング、保存、アクセスすることができます。
Amazon CloudWatch Logs により、使用中のすべてのシステム、アプリケーション、AWS のサービスからの各種ログを、スケーラビリティに優れた 1 つのサービスで一元管理することができます。これにより、ログを簡単に表示したり、特定のエラーコードやパターンを検索することや、特定のフィールドに基づいてフィルタリング、分析のために安全にアーカイブすることができます。
Amazon CloudWatch Logs では、ソースにかかわらずすべてのログをイベントの 1 つの一貫した流れとして時間順に見ることができ、ダッシュボードでのログデータの可視化ができます。

■ 2. 機能

[ログデータのクエリ]

CloudWatch Logs Insights を使用して、ログの内容ををインタラクティブに検索および分析することができます。CloudWatch Logs Insights には専用のクエリ言語が含まれています。

[EC2 インスタンスのログをモニタリング]

Amazon CloudWatch Logs を使って、ログデータを使用してアプリケーションとシステムをモニタリングできます。例えば、Amazon CloudWatch Logs では、アプリケーションログに存在するエラーメッセージの数がトラッキングされ、エラー率が、お客様がご指定したしきい値を超えたときに通知を送信することもできます。

お客様のログが CloudWatch Logs によるモニタリングに使用されるので、アプリケーションのソースコードの変更は不要です。たとえば、アプリケーションログの各種 “Exception” メッセージや Apache アクセスログの “404” ステータスコードなどの発生数をカウントしたりできます。

[CloudTrail ログイベントのモニタリング]

CloudWatch にアラームを作成し、CloudTrail がキャプチャした特定 API アクティビティの通知を受け取り、通知を各種トラブルシューティングに使用できます。

[ログの保持期間]

デフォルトでは、ログは無制限に保持され、失効することはありません。ロググループごとに保持ポリシーを調整し、無制限の保持期間を維持するか、1 日間~ 10 年間の保持期間を選択することができます。

[ログデータをアーカイブ]

Amazon CloudWatch Logs を使用して高い耐久性のストレージにログデータを保存できます。CloudWatch Logs エージェントにより、ローテーションするログデータもローテーションしないログデータも、ホストからログサービスに簡単にすばやく送信できます。その後は、必要なときに生のログデータにアクセスできます。

[Route 53 DNS クエリのログ]

Amazon CloudWatch Logs を使用して、Route 53 が受け取る DNS クエリに関するログ情報を使用できます。

■ 3. Amazon CloudWatch Logs の始め方

AWS で EC2 インスタンスおよびオンプレミスサーバーから Amazon CloudWatch Logs にログを収集する方法には “統合 CloudWatch エージェント” をご使用いただく方法があります。※以前の CloudWatch Logs エージェントは、廃止予定であり、統合 CloudWatch エージェントを強く推奨いたします。

ログと高度なメトリクスの両方を 1 つの CloudWatch エージェントで収集できます。Windows Server を実行しているサーバーなど、オペレーティングシステム全体にわたるサポートが提供されています。

CloudWatch エージェントは、以下のオペレーティングシステム上の x86-64 アーキテクチャでサポートされています。

サポートされるオペレーティングシステム

・Amazon Linux バージョン 2014.03.02 以降
・Amazon Linux 2
・Ubuntu Server バージョン 20.04、18.04、16.04 および 14.04
・CentOS バージョン 8.0、7.6、7.2、および 7.0
・Red Hat Enterprise Linux (RHEL) バージョン 8、7.7、7.6、7.5、7.4、7.2、および 7.0
・Debian バージョン 10 とバージョン 8.0
・SUSE Linux Enterprise Server (SLES) バージョン 15 およびバージョン 12
・Oracle Linux バージョン 7.8、7.6、および 7.5
・macOS (EC2 Mac1 インスタンスを含む)

・64 ビットバージョンの Windows Server 2019、Windows Server 2016、Windows Server 2012、Windows Server 2008 R2

■ 4. ロググループとログストリームの操作

Amazon CloudWatch Logs にロググループを作成します。
統合 CloudWatch エージェントを EC2 インスタンスにインストールすると、そのプロセスの一環としてロググループが作成されます。CloudWatch コンソールで、直接ロググループを作成することもできます。

Amazon CloudWatch Logs は、複数の AWS のサービスからログイベントを自動的に受信します。Amazon CloudWatch Logs に他のログイベントを送信することもできます。統合 CloudWatch エージェントは、メトリックとログの両方を Amazon CloudWatch Logs に送信できます。

統合 CloudWatch Logs エージェントによって Amazon CloudWatch Logs に送信されたログデータは、ストリームごとに表示ができます。また、表示するログデータの時間範囲を指定できます。

■ 5. Amazon CloudWatch Logs におけるデータ保護

以下の方法でデータを保護する事ができます。

・各アカウントで多要素認証 (MFA) を使用。
・SSL/TLS を使用して AWS リソースと通信します。※ TLS 1.2 以降が推奨。
・S3 に保存される個人データの検出と保護のため、Amazon Macie などの高度なマネージドセキュリティサービスを使用。

・AWS CLI または API を使用して AWS にアクセスするときに “FIPS 140-2” 検証済みの暗号化モジュールが必要な場合は “FIPS エンドポイント” を使用。

■ 6. CloudWatch Logs エージェント

EC2 インスタンスおよびオンプレミスサーバーから、ログを収集します。統合 CloudWatch エージェントで収集したメトリクスは、他の CloudWatch メトリクスと同様に、CloudWatch でも保存して表示できます。※ CloudWatch エージェントは、FIFO パイプからのログの収集をサポートしていません。

統合 CloudWatch エージェントによって収集されたログは、古い CloudWatch Logs エージェントによって収集されたログと同様に、Amazon CloudWatch Logs に処理され、保存されます。

■ 7. CloudWatch Logs Insights を使用したログデータの分析

CloudWatch Logs Insights を使用すると、Amazon CloudWatch Logs のログデータをインタラクティブに検索し分析することが可能になります。クエリを実行することで、運用上の問題に効率的かつ効果的に対応できます。問題が発生した場合は、CloudWatch Logs Insights を使用して、潜在的な原因を特定し、デプロイされた修正を検証することができます。

CloudWatch Logs Insights には、いくつかの専用のクエリ言語が含まれ、サンプルクエリは AWS のサービスの複数のログタイプ向けに用意されています。

CloudWatch Logs Insights は、Amazon Route 53、AWS Lambda、AWS CloudTrail、Amazon VPC などの AWS のサービスからのログフィールドと、ログイベントを JSON として出力するアプリケーションログまたはカスタムログを自動的に検出します。

CloudWatch Logs Insights を使用することで、2018 年 11 月 5 日以降に CloudWatch Logs に送信されたログデータを検索できます。1 つのリクエストで最大 20 個のロググループをクエリできます。クエリが完了していない場合は、15 分後にタイムアウトします。クエリ結果は 7 日間利用できます。

■ 最後に

いかがでしたでしょうか。

ログを一元管理すること、または各種ログの分析、ログ解析からのトラブルシューティングを実施してみたいお客様に、非常におすすめの AWS マネジメントサービスとなっています。ログに関連する運用は、Amazon CloudWatch Logs にまかせましょう!

SunnyCloudでは、AWS移行、構築、運用までの様々なソリューションを提供しています。

AWSをご利用いただくには、直接契約するより断然お得。
AWS利用料が5%割引、さらに日本円の請求書による支払いが可能です!