AWS CLI を使用して Network Load Balancer の使用を開始する
このチュートリアルでは、AWS CLI を通じて Network Load Balancer の実践的な概要を説明します。
内容
前提条件
-
AWS CLI をインストールするか、Network Load Balancers をサポートしていないバージョンを使用している場合は AWS CLI を現行バージョンに更新します。詳細については、AWS Command Line Interface ユーザーガイドの「AWS Command Line Interface のインストール」を参照してください。
-
EC2 インスタンスに使用するアベイラビリティーゾーンを決定します。これらの各アベイラビリティーゾーンに少なくとも 1 つのパブリックサブネットがある Virtual Private Cloud (VPC) を設定します。
-
IPv4 またはデュアルスタックロードバランサーのどちらを作成するかを決定します。クライアントが IPv4 アドレスだけを使用してロードバランサーと通信する場合、IPv4 を使用します。クライアントが IPv4 および IPv6 アドレスを使用してロードバランサーと通信する場合、デュアルスタックを使用します。また、IPv6 を使用して IPv6 アプリケーションやデュアルスタックサブネットなどのバックエンドターゲットと通信するために、デュアルスタックを使用することもできます。
-
各アベイラビリティーゾーンで少なくとも 1 つの EC2 インスタンスを起動します。これらのインスタンスのセキュリティグループが、リスナーポート上のクライアントからの TCP アクセスと、VPC からのヘルスチェックリクエストを許可していることを確認します。詳細については、「ターゲットセキュリティグループ」を参照してください。
ステップ 1: Network Load Balancer を作成し、ターゲットを登録する
最初のロードバランサーを作成するには、次のステップを完了します。
IPv4 Network Load Balancer を作成する
-
create-load-balancer コマンドを使用して IPv4 ロードバランサーを作成し、インスタンスを起動した各アベイラビリティーゾーンのパブリックサブネットを指定します。アベイラビリティーゾーンごとに 1 つだけサブネットを指定できます。
デフォルトでは、AWS CLI を使用して Network Load Balancer を作成すると、VPC のデフォルトセキュリティグループは自動的に使用されません。作成時にロードバランサーにセキュリティグループを関連付けしないと、後で追加できません。作成時に
--security-groups
オプションを使用してロード バランサーのセキュリティ グループを指定することをお勧めします。aws elbv2 create-load-balancer --name
my-load-balancer
--type network --subnets subnet-0e3f5cac72EXAMPLE
--security-groups sg-0123456789EXAMPLE
出力には、次の形式でロードバランサーの Amazon リソースネーム (ARN) が含まれます。
arn:aws:elasticloadbalancing:
us-east-2
:123456789012
:loadbalancer/net/my-load-balancer/1234567890123456
-
create-target-group コマンドを使用して IPv4 ターゲットグループを作成し、EC2 インスタンスに使用したのと同じ VPC を指定します。IPv4 ターゲットグループでは、IP およびインスタンスタイプのターゲットがサポートされています。
aws elbv2 create-target-group --name
my-targets
--protocol TCP --port 80 --vpc-id vpc-0598c7d356EXAMPLE
出力には、次の形式のターゲットグループの ARN が含まれます。
arn:aws:elasticloadbalancing:
us-east-2
:123456789012
:targetgroup/my-targets
/1234567890123456
-
インスタンスをターゲットグループに登録するには、register-targets コマンドを使用します。
aws elbv2 register-targets --target-group-arn
targetgroup-arn
--targets Id=i-1234567890abcdef0
Id=i-0abcdef1234567890
-
ターゲットグループにリクエストを転送するデフォルトルールを持つロードバランサーのリスナーを作成するには、create-listener コマンドを使用します。
aws elbv2 create-listener --load-balancer-arn
loadbalancer-arn
--protocol TCP --port 80 \ --default-actions Type=forward,TargetGroupArn=targetgroup-arn
出力には、次の形式のリスナーの ARN が含まれます。
arn:aws:elasticloadbalancing:
us-east-2
:123456789012
:listener/net/my-load-balancer
/1234567890123456
/1234567890123456
-
(オプション) この describe-target-health コマンドを使用してターゲットグループの登録されたターゲットのヘルスステータスを確認できます。
aws elbv2 describe-target-health --target-group-arn
targetgroup-arn
デュアルスタック Network Load Balancer を作成する
-
create-load-balancer コマンドを使用してデュアルスタックロードバランサーを作成し、インスタンスを起動した各アベイラビリティーゾーンのパブリックサブネットを指定します。アベイラビリティーゾーンごとに 1 つだけサブネットを指定できます。
aws elbv2 create-load-balancer --name
my-load-balancer
--type network --subnets subnet-0e3f5cac72EXAMPLE
--ip-address-typedualstack
出力には、次の形式でロードバランサーの Amazon リソースネーム (ARN) が含まれます。
arn:aws:elasticloadbalancing:
us-east-2
:123456789012
:loadbalancer/net/my-load-balancer/1234567890123456
-
create-target-group コマンドを使用してターゲットグループを作成し、EC2 インスタンスに使用したのと同じ VPC を指定します。
デュアルスタックロードバランサーで TCP または TLS ターゲットグループを使用する必要があります。
IPv4 ターゲットグループおよび IPv6 ターゲットグループを作成して、デュアルスタックロードバランサーに関連付けることができます。ターゲットグループの IP アドレスタイプによって、ロードバランサーがバックエンドターゲットと通信したり、バックエンドターゲットの状態をチェックしたりするのに使用する IP バージョンが決定されます。
IPv4 ターゲットグループでは、IP およびインスタンスタイプのターゲットがサポートされています。IPv6 ターゲットでは、IP ターゲットのみがサポートされています。
aws elbv2 create-target-group --name
my-targets
--protocol TCP --port 80 --vpc-id vpc-0598c7d356EXAMPLE
--ip-address-type[ipv4 or ipv6]
出力には、次の形式のターゲットグループの ARN が含まれます。
arn:aws:elasticloadbalancing:
us-east-2
:123456789012
:targetgroup/my-targets
/1234567890123456
-
インスタンスをターゲットグループに登録するには、register-targets コマンドを使用します。
aws elbv2 register-targets --target-group-arn
targetgroup-arn
--targets Id=i-1234567890abcdef0
Id=i-0abcdef1234567890
-
create-listener コマンドを使用して、ターゲットグループにリクエストを転送するデフォルトルールを持つロードバランサーのリスナーを作成します。デュアルスタックロードバランサーには TCP または TLS リスナーが必要です。
aws elbv2 create-listener --load-balancer-arn
loadbalancer-arn
--protocol TCP --port 80 \ --default-actions Type=forward,TargetGroupArn=targetgroup-arn
出力には、次の形式のリスナーの ARN が含まれます。
arn:aws:elasticloadbalancing:
us-east-2
:123456789012
:listener/net/my-load-balancer
/1234567890123456
/1234567890123456
-
(オプション) この describe-target-health コマンドを使用してターゲットグループの登録されたターゲットのヘルスステータスを確認できます。
aws elbv2 describe-target-health --target-group-arn
targetgroup-arn
ステップ 2: (オプション) Network Load Balancer のElastic IP アドレスを定義する
Network Load Balancer を作成するときは、サブネットマッピングを使用して、サブネットごとに 1 つの Elastic IP アドレスを指定できます。
aws elbv2 create-load-balancer --name
my-load-balancer
--type network \ --subnet-mappings SubnetId=subnet-0e3f5cac72EXAMPLE
,AllocationId=eipalloc-12345678
ステップ 3: (オプション) Network Load Balancer を削除する
ロードバランサーとターゲットグループが必要なくなった場合は、次のように削除することができます。
aws elbv2 delete-load-balancer --load-balancer-arn
loadbalancer-arn
aws elbv2 delete-target-group --target-group-arntargetgroup-arn