概要
いよいよミッションの仕上げです。このラボでは、DynamoDB を使用してミッション指示書の生成システムを完成させて公開します。このラボは、3 部からなるシリーズのパート 3 です。パート 1 では、DynamoDB のテーブルを作成し、ミッションデータを入力しました。パート 2 では、ミッションデータを取得する Lambda 関数を作成し、テストしました。パート 3 ではこの 3 回シリーズの締めくくりとして、Amazon API Gateway を使用して API を設定し、Lambda 関数経由で DynamoDB テーブルから情報取得を行う公開ウェブサイトを作ります。3 回のラボで学習した知識を活用して、世界を救う任務にスーパーヒーローを送り出しましょう。
取り上げるトピック
このラボを修了すると、以下のことができるようになります。
- Amazon API Gateway で DynamoDB テーブルにアクセスする Lambda 関数の API を作成する
- 独自 API 用の SDK を作成する
- Amazon S3 でコンテンツを設定して公開する
…そして、これから立ち向かうミッションに関する詳細情報をスーパーヒーローに提供することもできるようになります。
ラボの前提条件
Amazon DynamoDB 入門のラボを受講し、主要な概念を熟知している必要があります。これは 3 つのシリーズのうち、3 つ目のラボです。それぞれのラボは独立していますが、このラボは以前学習した内容に基づいて構成されているため、内容をより理解するために、事前に Serverless Web Apps using Amazon DynamoDB - Part 1 と Serverless Web Apps using Amazon DynamoDB - Part 2 を受講することをお勧めします。
AWS のその他のサービス
このラボで必要としない AWS のサービスは、このラボにアクセスしている間、IAM ポリシーによって無効にされています。さらに、このラボで使用されるサービスの機能はラボに必要なものに限定されており、場合によってはラボの設計の観点から意図的にさらに制限されています。このラボガイドに指定されていないサービスを使用したりアクションを実行したりすると、エラーが発生することがあります。
Amazon DynamoDB
Amazon DynamoDB は、数ミリ秒単位のレイテンシーをあらゆる規模で一貫して必要とするアプリケーションに対応できる、高速かつ柔軟な NoSQL データベースサービスです。フルマネージド型のクラウドデータベースであり、ドキュメントストアモデルと key-value ストアモデルの両方に対応しています。フレキシブルなデータモデルと信頼性の高いパフォーマンスにより、モバイル、ウェブ、ゲーム、アドテック、IoT など多くのアプリケーションに最適です。
Amazon DynamoDB を使用して作成したデータベーステーブルには、任意の量のデータを保存して取り出すことができ、どのような量のリクエストトラフィックも処理できます。ユーザーによって指定されたリクエスト量と保存データ量を処理するために、テーブルのデータとトラフィックは Amazon DynamoDB によって自動的に十分な数のサーバーに分散され、パフォーマンスは一定で高速に保たれます。
Amazon DynamoDB の詳細については、https://aws.amazon.com/documentation/dynamodb/ を参照してください。料金については、https://aws.amazon.com/dynamodb/pricing/ を参照してください。
AWS Lambda
AWS Lambda は、サイズ変更可能なコンピューティング性能をクラウドで提供し、開発者がウェブスケールのコンピューティングを簡単に利用できるようにするコンピューティングサービスです。AWS Lambda にコードをアップロードすると、コードを実行するために使用するサーバーのプロビジョニングと管理を AWS Lambda が行います。AWS Lambda は、Node.js、Java、Python といった複数のコーディング言語をサポートしています。 AWS Lambda には、以下の 2 つの使用方法があります。
- AWS Lambda がイメージファイルのアップロードなどのイベントに応じて、コードを実行するイベントドリブン型のコンピューティングサービスとして。このラボではこれを実習します
- Amazon API Gateway を使用した HTTP リクエストまたは API 呼び出しを受けて、お客様のコードを実行するコンピューティングサービスとしての使用法
AWS Lambda を使用することで、Amazon が提供する経済的なメリットを受けることができます。Lambda では、必要な場合にのみコードが実行され、自動的にスケーリングして 1 日に数件のリクエストから 1 秒に数千件のリクエストまでに対応できます。Lambda を使用すると、Amazon S3 や Amazon DynamoDB といった AWS のサービスに対するデータ処理トリガーの作成、Amazon Kinesis に保存されるストリーミングデータの処理、AWS の規模、パフォーマンス、セキュリティを活用して稼働する独自のバックエンドの作成が簡単に行えます。
このラボガイドでは、AWS の基本的な概念について順に説明します。ただし、Lambda の概念については簡単な概要のみを記載しています。詳細については、Lambda の公式アマゾン ウェブ サービスドキュメント (https://aws.amazon.com/documentation/lambda/) を参照してください。 料金詳細については、https://aws.amazon.com/lambda/pricing/ を参照してください。
Amazon API Gateway
Amazon API Gateway は完全マネージド型サービスで、規模にかかわらず、開発者は簡単に API を作成、公開、メンテナンス、モニタリング、保護できます。AWS マネジメントコンソールで数回クリックするだけで、バックエンドサービスからのデータ、ビジネスロジック、機能をアプリケーションで利用するための「正面玄関」として機能する API を作成できます。この API は、Amazon Elastic Compute Cloud (Amazon EC2) で実行されるワークロード、AWS Lambda で実行されるコード (このラボで後ほど確認します)、あるいは任意のウェブアプリケーションで使用できます。Amazon API Gateway では、同時に発生した何十万件もの API コールの受け入れおよび処理に関するタスクにすべて対応します。これには、トラフィック管理、認可とアクセスコントロール、モニタリング、API バージョンの管理が含まれます。
ドキュメントについては、https://aws.amazon.com/documentation/apigateway/ を参照してください。料金詳細については、https://aws.amazon.com/api-gateway/pricing/ を参照してください。