この記事の目次
AWS CloudWatch EventsがなぜAWSに必要なのか?
Amazonの代表的クラウドサービスAWS (Amazon Web Service)は、ユーザー自身の持っている環境にアプリケーションを導入せずに、VPCに設置したAZ(Activity Zone:アクティビティゾーン)で、インターネットを介してリクエストを実行させるサーバーレスサービスです。
AWSでは、ユーザー自身がシステムに対する更新やメンテナンスの必要がなく、リクエストの実行やシステム系の監視が自動化されていることは、大きなメリットとなっています。
AWSの系全体を継続的に監視し、最適な対応を施すことによって、安定な動作環境を維持させるのがAWS CloudWatch Eventsです。
これから、AWSの仕組みとAmazon CloudWatchについてお話しし、AWSの系を安定化させるAWS CloudWatch Eventsを具体的にご紹介していきます。
AWSのプロセスを分解してみましょう!
AWSは、収集されたデータが保管サーバーに一旦蓄積されることから始まり、アプリケーションサーバーでユーザーのリクエストが実行され、その結果がデータベースなどに保管されて終わります。
アクセス関連では、リソースへのアクセスを安全に管理するIAM(Identity and Access Management)と、AWS CloudWatchへのアクセスを監視するAWS CloudTrailがあります。
データ収集では、高速で継続的に動作するAmazon Kinesis Data Streamsがあります。
リソース関連では、リソースをモデリングおよび設定するAWS CloudFormationと、リソースの設定変更を記録するAWS Configがあります。
イベントに対応するアプリケーションを構築するサービスAWS Lambdaは、データ収集をトリガーとして、ターゲットでユーザーのリクエストを実行します。
Amazon CloudWatchとは?
Amazon CloudWatchは、データの収集、分析によるクラウド全体の継続的な監視と、イレギュラーな場面での最適な対応出しまでのサービスが組み合わさったもので、動作を見える化して確認できる機能も持ち合わせています。
これから、Amazon CloudWatchの仕組みと設置のメリットをお話しし、具体的なユースケースについてご紹介します。
Amazon CloudWatchはどのようなデータを収集しているのでしょうか?
AWSの系にあるアプリケーションを監視するために、Amazon CloudWatchはどのようなデータを収集しているのかをお話しします。
AWSの系のデータとしては、外部からの侵入に伴うデータと、運用に伴うデータという2つの種類のデータがあり、Amazon CloudWatchはこれらのデータを収集しています。
Amazon CloudWatchは、ログ、メトリクスやイベントに分けられるモニタリングデータと運用データを収集しますが、イベントごとのログとメトリクスが関連付けられることによって、AWSの系を安定化させることにつながっているのです。
Amazon CloudWatchの仕組みとメリットは?
Amazon CloudWatchは、データ収集、アラーム設定、トラブル対応、分析をAWSの系全体に施すことによって、クラウド内のリソースやアプリケーションの運用状況を見える化するサービスです。
Amazon CloudWatchのメリットとしては、アプリケーションが継続的にモニタリングされ、オンプレミスを含んだAWS全体の見える化やリソースの最適化が進み、運用の健全性が保たれることにつながることになるのです。
Amazon CloudWatchの具体的なユースケースは?
Amazon CloudWatchは、オンプレミスを含むAWSの系全体で実行されるアプリケーションのモニタリングから、迅速に把握したイレギュラーな状況に対応するためのクエリを実行することによって、安定したAWS環境を提供します。
Amazon CloudWatchは、どのようなプロセスでAWSの系をコントロールしているのでしょうか?
AWS CloudWatchは、どのようにしてAWSの系をコントロールしているのか?
Amazon CloudWatchは、効率よいクエリ実行の準備として、アプリケーションだけでなくAmazon ECS(Elastic Container Service)やAmazon EKS(Elastic Kubernetes Service)などのコンテナサービスも監視し、見える化します。
クエリ実行のための基準は、ユーザーがリクエストする場合と、CloudWatch自体が異常として検知するために機械学習で生成する場合があります。
メトリクスとログを効率よく関連づけて問題を素早く解決すること、Amazon EC2のスケーリングやインスタンスの停止などの対応が自動化されていることも、大きなメリットとして持っているのです。
AWS CloudWatchは、AWS内のアプリケーションやコンテナサービスを監視したメトリクスとログなどのデータを組み合わせて、イレギュラー状態を検知し対応するサービスです。
リソースの変化に瞬時に対応するAmazon CloudWatch Eventsとは?
オンプレミスを含むAWSの系で、リソース変更を示すシステムイベントが発生した際には、アクティビティの遅延を回避するためにリアルタイムでの対応が必要となります。
このようなシステムイベントを、一定のルールに従って対応するためのターゲット関数や他のプロセスに進ませるサービスが、Amazon CloudWatch Eventsです。
ここから、Amazon CloudWatch Eventsの考え方と、関連するAWSサービスについてお話ししていきます。
Amazon CloudWatch Eventsを理解するために:イベント、ルール、ターゲットとは?
Amazon CloudWatch Eventsは、何かイレギュラーな変化がAWS環境に起きたとき、どこでどのような対応を取るのかを設定できるサービスです。
Amazon CloudWatch Eventsがどのように動作しているかは、イベント、ルール、ターゲットという考え方が理解できれば、イメージできるでしょう。
AWS環境変化の情報は、クラウド内に配置されたAWSリソースから発生する固有のイベントとしてAmazon CloudWatchに集められ、イベントごとに決められたルールに従い、Amazon CloudWatchの外にあるターゲットに振り分けられて処理されます。
なお、イベントはAWSリソースを変更するだけではなく、特定のシステムに組み込まれた時刻によって、ユーザーのリクエストに沿ったターゲットにトリガーすることも可能です。
Amazon CloudWatch Eventsに関連するAWSサービスは?
Amazon CloudWatch Eventsが、その目的を存分に発揮するために関連して使われるAWSのサービスには、どのようなものがあるでしょうか?
ここでは、Amazon CloudWatch Eventsと関連するAWSのサービスとして、AWS CloudWatchとAWSリソースへのアクセスを管理するサービス、AWS環境変化としてのデータを収集するサービス、リソース周りのサービスおよびユーザーのリクエストをターゲットで実行するためのサービスに分けてお話しします。
アクセスを管理するサービス
アクセス関連のサービスには、AWSリソースへのアクセスを安全に管理するIAMと、AWS CloudWatchへのアクセスを監視するAWS CloudTrailがあります。
IAMは、「認証(誰がAWSリソースを使えるか)」と「承認(AWSリソースをどう使えるか)」 について制御します。
AWSへのアクセスを安全に管理するために、個別に設定されている認証情報(暗号化によるアクセスキー、パスワードなど)によって、厳密なアクセス権限に基づくユーザーグループを作成します。
AWS CloudTrailでは、CloudWatchイベントへのアクセスをアカウントごとにモニタリングします。
例えば、CloudTrail ログ記録がオンのとき、CloudWatchイベントとしてログファイルをS3バケットに書き込む設定ができ、継続的な監視が進められることによって、外部からの不正侵入行為を防ぐことになるのです。
データを収集するサービス
AWSには、高速で継続的にデータを取り込んで収集するサービスとして、Amazon Kinesis Data Streamsがあります。
AWS CloudWatchに流れ込んでくるデータは、ITインフラやアプリケーションのログデータ、ソーシャルメディアやウェブの履歴情報などであり、データ取り込みから応答までのタイムラグが短く処理が軽いものとなっています。
リソース関連のサービス
リソース関連のサービスには、リソースをモデリングおよび設定するAWS CloudFormationと、リソースの設定変更を記録するAWS Configがあります。
AWS CloudFormationを有効に使うために、ユーザーがリクエストを実行したいリソースを記述するためのテンプレートを作成することによって、自動的にリソースのプロビジョニングや設定が可能になります。
AWS Configは、AWSリソースの設定変更を記録するサービスで、時間の経過と共に変化した当初の設定内容との関連性や、あらかじめ作成したAWS Configとしてのルールと照らし合わせて、リソースが組織のポリシーに適合しているかどうか確認できます。
イベントに対応するためのアプリケーションを構築するサービス
AWS Lambdaは、データ収集をトリガーとして、あらかじめ設定されたルールに沿ったターゲットで、Lambda関数としてアップロードしたアプリケーションコードを実行します。
また、サーバーやOSの管理、処理能力のプロビジョニングやスケーリング、コードやセキュリティパッチのデプロイ、モニタリング、ログの記録など、AWSリソースの管理をすべて実行することができます。
AWS CloudWatch Eventsは、AWSクラウド環境をいつも見守ってくれています!
AWSの系は、収集されたデータを使って、アプリケーションサーバーでユーザーのリクエストが実行され、その結果がデータベースなどに保管されるという一連のプロセスで運用されます。
外部からの不正侵入はもとより、AWS内のパフォーマンスを含めた系全体を継続的に監視し、最適な対応を施すことによって、安定した動作環境を維持するために必要なものが、AWS CloudWatch Eventsです。
AWS CloudWatch Eventsが監視・対応してくれているおかげで、AWSの安定性が保証されているのです。