Twitchエクステンションの Terraform サンプル

このセクションでは、Twitchエクステンション サンプル用に設計されたサンプル Terraform 構成を使用してクラウドインフラストラクチャをセットアップする方法を説明します。このサンプルでは、クラウドサービスプロバイダーに Amazon Web Services (AWS) を使用しています。

概要

Twitchエクステンション サンプルをテストするためのインフラストラクチャを起動するために、SDK 2 の Terraform の設定を参照してください。この例では Amazon AWS Provider を使用します。デプロイするものの概要は以下の通りです:

alb_ssl_cluster_vpc

この Terraform はインフラストラクチャーの動作に必要なすべてのコンポネントを作成します。

  • 新しい VPC およびパブリック/ プライベートサブネット構成
  • セキュリティグループ
  • 以下のアプリケーションロードバランサー
    • ポート 443 の HTTPS リスナー
    • リクエストをリーフにリダイレクトするルール
    • トラフィックを Web バックエンド (socket) にリダイレクトするルール
  • ロードバランサーをポイントする DNS レコード
  • Twitchエクステンション をデプロイするときにエンドポイントを安全にするために、Amazon ACM によって発行された SSL 証明書。
  • プロジェクト構成 (EC2 インスタンス) をデプロイする Genvid クラスタ

alb_ssl_cluster

この Terraform は、既存の VPC_ID を指定する必要があることを除き、以前の Terraform モジュールと同様にすべてのコンポーネントを作成します。これは、既存の VPC (リージョン内のデフォルト VPC など) にクラスタを追加したい場合に便利です。

いずれの場合も、インフラを実行することで料金が発生する場合があります。

要件

この構成を使用する前に、以下が必要です。

  1. Amazon AWS Account.
  2. Route 53 に DNS ゾーンを作成し、サブゾーンとして設定する必要があります。次に、サブドメインをそのサブゾーン (twitch.yourdomain.com) に指す NS レコードを作成します。これにより、SSL証明書の作成と検証が簡単になります。詳細は Page を参照してください。

注意: ドメインのプロパゲーションには、ドメインレジストラによっては最大 24 時間かかる場合があります。 dig (bash) 、 Resolve-DnsName (PowerShell) などのツールを使用して、DNS が伝達されていることを検証することもできます。

手順

  1. Preparation for Integration Steps. をよく読み理解してください。これにより、コンピュータに bastion サーバーとローカルクラスタがインストールされます。インストールされたローカル bastion から、AWS 上のクラウドにクラスターをデプロイすることができます。
  2. 新しいクラスタを作成 (Terraform、新しいクラスタの追加) します。
  3. Terraform モジュール名 SDK-{version}/basic/alb_ssl_cluster をインポートします。
  4. 設定を確認し、 Using Cluster の手順に従って作業してください。これにより、Twitch サンプルを実行するのに必要なインフラストラクチャを持つ新しいクラスタが AWS (クラウド) にデプロイされます。
  5. ゲームのデプロイ、ウェブサーバーのバックエンド、ストリームを行うための設定については、 Twitch Sample Tutorial documentation <insert link here> を参照してください。

この Terraform 構成に関する重要事項

  • これで稼働準備が整ったわけではありません。バックアップやリモートバックエンド戦略はデプロイされません。
  • Web ポートは静的である必要があり、Nomad ジョブは Web ポート (例: 30001) の Terraform 設定と一致する必要があります。
  • Leaf ポートは静的であり、Nomad ジョブは leaf ポート (例: 30002) の Terraform 設定と一致する必要があります。
  • 簡略化のため、Web と leaf のエンドポイントを Consul にプッシュします。これらの値は python のスクリプトの terraform 出力から読み込まれます。