Twitch 拡張機能の Terraform サンプル
このセクションでは、Twitch 拡張機能サンプル用にデザインされたサンプル Terraform 構成を使用してクラウドインフラストラクチャをセットアップする方法を説明します。このサンプルでは、クラウドサービスプロバイダーに Amazon Web Services (AWS) を使用しています。
このセクションの内容
概要
SDK には、Twitch 拡張機能サンプルをテストするためのクラウドインフラストラクチャを作成する際に使用できる 2 つの Terraform 構成が含まれています。どちらの設定も、インフラストラクチャが動作するために必要なすべてのコンポーネントを作成します。
セキュリティグループ
- 以下のアプリケーションロードバランサー
ポート 443 の HTTPS リスナー
リクエストを leaf にリダイレクトするルール
トラフィックを Web バックエンド (socket) にリダイレクトするルール
ロードバランサーをポイントする DNS レコード
Twitch 拡張機能 をデプロイするときにエンドポイントを安全にするために、Amazon ACM によって発行された SSL 証明書。
プロジェクト構成 (EC2 インスタンス) をデプロイする Genvid クラスタ
basic_cluster_alb_ssl 構成は、新しい Virtual Private Cloud (VPC) とパブリック/プライベートサブネット構成を作成します。
minimal_cluster_alb_ssl 設定では、 VPC_ID を指定して既存の VPC に参加することができます。
注釈
AWS account type によっては、このインフラストラクチャのデプロイに費用が発生する場合があります。Genvid MILE SDK インフラストラクチャをデプロイする前に、料金が発生する可能性があるかどうかを常に AWS でご確認ください。。
はじめに
この構成を使用する前に、以下が必要です。
Amazon AWS Account.
Route 53 に DNS ゾーンを作成し、サブゾーンとして設定する必要があります。次に、サブドメインをそのサブゾーン (例: twitch.yourdomain.com) に指す NS レコードを作成する必要があります。
これにより、SSL 証明書の作成と検証が簡単になります。詳細は Amazon Route 53 Developer Guide を参照してください。
注釈
ドメインのプロパゲーションには、ドメインレジストラによっては最大 24 時間かかる場合があります。 dig (Bash) 、 Resolve-DnsName (PowerShell) などのツールを使用して、DNS が伝達されていることを検証することもできます。
クラスタの設定
ローカルクラスタ を設定します。
これにより、コンピュータに bastion サーバーとローカルクラスタがインストールされます。インストールされたローカル bastion から、AWS 上のクラウドにクラスタをデプロイすることができます。
最初の手順で create new cluster を作成します。
Terraform モジュールをインポートする SDK-{version}/basic/basic_cluster_alb_ssl 。
version は、使用している Genvid MILE SDK のバージョンと一致します 。(現在の 1.42.0 )
残りの 設定 を行って、このページの残りのステップに従います。
これにより、Twitch サンプルを実行するのに必要なインフラストラクチャを持つ新しいクラスタが AWS クラウドにデプロイされます。
ゲームのデプロイ、Web サーバーのバックエンド、配信を行うための設定については、 Twitch サンプル DirectX 解説書 を参照してください。
この Terraform 構成に関する重要事項
現在、クラスタ名は最大 5 文字の英数字でなければなりません。
これでプロダクションの準備が整ったわけではありません。この設定には、バックアップやリモートバックエンドのストラテジーは含まれていません。
Web ポートは静的である必要があり、Nomad ジョブは Web ポート (通常は30001) の Terraform 設定と一致する必要があります。
leaf ポートは静的である必要があり、Nomad ジョブは leaf ポート (通常は30002) の Terraform 設定と一致する必要があります。
簡略化のため、Web と leaf のエンドポイントを Consul にプッシュします。これらの値は Python のスクリプトの Terraform 出力から読み込まれます。