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 アプリケーションは、次のようにしてウェブ上でプレイします。
-
アプリケーションのホームページにログインします。
-
次に、他のユーザーを対戦相手としてゲームに招待します。
他のユーザーが招待を受け入れるまで、ゲームのステータスは
PENDING
となります。対戦相手が招待を受け入れると、ステータスはIN_PROGRESS
に変わります。 -
ゲームは、対戦相手がログインして招待を受け入れてから開始されます。
-
このアプリケーションでは、ゲームのすべての動きやステータス情報は、DynamoDB テーブルに格納されます。
-
ゲームは優勝または引き分けで終わり、これによりゲームのステータスは
FINISHED
に設定されます。
アプリケーション構築についてすべて網羅した演習を各ステップで示します。
-
ステップ 1: ローカルにデプロイおよびテストを実行します – このセクションでは、アプリケーションをローカルコンピュータにダウンロード、デプロイし、そのテストを行います。DynamoDB のダウンロード可能バージョンで、必要なテーブルを作成していきます。
-
ステップ 2: データモデルと実装の詳細を調べます – このセクションでは、最初にインデックスや連結された属性値の使用を含め、データモデルの詳細について説明します。次に、アプリケーションの動作について説明します。
-
ステップ 3: DynamoDB サービスを使用して実稼働環境のデプロイを行います – このセクションでは、実稼働環境でのデプロイの考慮事項について説明します。このステップでは、Amazon DynamoDB サービスを使用してテーブルを作成し、AWS Elastic Beanstalk を使用してアプリケーションをデプロイします。実稼働状態のアプリケーションがある場合は、アプリケーションが DynamoDB テーブルにアクセスできるようにするため、適切なアクセス許可を付与します。このセクションの手順では、本稼働デプロイについて詳細に説明します。
-
ステップ 4: リソースをクリーンアップする – このセクションでは、このサンプルアプリケーションでカバーしていない領域に目を向けます。また、料金が発生しないようにするため、前のステップで作成した AWS リソースを削除するためのステップについても説明します。