basic/basic_cluster_alb_ssl

Genvid クラスタと必要なワーカーを作成する Twitch 拡張機能サンプルの基本的なインフラストラクチャです。

重要

ALB SSL の統合には次の 2 つの前提条件があります。

  1. Web バックエンドが、パブリックノードのポート 30000 でサービスされており、/health のヘルスチェックを受けていること。
  2. Leaf のウェブソケットが、パブリックノードのポート 30001 でサービスされており、/health のヘルスチェックを受けていること。

すべてのノードがサービスを実行する必要はありませんが、存在しない場合は破棄されます。

バージョン 1.26.0 で変更: 変数 public_subnetsprivate_subnets を削除

プロバイダ

  • aws (2.54.0)
  • tls

要件

  • terraform >= 0.12
  • aws 2.54.0

入力

bastionid (string)

この bastion インスタンスの ID。

cluster (string)

クラスタの名称。

trusted_cidr (string)

信頼する CIDR。少なくともローカルマシンの外部 CIDR (<ip>/32) が含まれている必要があります。含まれていない場合、Consul/Nomad への提供とアクセスは失敗します。

admin_password (string)

ゲームマシンの管理者パスワード。

ami_version (string)

使用する AMI (ゲームおよび Genvid) のバージョンプレフィックス (例: 1.20.0 は、1.20.0 および 1.20.0.0 の両バージョンに一致)。

バージョンサフィックス付きの AMI を使用するには、サフィックス付きのバージョン全体を指定する必要があります (例: 1.27.0.1.mysuffix)。

azs (list(string))

リージョンで使用するアベイラビリティゾーンの一覧。空のリストでは、利用可能なすべてのゾーンが選択されます。

注釈

ゾーンの順序を変更すると、クラスタが再構築されます。リストに追加しても、既存のリソースには影響しません。

custom_tags (map(string))

すべてのクラウドリソースに追加するユーザー定義タグのマップ。

datacenter (string)

Consul/Nomad datacenter。

domain_name (string)

ルートドメイン名。

game_ami_prefix (string)

ゲーム AMI のプレフィックス。

バージョン 1.27.0 で追加.

instance_encoding_count (number)

生成するエンコーディングワーカー数。

instance_encoding_type (string)

エンコーディングサーバーで使用する EC2 インスタンスのタイプ。

instance_game_count (number)

生成されるゲームインスタンス数。

instance_game_type (string)

ゲームサーバーで使用する EC2 インスタンスのタイプ。

instance_internal_count (number)

生成する内部ワーカー数。

instance_internal_type (string)

内部サーバーで使用する EC2 インスタンスのタイプ。

instance_public_count (number)

生成するパブリックワーカー数。

instance_public_type (string)

パブリックサーバーで使用する EC2 インスタンスのタイプ。

instance_server_count (number)

監視サーバー数。奇数である必要があります (プロダクションのデプロイの場合、通常は 3 です)。

instance_server_type (string)

管理サーバーで使用する EC2 インスタンスのタイプ。

leaf_port (number)

Leaf サービスが実行されているポートです。

leaf_stickiness_ttl (number)

Leaf ターゲットグループ粘着性のタイムアウトを設定します。

leaf_tg_stickiness_enabled (bool)

Leaf ターゲットグループの粘着性を有効または無効に設定します。

region (string)

AWS デプロイメント領域。

server_ami_prefix (string)

サーバー AMI のプレフィックス。

バージョン 1.27.0 で追加.

subdomain_name (string)

subdomain_name を使用して AWS にゾーンを作成します (例:subdomain.acme.com)。

注釈

何も指定しなかった場合、 subdomain_name のデフォルト値は {bastionid}-{clustername} になります。

注釈

既存のクラスタでサブドメインを変更または更新する場合は、 AWS Route53 のメインドメインから古いサブドメインの NS レコードを手動で削除する必要があります。古い NS レコードは自動的には削除されません。

subnet_cidr_block_size (number)

サブネットの CIDR ブロックのサイズを設定します。サブネットはアベイラビリティゾーンにまたがっており、すべてのサブネットの合計サイズが VPC の CIDR ブロック (10.0.0.0/16) 内に収まっている必要があります。これは、より大きなブロックがより少ないアベイラビリティゾーンにまたがることを意味します。

例えば、サイズ 18 の場合 2 つのアベイラビリティゾーンにまたがっています。サイズ 27 であれば、2048 のアベイラビリティゾーンにまたがります。

最大サイズ: 18

最小サイズ: 27

toolbox_location (string)

Genvid ツールボックス Wheel ファイル。

AMI からアップデートする場合にのみ必要。指定しない場合は、ツールボックスはインストールされません。

trusted_cidrs (list(string))

信頼する CIDR リスト。

trusted_security_groups (list(string))

信頼するセキュリティグループの一覧。

use_drive_encryption (bool)

暗号化された EBS にしたい場合は true を選択します。EBS を暗号化したくない場合や、SDK のバージョンを 1.24.0 以下から 1.25.0 以上にアップグレードする場合は、false を選択してください。

警告

既存のドライブでこの機能を切り替えると、ドライブが再生されます。

バージョン 1.25.0 以降、デフォルトで暗号化が有効になっています。1.25.0 以前のバージョンでは、ドライブは暗号化されていませんでした。

web_health_check_path (string)

Web サービスのヘルスチェックエンドポイントパス。web.nomad.tmpl で定義したパスと一致させる必要があります。

web_port (number)

Web サービスが実行されているポートです。

web_stickiness_ttl (number)

Web ターゲットグループ粘着性のタイムアウトを設定します。

web_tg_stickiness_enabled (bool)

Web ターゲットグループの粘着性を有効または無効に設定します。

出力

ami_version

使用する AMI (ゲームおよび genvid) のバージョン。

azs_available

使用可能と検出されたアベイラビリティゾーンの一覧。

azs_selected

使用するために選択したアベイラビリティゾーンの一覧。

cluster

クラスタの名称

consul_nodes

コンソールノード

datacenter

Consul/Nomad datacenter

domain_name

クラスタを作成し、クラスタに関連付けるドメイン名

encoding_worker_private_ips

エンコードインスタンスのプライベート IP アドレス

encoding_worker_public_ips

エンコードインスタンスのパブリック IP アドレス

endpoint_leaf

leaf サービスのエンドポイント URL

endpoint_web

Web サービスのエンドポイント URL

game_instance_profile_name

ゲームインスタンスで使用するインスタンスプロフィール名

game_private_ips

ゲームインスタンスのプライベート IP アドレス

game_public_ips

ゲームインスタンスのパブリック IP アドレス

internal_worker_private_ips

内部インスタンスのプライベート IP アドレス

internal_worker_public_ips

内部インスタンスのパブリック IP アドレス

leaf_port

leaf がリッスンするポート

private_key_pem

SSH や RDP でインスタンスに接続するためのプライベートキー

private_subnets

VPC 内部のプライベートサブネットの一覧

public_key

AWS が認証に使用するインスタンスに接続するためのパブリックキー

public_subnets

VPC 内のパブリックサブネットの一覧

public_worker_private_ips

パブリックインスタンスのプライベート IP アドレス

public_worker_public_ips

パブリックインスタンスのパブリック IP アドレス

region

AWS デプロイメント領域

server_instance_profile_name

サーバー、エンコード、内部、パブリックインスタンスで使用するインスタンスプロフィール名

server_private_ips

サーバーインスタンスのプライベート IP アドレス

server_public_ips

サーバーインスタンスのパブリック IP アドレス

subnet_ids

使用したサブネットの順番リストを指定します。

vpc_id_selected

選択した VPC の ID

web_health_check_path

Web サービスのヘルスチェックエンドポイントパス。

web_port

web サービスがリッスンしているポートです。