架空の企業である Example Corp. のウェブポータルを作成します。この Example Corp. では、関心のある顧客がアカウントを作成し、オンラインソフトウェアトライアルにサインアップできるようにしています。

  • Amazon Simple Storage Service (Amazon S3) を使用して、Example Corp. のウェブサイトをホスティングできるようにします。
  • Amazon Simple Email Service (SES) を使用して E メールアドレス ID を設定して検証します。Amazon SES を使用して、オンラインソフトウェアトライアルにサインアップしたユーザーに E メールを送信します。
  • Amazon AppStream 2.0 を使用して、ソフトウェアトライアルにサインアップするユーザーがストリーミングアプリケーションを利用できるようにします。
  • AWS Identity and Access Management (IAM) を使用してポリシーとロールを作成します。
  • 作成した IAM ロールに IAM ポリシーをアタッチします。このポリシーは、この後に作成する関数を実行するために必要です。
  • AWS Lambda を使用して関数を作成します。作成した関数は、要求された場合にストリーミング URL を生成し、ウェブサイトリクエストを処理します。
  • API Gateway を使用して、新しいリソースとメソッドを作成します。リソースとメソッドは、ユーザーと Lambda 関数の間でリクエストを交換するために使用されます。

以下の図に示すように、アプリケーションのアーキテクチャには、Amazon S3Amazon API GatewayAWS LambdaAmazon AppStream 2.0Amazon SES を使用します。

このプロジェクトには 6 つのモジュールがあります。各モジュールを完了してから次のモジュールに進む必要があります。

  1. 静的ウェブサイトをホスティングする
  2. ユーザーとの E メール通信で使用する FROM アドレスをカスタマイズする
  3. サーバーレスバックエンドを構築する
  4. RESTful API をデプロイする
  5. 設定をテストする
  6. プロジェクトリソースをクリーンアップする

AWS の使用経験: AppStream 2.0 およびその他の AWS のサービスに精通していることが推奨されます。AppStream 2.0 を初めて使用する場合、AppStream 2.0 Getting Started Guideを参照してください。このガイドでは、以下の方法について説明しています。

  • 2 つのアプリケーションをインストールして設定する。 
  • AppStream 2.0 コンソールを使用して、基本的な管理タスクを実行する。
  • 提供される AWS CloudFormation テンプレートを使用して、Amazon Virtual Private Cloud (Amazon VPC) で仮想ネットワークをプロビジョニングする。

完了までの時間: 1.5 時間

完了までのコスト: このプロジェクトで使用するサービスの一部は、AWS 無料利用枠の対象です。対象のサービスについては、 AWS 無料利用枠を参照してください。無料利用枠を超えて使用する場合、このプロジェクトを完了するための総コストは、ニーズと設定 (例えば、使用する AppStream 2.0 インスタンスタイプとフリートタイプ) によって異なります。コストを削減するために、プロジェクトが完了したら、プロジェクトに関連付けられているリソースを終了させることをお勧めします。リソースを終了させない場合、フリートとイメージビルダーを使用していない時に停止させることをお勧めします。
 
前提条件: このチュートリアルを完了するには、以下が必要です。

CloudFormation テンプレート: 選択したリージョンでこれらの AWS CloudFormation テンプレートのいずれかを起動して、このワークショップに必要なリソースを自動的に構築できます。

リージョン CloudFormation テンプレート
米国西部 (オレゴン) スタックを起動 >
米国東部 (バージニア北部)  スタックを起動 >
アジアパシフィック (ムンバイ)
スタックを起動 >
アジアパシフィック (東京) スタックを起動 >
アジアパシフィック (シドニー) スタックを起動 >
アジアパシフィック (シンガポール) スタックを起動 >
アジアパシフィック (ソウル)  スタックを起動 >
欧州 (アイルランド) スタックを起動 >
欧州 (フランクフルト) スタックを起動 >
CloudFormation の手順

次の手順は、AWS CloudFormation のテンプレートを使用して、このプロジェクトのモジュール 1、3、4 で説明されているタスクを自動化する方法を示しています。これらのタスクのリストについては、プロジェクトの概要ページの「達成するタスク」セクションを参照してください。

注意

CloudFormation テンプレートはこのプロジェクトのほとんどのタスクを自動化しますが、既存の AppStream 2.0 イメージ、フリート、およびスタックが引き続き必要です。CloudFormation テンプレートはこれらのリソースを作成しません。さらに、Amazon Simple Email Service (SES) を使用して E メールアドレス ID を設定して検証する必要があります。詳細については、モジュール 2 を参照してください。ユーザーとの E メール通信で使用する FROM アドレスをカスタマイズします。

1.AWS マネジメントコンソールにサインインしていることを確認してください。

2.リージョン選択リストで、このプロジェクトの環境を構築する AWS リージョンに関連付けられている [スタック起動] リンクを開きます。

3.[スタックをクイック作成] ページには、次の情報が表示されます。

  • テンプレート URL: テンプレートの URL です。
  • スタックの説明: CloudFormation スタックの説明です。
  • スタック名: CloudFormation スタックの名前です。デフォルト名は as2-stack-001 です。デフォルトの名前のままにするか、オプションでわかりやすい名前に変更します (examplecorp-cfn-stack-tin など)。

4.パラメータの下で、次を実行します。

  • AppStream2FleetName には、使用する AppStream 2.0 フリートの名前を入力します。
  • AppStreamSStackName には、使用する AppStream 2.0 スタックの名前を入力します。
  • S3BucketName には、Amazon S3 バケットにグローバルで一意の名前を入力します (examplecorp-s3bucket-tin-<yourfirstname-yourlastname> など)。S3 バケットはウェブサイトをホストします。

SESEmail の場合、Amazon SES を使用して設定および確認された E メールアドレスを入力します (sender@example.com など)。このアドレスは、オンラインお試し版にサインアップするユーザーに電子メールを送信するときに、発信アドレスとして使用されます。

5.[機能] で、テンプレートに最低限の必須権限を持つ Identity and Access Management (IAM) リソースが含まれているという通知が届きます。具体的には、[AWS::IAM::Role] 機能が必要です。CloudFormation がカスタム名で IAM リソースを作成する可能性を確認するには、チェックボックスを選択します。

6.[スタックを作成] を選択します。

7.作成プロセスが完了すると、AWS CloudFormation コンソールに CREATE_COMPLETE ステータスが表示されます。

8.スタックを選択した状態で、[出力] タブを選択します。

9.[出力] テーブルの [キー] 列で、CloudFormation テンプレートが作成したリソースの値をメモします。

  • BucketName – S3 バケットの名前です。手順 4 で S3 バケットに指定した名前が使用されます。
  • ExampleCorpApiGWInvokeUrl -- API Gateway は URL を呼び出します。URL は https://<code>.execute-api.<region>.amazonaws.com/dev の形式に従います。
  • ウェブサイト URL -- S3 バケットの Amazon S3 ウェブサイトエンドポイントです。URL は https://<S3bucketname>.s3-website-<region>.amazonaws.com の形式に従います。

10.Example Corp ウェブサイトのアセット zip ファイル (workshop_01_OnlineTrials.<GUID>.zip) のコンテンツをローカルコンピュータにダウンロードします。

11.ローカルコンピュータにダウンロードしたファイルの内容を抽出します。

12.ローカルコンピュータで zip ファイルの内容を抽出した場所に移動し、テキストエディタで assets/js/as2.js のファイルを開きます。

13.ファイルで var invokeurl = を検索して、invokeurl 変数を見つけます。

14.デフォルト値を、CloudFormation テンプレートが生成された API Gateway 呼び出し URL に置き換えます。

15.変更を保存して、ファイルを閉じます。

16.Amazon S3 コンソールを https://console.thinkwithwp.com/s3/ で開きます。

17.[バケット名] リストで、手順 4 で指定した S3 バケットの名前を選択します。

18.ローカルコンピュータで zip ファイルの内容を抽出した場所に移動します。workshop_01_OnlineTrials.<GUID> フォルダを開きます。このフォルダには、次のフォルダとファイルが含まれます。

  • アセット
  • イメージ
  • index.html
  • LICENSE.TXT
  • NOTICE.TXT
  • THIRD-PARTY.TXT
  • tryitnow.html

19.workshop_01_OnlineTrials.<GUID> フォルダの下のすべてのファイルとフォルダを選択します。フォルダ自体を選択してはいけません。

20.Amazon S3 コンソールウィンドウの [概要] タブで、[アップロード] を選択します。

21.選択したものを [アップロード] ダイアログボックスにドラッグアンドドロップします。

22.[アップロード] を選択します。

23.アップロードが完了したら、正しいファイルとフォルダが [概要] タブのリストに表示されることを確認します。

24.コンソールの左上隅にあるメニューで、[サービス] を選択します。

25.検索ボックスに cloudformation と入力し、検索結果から CloudFormation を選択します。

26.[スタック] リストの [スタック名] で、CloudFormation が作成されたスタックの名前を選択します。

27.[出力] タブの [値] で、WebsiteURL キーに対応する URL を選択します。

Example Corp ウェブサイトのホームページが表示されます。

28.ウェブサイトのアドレスバーで、URL に /tryitnow.html を追加します。

Example Corp の無料お試し登録ページが表示されます。

29.テストを続けるには、モジュール 5 の手順 2 から始まる手順を実行します。設定をテストします。