メニュー
AWS CloudFormation
ユーザーガイド (API Version 2010-05-15)

AWS::ElasticLoadBalancingV2::TargetGroup

AWS::ElasticLoadBalancingV2::TargetGroup リソースは、EC2 インスタンスなどの 1 つあるいは複数の登録されたターゲットへリクエストをルーティングする Elastic Load Balancing ターゲットグループを作成します。 詳細については、Elastic Load Balancing ユーザーガイドの「ご利用開始にあたって」を参照してください。

構文

AWS CloudFormation テンプレートでこのエンティティを宣言するには、次の構文を使用します。

JSON

Copy
{ "Type" : "AWS::ElasticLoadBalancingV2::TargetGroup", "Properties" : { "HealthCheckIntervalSeconds" : Integer, "HealthCheckPath" : String, "HealthCheckPort" : String, "HealthCheckProtocol" : String, "HealthCheckTimeoutSeconds" : Integer, "HealthyThresholdCount" : Integer, "Matcher" : Matcher, "Name" : String, "Port" : Integer, "Protocol" : String, "Tags" : [ Resource Tag, ... ], "TargetGroupAttributes" : [ TargetGroupAttributes, ... ], "Targets" : [ TargetDescription, ... ], "TargetType" : String, "UnhealthyThresholdCount" : Integer, "VpcId" : String } }

YAML

Copy
Type: "AWS::ElasticLoadBalancingV2::TargetGroup" Properties: HealthCheckIntervalSeconds: Integer HealthCheckPath: String HealthCheckPort: String HealthCheckProtocol: String HealthCheckTimeoutSeconds: Integer HealthyThresholdCount: Integer Matcher: Matcher Name: String Port: Integer Protocol: String Tags: - Resource Tag TargetGroupAttributes: - TargetGroupAttributes Targets: - TargetDescription TargetType: String UnhealthyThresholdCount: Integer VpcId: String

プロパティ

HealthCheckIntervalSeconds

個々のターゲットのヘルスチェックの概算秒数。

Required: No

Type: Integer

更新に伴う要件: 中断はありません。

HealthCheckPath

Elastic Load Balancing がヘルスチェックリクエストを送信する宛先の ping パス。

Required: No

Type: String

更新に伴う要件: 中断はありません。

HealthCheckPort

ターゲットでヘルスチェックを実行するときにロードバランサーが使用するポート。

有効なデフォルトの値については、HealthCheckPortCreateTargetGroup」アクションのパラメーター (Elastic Load Balancing API リファレンスバージョン 2015-12-01) を参照してください。

Required: No

Type: String

更新に伴う要件: 中断はありません。

HealthCheckProtocol

ターゲットでヘルスチェックを実行するときにロードバランサーが使用するプロトコル (HTTPHTTPS など)。

有効なデフォルトの値については、HealthCheckProtocolCreateTargetGroup」アクションのパラメーター (Elastic Load Balancing API リファレンスバージョン 2015-12-01) を参照してください。

Required: No

Type: String

更新に伴う要件: 中断はありません。

HealthCheckTimeoutSeconds

ヘルスチェックが失敗したと判断するまでに応答を待つ秒数。

Required: No

Type: Integer

更新に伴う要件: 中断はありません。

HealthyThresholdCount

非正常なターゲットが正常であると見なされるまでに必要なヘルスチェックの連続成功回数。

Required: No

Type: Integer

更新に伴う要件: 中断はありません。

Matcher

ヘルスチェックに応答するときに正常なターゲットが使用する HTTP コード。

Required: No

Type: Elastic Load Balancing TargetGroup マッチャー

更新に伴う要件: 中断はありません。

Name

ターゲットグループの名前。

重要

この名前はアカウントごと、リージョンごとに一意である必要があります。

AWS CloudFormation はロードバランサーの名前を作成するのにターゲットグループ名を使用するため、ターゲットグループ名は 22 文字より短くする必要があります。

Required: No

Type: String

更新に伴う要件: 置換

Port

ターゲットがトラフィックを受信するポート。

Required: Yes

Type: Integer

更新に伴う要件: 置換

Protocol

ターゲットにトラフィックをルーティングするために使用するプロトコル。

Required: Yes

Type: String

更新に伴う要件: 置換

Tags

ターゲットグループに対する任意のタグのセット (キーと値のペア)。 このタグはリソースの管理に便利です。

Required: No

Type: AWS CloudFormation Resource Tags

更新に伴う要件: 中断はありません。

TargetGroupAttributes

ターゲットグループの設定。

Required: No

Elastic Load Balancing TargetGroup TargetGroupAttributesType: リスト

更新に伴う要件: 中断はありません。

Targets

このターゲットグループに追加するターゲット。

Required: No

Elastic Load Balancing TargetGroup TargetDescriptionType: リスト

更新に伴う要件: 中断はありません。

TargetType

このターゲットグループのターゲットの登録タイプ。有効な値は、instance および ip です。デフォルト: instance

必須: いいえ

タイプ: 文字列

更新に伴う要件: 置換。

UnhealthyThresholdCount

ターゲットが非正常であると見なされるまでに必要なヘルスチェックの連続失敗回数。

Required: No

Type: Integer

更新に伴う要件: 中断はありません。

VpcId

ターゲットが配置されている VPC の ID。

Required: Yes

Type: String

更新に伴う要件: 置換

戻り値

参照番号

このリソースの論理 ID が Ref 組み込み関数に提供されると、Ref により arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067 のようなターゲットグループの Amazon リソースネーム (ARN) 名が返されます。

Ref 関数の使用方法の詳細については、「Ref」を参照してください。

Fn::GetAtt

Fn::GetAtt は、このタイプの指定された属性の値を返します。以下には、利用可能な属性とサンプル戻り値のリストが示されます。

LoadBalancerArns

[ "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188" ] など、このターゲットグループにトラフィックをルーティングするロードバランサーの Amazon リソースネーム (ARN) のリスト。

TargetGroupFullName

ターゲットグループのフルネーム (targetgroup/my-target-group/cbf133c568e0d028 など)。

Fn::GetAtt の使用の詳細については、「Fn::GetAtt」を参照してください。

ターゲットとして EC2 インスタンスでターゲットグループを作成します。

次の例では、Instance1Instance2 EC2 インスタンスをターゲットとして含めるようなターゲットグループを作成します。 ヘルスチェックのリクエストを渡すためには、インスタンスが 200 ステータスコードで応答する必要があります。

JSON

Copy
"TargetGroup" : { "Type" : "AWS::ElasticLoadBalancingV2::TargetGroup", "Properties" : { "HealthCheckIntervalSeconds": 30, "HealthCheckProtocol": "HTTPS", "HealthCheckTimeoutSeconds": 10, "HealthyThresholdCount": 4, "Matcher" : { "HttpCode" : "200" }, "Name": "MyTargets", "Port": 10, "Protocol": "HTTPS", "TargetGroupAttributes": [{ "Key": "deregistration_delay.timeout_seconds", "Value": "20" }], "Targets": [ { "Id": {"Ref" : "Instance1"}, "Port": 80 }, { "Id": {"Ref" : "Instance2"}, "Port": 80 } ], "UnhealthyThresholdCount": 3, "VpcId": {"Ref" : "VPC"}, "Tags" : [ { "Key" : "key", "Value" : "value" }, { "Key" : "key2", "Value" : "value2" } ] } }

YAML

Copy
TargetGroup: Type: AWS::ElasticLoadBalancingV2::TargetGroup Properties: HealthCheckIntervalSeconds: 30 HealthCheckProtocol: HTTPS HealthCheckTimeoutSeconds: 10 HealthyThresholdCount: 4 Matcher: HttpCode: '200' Name: MyTargets Port: 10 Protocol: HTTPS TargetGroupAttributes: - Key: deregistration_delay.timeout_seconds Value: '20' Targets: - Id: Ref: Instance1 Port: 80 - Id: Ref: Instance2 Port: 80 UnhealthyThresholdCount: 3 VpcId: Ref: VPC Tags: - Key: key Value: value - Key: key2 Value: value2

Elastic Load Balancing ロードバランサーを Elastic Load Balancing ターゲットグループに関連付けます。

次の例では、Elastic Load Balancing リスナーを作成し、ターゲットグループとロードバランサーに関連付けます。

JSON

Copy
"ALBListener" : { "Type" : "AWS::ElasticLoadBalancingV2::Listener", "Properties" : { "DefaultActions" : [{ "Type" : "forward", "TargetGroupArn" : { "Ref" : "ALBTargetGroup" } }], "LoadBalancerArn" : { "Ref" : "ApplicationLoadBalancer" }, "Port" : "80", "Protocol" : "HTTP" } }, "ApplicationLoadBalancer" : { "Type" : "AWS::ElasticLoadBalancingV2::LoadBalancer", "Properties" : { "Scheme" : "internet-facing", "Subnets" : [ {"Ref" : "PublicSubnetAz1"}, {"Ref" : "PublicSubnetAz2"}], "SecurityGroups" : [{"Ref": "ALBSecurityGroup"}] } }, "ALBTargetGroup" : { "Type" : "AWS::ElasticLoadBalancingV2::TargetGroup", "Properties" : { "HealthCheckIntervalSeconds" : 60, "UnhealthyThresholdCount" : 10, "HealthCheckPath" : "/", "Name" : "MyTargetGroup", "Port" : 80, "Protocol" : "HTTP", "VpcId" : { "Ref": "MyVpc" } } }

YAML

Copy
ALBListener: Type: AWS::ElasticLoadBalancingV2::Listener Properties: DefaultActions: Type: forward TargetGroupArn: Ref: ALBTargetGroup LoadBalancerArn: Ref: ApplicationLoadBalancer Port: 80 Protocol: HTTP ApplicationLoadBalancer: Type: AWS::ElasticLoadBalancingV2::LoadBalancer Properties: Scheme: internet-facing Subnets: Ref: PublicSubnetAz1 Ref: PublicSubnetAz2 SecurityGroups: Ref: ALBSecurityGroup ALBTargetGroup: Type: AWS::ElasticLoadBalancingV2::TargetGroup Properties: HealthCheckIntervalSeconds: 60 UnhealthyThresholdCount: 10 HealthCheckPath: / Name: MyTargetGroup Port: 80 Protocol: HTTP VpcId: Ref: MyVpc

Elastic Load Balancing ターゲットグループタイプの指定

次に示す例では、ターゲットグループタイプを instance として指定しています。

JSON

Copy
{ "Parameters": { "CidrBlockForVPC": { "Type": "String" } }, "Resources": { "VPC": { "Type": "AWS::EC2::VPC", "Properties": { "CidrBlock": { "Ref": "CidrBlockForVPC" } } }, "TargetGroup": { "Type": "AWS::ElasticLoadBalancingV2::TargetGroup", "Properties": { "Port": 1000, "Protocol": "HTTPS", "TargetType": "instance", "VpcId": { "Ref": "VPC" } } } } }

YAML

Copy
Parameters: CidrBlockForVPC: Type: String Resources: VPC: Type: 'AWS::EC2::VPC' Properties: CidrBlock: !Ref CidrBlockForVPC TargetGroup: Type: 'AWS::ElasticLoadBalancingV2::TargetGroup' Properties: Port: 1000 Protocol: HTTPS TargetType: instance VpcId: !Ref VPC

このページの内容: