こんにちは。AWSでITサービスを運用していくにあたり、必要になっていくことに1つに『監視』があります。AWSにおける『監視』にも、ITサービス自体の監視や、課金状態の監視など、様々な監視方法、監視対象があります。AWSにおける『監視』について、どのように考えていけばいいのでしょうか。本記事では、ベストプラクティスについてお伝えします!

AWS Well-Architected Framework

実は、監視のベストプラクティスについては、『AWS Well-Architected Framework』という文書に言及があります。

https://aws.amazon.com/jp/architecture/well-architected/ より引用

AWS Well-Architected Frameworkは、AWS上でITサービスを設計および実行するための主要な概念、設計原則について、ベストプラクティスを記載しています。AWS Well-Architected Frameworkでは、ベストプラクティスについて5つの項目に分けて説明していますが、その中でも”オペレーショナルエクセレンス”の項目に、監視が達成すべきことについて、以下3点の言及があります。

・ワークロードの状態を把握する
・運用の状態を把握する
・イベントへの応答

これらの3項目から、監視で達成すべき内容について整理していきましょう。

ワークロードの状態を把握する

まず、監視で達成すべき内容としては、ITサービスの運用状態を容易に理解できる状態にしておくことになります。そのためには、事前に達成すべき項目(例えばアプリケーションのエラー率、障害発生件数)などを規定しておき、それを知るための情報(ログ)を収集しておく必要があります。また、AWSには責任共有モデルが採用されているため、ユーザー側の責任でない箇所については、AWSから情報を仕入れる状態にしておく必要があります。

運用の状態を把握する

次に、監視で達成すべき内容としては、ITサービスがどのように運用されているかを把握できる状態にしておく必要があります。具体的に収集するべき情報は、課金の情報やAWSサービスの操作ログ、障害復旧時間などになるでしょう。また、課金の情報やAWSサービスの操作ログについては、大量課金や不正な操作など、経営のリスクに直結する場合もあるので、アラートを出す仕組みを整備しておくことも重要です。

イベントへの応答

最後に、監視で達成すべき内容としては、監視で検知した内容に関して次のアクションをとれる状態にしておく必要があります。障害対応や監査といった基本的な内容はもちろんのこと、インスタンス台数や取得するログといった、システムの変更のアクションも用意する必要があります。これらの対応を手作業で行おうとすると、非常に工数がかかってしまう上に、運用の負担になってしまいます。したがって、極力自動化をしておくことが望ましいです。

以上を踏まえて、監視のベストプラクティスは以下の通りになります。

CloudWatchの活用

ITサービスの状態を確認するためには、AWSのサービスや、アプリケーションが稼働しているサーバ、コンテナのメトリクスやログを収集する必要があります。したがって、CloudWatch Logsにて、AWS サービスのメトリクス、ログを収集しましょう。また、詳細なログの分析はCloudWatch Logs Insightで実施することができますので、併せて利用するといいでしょう。加えて、AWS管理の部分についてはPersonal Health Dashboardなどを活用して情報を収集するようにしましょう。

CloudTrail、課金アラートの設定

運用の状態を確認するためには、コンソールの操作ログや課金に関する情報を取得する必要があります。CloudTrailを有効にすることで、指定したS3にAWSの操作ログを格納することができます。また、AWS Cost Explorerを利用することで、課金状況を把握することができます。高額課金を防止するためには、AWS budgetの課金アラートを利用するといいでしょう。

自動化

イベントへの正確な応答を行うためには、指定したあて先に正しく内容が通知される必要があります。また、対応についても品質が一定で、冪等性(何度行っても結果が同じであること)がある対応が望まれます。インシデント等のイベント発生時はSNSで自動通知するようにしておきましょう。また、AutoscalingやLambdaを利用することで、インシデントの自動復旧を図るなど、対応を自動化し、運用コストの低減を考慮してください。

以上のベストプラクティスについて具体的に図示すると以下のようになります。

まとめ

いかがでしたでしょうか。今回、ご紹介したサービス名などはあくまで一例で、具体的な構成は要件に依存します。ITサービスを正しく運用する為に何を達成すべきか、具体的な目標やKPIを決め、それに沿った監視の設定を行うといいでしょう。また、AWS Well-Architected Frameworkに言及がある通り、監視は頻繁に可逆的な改善が必要です。定期的に監視を見直すこともベストプラクティスとして認識しておきましょう。Well-Architectedな構成にしたい!監視について相談したい!という方はSunnyCloudまでご連絡お待ちしています。