menu
arrow_back

Serverless Architectures using Amazon CloudWatch Events and Scheduled Events with AWS Lamb

Serverless Architectures using Amazon CloudWatch Events and Scheduled Events with AWS Lamb

1時間 15分 8クレジット

SPL-119 バージョン 2.2.9

© 2019 Amazon Web Services, Inc. and its affiliates.All rights reserved.
このトレーニング内容の全体または一部を複製または再配布することは、Amazon Web Services, Inc. の書面による事前の許可がある場合を除き、禁じられています。商業目的のコピー、貸与、または販売を禁止します。

記載ミスまたは修正点がある場合、aws-course-feedback@amazon.com まで E メールを送信してください。

その他の質問については、https://aws.amazon.com/contact-us/aws-training/ までお問い合わせください。

はじめに

このラボでは、クラウドインフラストラクチャをモニタリングしてイベントに応答する、サーバーレスインフラストラクチャの作成方法について説明します。

ラボのパート 1 では、Amazon EC2 インスタンスの作成に応答するアーキテクチャを、AWS Lambda 関数Amazon CloudWatch Events を組み合わせて作成する方法について学習します。

ラボのパート 2 では、ウェブサイトをモニタリングして、正しく動作していない場合にアラートを発生させる AWS Lambda 関数を作成します。

取り上げるトピック

このラボを修了すると、次のことができるようになります。

  • AWS Lambda 関数を作成する
  • Amazon CloudWatch Events を設定する
  • Amazon CloudWatch アラームを設定する
  • Amazon Simple Notification Service (SNS) で通知を送信するよう設定する

技術知識の前提条件

このラボを問題なく進めるには、Amazon EC2 サービスに関する知識が必要です。Node.js プログラミングは必須です。ただし、ソリューションコードはすべて提供されます。

AWS のその他のサービス

このラボに必要なサービス以外の AWS のサービスは、このラボへのアクセス中 IAM ポリシーによって無効にされています。さらに、このラボで使用されるサービスの機能はラボに必要なものに限定されており、場合によってはラボの設計の観点から意図的にさらに制限されています。このラボガイドに指定されていないサービスを使用したりアクションを実行したりすると、エラーが発生することがあります。

テクノロジーについて

AWS Lambda

AWS Lambda は、クラウド内で提供されるコンピューティングサービスで、コンピューティング性能の規模を変更できます。開発者は、AWS Lambda を使用してウェブスケールのコンピューティングを簡単に利用できます。ユーザーが AWS Lambda にコードをアップロードすると、このサービスは AWS インフラストラクチャを使用し、ユーザーに代わってコードを実行します。AWS Lambda では、Node.js、Java、Python など多様なコーディング言語がサポートされています。

コードをアップロードして Lambda 関数を作成すると、AWS Lambda により、コードの実行に使用されるサーバーのプロビジョニングや管理が行われるようになります。このラボでは、AWS Lambda をイベントドリブン型のコンピューティングサービスとして使用します。このサービスでは、SNS トピックと Amazon S3 バケットでのデータ変更に合わせて、AWS Lambda がコードを実行します。

AWS Lambda には、以下の 2 つの使用方法があります。

  • イベントドリブン型のコンピューティングサービスとしての使用。AWS Lambda では、イベント(このラボで学習するイメージファイルのアップロードなど)に応答してコードが実行される

  • Amazon API Gateway 経由の HTTP リクエストや API コールに応答してコードが実行されるコンピューティングサービスとしての使用

Lambda を使用すると、Amazon のスケールメリットによりコストを削減できます。AWS Lambda では、必要に応じてコードが実行されます。また、リクエストは 1 日に数件から 1 秒に数千件まで自動的にスケールされます。Lambda のこれらの機能を使用することで、Amazon S3 や Amazon DynamoDB といった AWS サービス向けのデータ処理トリガの簡単な構築、Amazon Kinesis に格納されるストリーミングデータの処理、そして AWS の規模やパフォーマンス、セキュリティを活かして稼働する独自のバックエンドの作成が可能です。

AWS Lambda の設計図

設計図は、イベントソースと Lambda 関数のサンプル設定です。この設定では最小限の処理が行われます。設計図の多くは、Amazon S3 や DynamoDB など、特定のイベントソースのイベントを処理します。たとえば、[s3-get-object] 設計図を選択した場合、Amazon S3 によって発行され Lambda がパラメータとして受け取る、オブジェクト作成イベントを処理するサンプルコードが提供されます。

新規の AWS Lambda 関数を作成する場合、使用シナリオにもっとも合ったブループリントを使用できます。設計図は必要に応じてカスタマイズできます。設計図は使用しなくても構いません (Lambda 関数を自身で作成し、イベントソースを別に設定することもできます)。

Amazon CloudWatch

CloudWatch Events では、AWS リソースの変更が記述されたシステムイベントのストリームをほぼリアルタイムに配信します。数分で設定できるシンプルなルールを使用して、AWS Lambda 関数をはじめとする 1 つまたは複数のターゲットに各タイプのイベントを簡単にルーティングできるため、オーバーヘッドの削減と効率性の向上が可能です。CloudWatch イベントは、AWS 環境の中枢神経系と考えられます。このイベントは、サポートされているサービスそれぞれに関連付けられ、運用が変更されると同時に、それを識別します。その後、指定されたルールに従って関数をアクティベートし、メッセージを送信して環境に応答します。

Amazon Simple Notification Service (SNS)

Amazon SNS は、非常に利便性の高い通知サービスです。複雑なカスタムメッセージングソリューションの開発や、現場での維持管理が必要なシステム用ライセンスソフトウェアに費用をかけるよりも、大きなメリットが得られます。このサービスは、実績ある Amazon のネットワークインフラストラクチャとデータセンター内で実行されるため、アプリケーションで必要とされるときはいつでもトピックが利用可能です。メッセージの紛失を防ぐため、Amazon SNS に対してパブリッシュされる全メッセージは、複数のサーバーやデータセンターに冗長的に保存されます。Amazon SNS を使用することで、アプリケーションおよびエンドユーザーは、モバイルプッシュ通知、HTTP/HTTPS、Email/Email-JSON、SMS や Amazon SQS のキュー、または AWS Lambda 関数を通じて、種類の異なるデバイスでも通知を受け取ることができます。

Join Qwiklabs to read the rest of this lab...and more!

  • Get temporary access to the Amazon Web Services Console.
  • Over 200 labs from beginner to advanced levels.
  • Bite-sized so you can learn at your own pace.
Join to Start This Lab