ユーザーがターンベースの戦略ゲームの Nim をプレイできるオンラインアプリケーションを構築しているとします。Nim には、オブジェクトの 3 つのヒープがあります。2 人のプレイヤーが交互にターンを行い、1 つの山から任意の数のオブジェクトを取り除きます。ゲームの目標は、他のプレイヤーに最後のオブジェクトを強制的に削除させることです。

アプリケーションの一部として、既存のゲームの状態を保存する必要があります。また、ゲームのさまざまな時点でユーザーに通知する必要があります。あるユーザーが新しいゲームに招待したとき、プレイする順番になったとき、勝者が決定したときにユーザーに通知します。

このラボでは、Amazon DynamoDBAmazon SNS を使用してこれらのニーズを処理する方法を学びます。Amazon DynamoDB は、既存のゲームの状態を保存して、ターンの間を保つために使用します。Amazon SNS は、ゲームの重要な時点でプレイヤーに通知を送信するために使用します。

モジュール 1 では、環境を設定し、ラボで使用するコードをダウンロードします。

モジュールの所要時間: 20 分

 


  • ステップ 1: AWS アカウントを作成する

    このラボでは、個人の AWS アカウントを使用するか、新しい AWS アカウントを作成します。組織のアカウントを使用しないでください。これにより、必要なサービスへのフルアクセスが可能になり、ラボのリソースを残しません。終了時にこのラボで使用したリソースを削除しないと、AWS の料金が発生する場合があります。

  • ステップ 2: AWS Cloud9 IDE をセットアップする

    AWS Cloud9 は、ブラウザのみでコードを記述、実行、デバッグできるクラウドベースの統合開発環境 (IDE) です。AWS Cloud9 には、コードエディタ、デバッガー、ターミナルが含まれています。Cloud9 には一般的なプログラム言語と AWS コマンドラインインターフェイス (CLI) に必要なツールがあらかじめパッケージされており、このラボ用にファイルをインストールしたりノートパソコンを設定したりする必要はありません。AWS Cloud9 環境には、AWS マネジメントコンソールにサインインしたユーザーと同じ AWS リソースへのアクセス権があります。

    AWS Cloud9 開発環境をセットアップするには:

    1. AWS マネジメントコンソールに移動し、ページ上部の [Services] を選択してから、[Developer Tools] で [Cloud9] をクリックします。
    2. [Create environment] を選択します。
    3. [Name] ボックスに「Turn-based game」と入力します。[Description] ボックスは空のままにします。
    4. [Next step] を選択します。
    5. [Environment settings] はデフォルトのままにして、新しい t2.micro EC2 インスタンスを作成します。これは、非アクティブな状態が 30 分続くと休止状態になります。
    6. [次のステップ] をクリックします。
    7. 環境の名前と設定を確認し、[Create environment] を選択します。環境がプロビジョニングされて準備が整うまで数分かかります。
    8. 環境の準備ができたら、IDE が開いてウェルカムノートが表示されます。

    これで、AWS Cloud9 環境が表示されるはずです。ユーザーは、次のスクリーンショットに示す AWS Cloud9 コンソールの 3 つの領域に精通している必要があります。

    • ファイルエクスプローラー: IDE の左側に、ファイルエクスプローラーにディレクトリ内のファイルのリストが表示されます。
    • ファイルエディタ: IDE の右上にあるファイルエディタでは、ファイルエクスプローラーで選択したファイルを表示および編集できます。
    • ターミナル: IDE の右下にあり、コードサンプルを操作するコマンドを実行します。

    (クリックして拡大)

  • ステップ 3: サポートコードをダウンロードする

    このラボでは、JavaScript を使用して Amazon DynamoDB データベースおよび Amazon SNS とやり取りします。AWS Cloud9 ターミナルで次のコマンドを実行して、モジュールコードをダウンロードして解凍します。

    cd ~/environment
    curl -sL http://d118jxrmrxsq90.cloudfront.net/turn-based.tar | tar -xv
    

    AWS Cloud9 ターミナルで次のコマンドを実行して、ディレクトリを表示します。

    ls

    AWS Cloud9 ファイルエクスプローラーに次の 2 つのディレクトリが表示されます。

    • アプリケーション: アプリケーションディレクトリには、ターンベースのゲームアプリケーションのサンプルコードが含まれています。このコードは、実際のターンベースのゲームアプリケーションバックエンドにあるコードに似ています。
    • スクリプト: スクリプトディレクトリには、AWS リソースの作成やデータベースへのデータのロードなどの管理者レベルのスクリプトが含まれています。

    AWS Cloud9 ターミナルで次のコマンドを実行して、両方のディレクトリの依存関係をインストールします。

    npm install --prefix scripts/ && npm install --prefix application

    AWS Cloud9 ターミナルで次のコマンドを実行して、環境ファイルの AWS リージョンを設定します。この例では us-east-1 を使用していますが、ラボで使用するご希望の AWS リージョンを選択してください。

    echo "export AWS_REGION=us-east-1" >> env.sh && source env.sh

    env.sh ファイルを使用して、このラボで必要なリソースおよびその他のパラメータの環境変数を保存します。このラボ中に休憩を取り、AWS Cloud9 環境で新しいセッションを開始する場合は、ターミナルで次のコマンドを実行して環境変数をリロードしてください。

    source env.sh

このモジュールでは、このラボで構築するサンプルアプリケーションについて学習しました。また、AWS アカウントをセットアップし、AWS Cloud9 インスタンスを設定しました。

これで、ラボを開始する準備が整いました。次のモジュールでは、Amazon DynamoDB データベースをプロビジョニングします。