AWS SDK for Python (Boto) を使用した DynamoDB のサンプルアプリケーション: Tic-tac-toe - Amazon DynamoDB

AWS SDK for Python (Boto) を使用した DynamoDB のサンプルアプリケーション: Tic-tac-toe

この Tic-Tac-Toe ゲームのサンプルウェブアプリケーションは、Amazon DynamoDB 上に構築されます。このアプリケーションでは AWS SDK for Python (Boto) を使用して、DynamoDB テーブルにゲームデータを保存するのに必要な DynamoDB 呼び出しを行います。また、Python ウェブフレームワーク Flask を使用して、データのモデル化の方法を含む DynamoDB でのアプリケーション開発について、包括的に見ることができます。また、DynamoDB でのデータのモデル化に関するベストプラクティスを示します。これには、ゲームアプリケーション用に作成するテーブル、ユーザーが定義するプライマリキー、クエリ要件に基づいて必要になる追加のインデックス、および連結された属性値の使用などが含まれます。

Tic-Tac-Toe アプリケーションは、次のようにしてウェブ上でプレイします。

  1. アプリケーションのホームページにログインします。

  2. 次に、他のユーザーを対戦相手としてゲームに招待します。

    他のユーザーが招待を受け入れるまで、ゲームのステータスは PENDING となります。対戦相手が招待を受け入れると、ステータスは IN_PROGRESS に変わります。

  3. ゲームは、対戦相手がログインして招待を受け入れてから開始されます。

  4. このアプリケーションでは、ゲームのすべての動きやステータス情報は、DynamoDB テーブルに格納されます。

  5. ゲームは優勝または引き分けで終わり、これによりゲームのステータスは FINISHED に設定されます。

アプリケーション構築についてすべて網羅した演習を各ステップで示します。

  • ステップ 1: ローカルにデプロイおよびテストを実行します – このセクションでは、アプリケーションをローカルコンピュータにダウンロード、デプロイし、そのテストを行います。DynamoDB のダウンロード可能バージョンで、必要なテーブルを作成していきます。

  • ステップ 2: データモデルと実装の詳細を調べます – このセクションでは、最初にインデックスや連結された属性値の使用を含め、データモデルの詳細について説明します。次に、アプリケーションの動作について説明します。

  • ステップ 3: DynamoDB サービスを使用して実稼働環境のデプロイを行います – このセクションでは、実稼働環境でのデプロイの考慮事項について説明します。このステップでは、Amazon DynamoDB サービスを使用してテーブルを作成し、AWS Elastic Beanstalk を使用してアプリケーションをデプロイします。実稼働状態のアプリケーションがある場合は、アプリケーションが DynamoDB テーブルにアクセスできるようにするため、適切なアクセス許可を付与します。このセクションの手順では、本稼働デプロイについて詳細に説明します。

  • ステップ 4: リソースをクリーンアップする – このセクションでは、このサンプルアプリケーションでカバーしていない領域に目を向けます。また、料金が発生しないようにするため、前のステップで作成した AWS リソースを削除するためのステップについても説明します。