VPC Lattice を使用するサービスを作成する
AWS Management Consoleまたは AWS CLI のいずれかを使用して、VPC Lattice でサービスを作成できます。
前提条件
個のチュートリアルを開始する前に、次の前提条件を満たしていることを確認します。
-
AWS CLI の最新バージョンがインストールされ、設定されていること。詳細については、「AWS Command Line Interface のインストール」を参照してください。
注記
デュアルスタックサービスエンドポイントを使用することで、IPv4 と IPv6 の両方を介して AWS CLI、SDK、および Amazon ECS API から Amazon ECS とやり取りできます。詳細については、「Amazon ECS デュアルスタックエンドポイントの使用」を参照してください。
-
「Amazon ECS を使用するようにセットアップする」で説明されているステップが完了しました。
-
IAM ユーザーに AmazonECS_FullAccess IAM ポリシー例で指定されている必要なアクセス権限があること。
AWS Management Consoleで VPC Lattice を使用するサービスを作成する
AWS Management Consoleを使用して VPC Lattice でサービスを作成するには、次のステップに従います。
コンソール (https://console.aws.amazon.com/ecs/v2
) を開きます。 -
ナビゲーションページで、[クラスター] を選択します。
-
[クラスター] ページで、サービスを作成するクラスターを選択します。
-
[Services] (サービス) タブから、[Create] (作成) を選択します。
以前にサービスを作成したことがない場合は、「コンソールを使用した Amazon ECS サービスの作成」のステップに従い、VPC Lattice セクションまで進んだら、これらのステップを続行します。
-
ボタンをオンにして [VPC Lattice を有効にする] ことを選択します。
-
既存のロールを使用するには、[Amazon ECS の ECS インフラストラクチャロール] で、VPC Lattice ターゲットグループの作成時に使用する作成済みのロールを選択します。新しいロールを作成するには、[ECS インフラストラクチャロールの作成] を選択します。
-
VPC を選択します。
[VPC] は、タスク定義を登録したときに選択したネットワークモードによって異なります。EC2 起動タイプで
host
またはnetwork
モードを使用する場合は、VPC を選択します。awsvpc
モードでは、VPC は [ネットワーク] で選択した VPC に基づいて自動的に選択され、変更することはできません。 -
[ターゲットグループ] で、1 つまたは複数のターゲットグループを選択します。少なくとも 1 つのターゲットグループを選択する必要があります。最大 5 つのターゲットグループを選択できます。追加のターゲットグループを追加するには、[ターゲットグループの追加] を選択します。選択した各ターゲットグループの [ポート名]、[プロトコル]、および [ポート] を選択します。ターゲットグループを削除するには、[削除] を選択します。
注記
-
既存のターゲットグループを追加する場合は、AWS CLI を使用する必要があります。AWS CLI を使用してターゲットグループを追加する方法については、「AWS Command Line Interface リファレンス」の「register-targets」を参照してください。
-
VPC Lattice サービスは複数のターゲットグループを持つことができますが、各ターゲットグループは 1 つのサービスにのみ追加できます。
-
-
この時点で、VPC Lattice コンソールに移動してセットアップを続行します。ここでは、リスナーのデフォルトアクションまたは既存の VPC Lattice サービスのルールに新しいターゲットグループを含めます。
詳細については、「Listener rules for your VPC Lattice service」を参照してください。
重要
セキュリティグループにインバウンドルール vpc-lattice
プレフィックスを許可しないと、タスクやヘルスチェックが失敗する可能性があります。
AWS CLIで VPC Lattice を使用するサービスを作成する
AWS CLI を使用して、VPC Lattice でサービスを作成します。各ユーザー入力プレースホルダー
を独自の情報に置き換えます。
-
ターゲットグループ設定ファイルを作成します。以下の例は
tg-config.json
という名前です{ "ipAddressType": "IPV4", "port": 443, "protocol": "HTTPS", "protocolVersion": "HTTP1", "vpcIdentifier": "
vpc-f1663d9868EXAMPLE
" } -
以下のコマンドを使用して、VPC Lattice ターゲットグループを作成します。
aws vpc-lattice create-target-group \ --name my-lattice-target-group-ip \ --type IP \ --config file://
tg-config.json
出力例:
{ "arn": "arn:aws:vpc-lattice:us-east-2:123456789012:targetgroup/tg-0eaa4b9ab4EXAMPLE", "config": { "healthCheck": { "enabled": true, "healthCheckIntervalSeconds": 30, "healthCheckTimeoutSeconds": 5, "healthyThresholdCount": 5, "matcher": { "httpCode": "200" }, "path": "/", "protocol": "HTTPS", "protocolVersion": "HTTP1", "unhealthyThresholdCount": 2 }, "ipAddressType": "IPV4", "port": 443, "protocol": "HTTPS", "protocolVersion": "HTTP1", "vpcIdentifier": "vpc-f1663d9868EXAMPLE" }, "id": "tg-0eaa4b9ab4EXAMPLE", "name": "my-lattice-target-group-ip", "status": "CREATE_IN_PROGRESS", "type": "IP" }
-
以下の
ecs-service-vpc-lattice.json
という名前の JSON ファイルは、VPC Lattice ターゲットグループに Amazon ECS サービスをアタッチするために使用される例です。以下の例のportName
は、タスク定義のportMappings
プロパティのname
フィールドで定義したものと同じです。{ "serviceName": "
ecs-service-vpc-lattice
", "taskDefinition": "ecs-task-def
", "vpcLatticeConfigurations": [ { "targetGroupArn": "arn:aws:vpc-lattice:us-west-2:123456789012
:targetgroup/tg-0eaa4b9ab4EXAMPLE
", "portName": "testvpclattice
", "roleArn": "arn:aws:iam::123456789012
:role/ecsInfrastructureRoleVpcLattice" } ], "desiredCount":5
, "role": "ecsServiceRole
" }以下のコマンドを使用して Amazon ECS サービスを作成し、上記の json 例を使用して VPC Lattice ターゲットグループにアタッチします。
aws ecs create-service \ --cluster
clusterName
\ --serviceNameecs-service-vpc-lattice
\ --cli-input-json file://ecs-service-vpc-lattice.json