Elastic Load Balancing
Network Load Balancer

チュートリアル: AWS CLI を使用して Network Load Balancer を作成する

このチュートリアルでは、AWS CLI を通じた Network Load Balancer の実践入門を示します。

開始する前に

  • AWS CLI をインストールするか、Network Load Balancer をサポートしていないバージョンを使用している場合は AWS CLI を現行バージョンに更新します。詳細については、AWS Command Line Interface ユーザーガイドの「AWS コマンドラインインターフェイスのインストール」を参照してください。

  • EC2 インスタンスに使用するアベイラビリティーゾーンを決定します。これらの各アベイラビリティーゾーンに少なくとも 1 つのパブリックサブネットがある Virtual Private Cloud (VPC) を設定します。

  • 各アベイラビリティーゾーンで少なくとも 1 つの EC2 インスタンスを起動します。これらのインスタンスのセキュリティグループが、リスナーポート上のクライアントからの TCP アクセスと、VPC からのヘルスチェックリクエストを許可していることを確認します。詳細については、「ターゲットセキュリティグループ」を参照してください。

Load Balancer の作成

最初のロードバランサーを作成するには、次のステップを完了します。

ロードバランサーを作成するには

  1. create-load-balancer コマンドを使用してロードバランサーを作成し、インスタンスを起動した各アベイラビリティーゾーンのパブリックサブネットを指定します。アベイラビリティーゾーンごとに 1 つだけサブネットを指定できます。

    aws elbv2 create-load-balancer --name my-load-balancer --type network --subnets subnet-12345678

    出力には、次の形式でロードバランサーの Amazon リソースネーム (ARN) が含まれます。

    arn:aws:elasticloadbalancing:us-east-2:123456789012:loadbalancer/net/my-load-balancer/1234567890123456
  2. ターゲットグループを指定し、EC2 インスタンスに使用したのと同じ VPC を指定するには、create-target-group コマンドを使用します。

    aws elbv2 create-target-group --name my-targets --protocol TCP --port 80 --vpc-id vpc-12345678

    出力には、次の形式のターゲットグループの ARN が含まれます。

    arn:aws:elasticloadbalancing:us-east-2:123456789012:targetgroup/my-targets/1234567890123456
  3. インスタンスをターゲットグループに登録するには、register-targets コマンドを使用します。

    aws elbv2 register-targets --target-group-arn targetgroup-arn --targets Id=i-12345678 Id=i-23456789
  4. ターゲットグループにリクエストを転送するデフォルトルールを持つロードバランサーのリスナーを作成するには、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
  5. (オプション) この describe-target-health コマンドを使用してターゲットグループの登録されたターゲットのヘルスステータスを確認できます。

    aws elbv2 describe-target-health --target-group-arn targetgroup-arn

ロードバランサーの Elastic IP アドレスを指定します。

Network Load Balancer を作成するときは、サブネットマッピングを使用して、サブネットごとに 1 つの Elastic IP アドレスを指定できます。

aws elbv2 create-load-balancer --name my-load-balancer --type network \ --subnet-mappings SubnetId=subnet-12345678,AllocationId=eipalloc-12345678

ポートの上書きを使用したターゲットの追加

1 つのインスタンスに複数のサービスを持つマイクロサービスアーキテクチャがある場合、各サービスは異なるポートで接続を受け入れます。毎回別のポートで、インスタンスをターゲットグループに複数回登録できます。

ポートの上書きを使用してターゲットを追加するには

  1. ターゲットグループを作成するには、create-target-group コマンドを使用します。

    aws elbv2 create-target-group --name my-targets --protocol TCP --port 80 \ --vpc-id vpc-12345678
  2. インスタンスをターゲットグループに登録するには、register-targets コマンドを使用します。インスタンス ID はコンテナごとに同じですが、ポートは異なることに注意してください。

    aws elbv2 register-targets --target-group-arn targetgroup-arn \ --targets Id=i-12345678,Port=80 Id=i-12345678,Port=766
  3. ターゲットグループにリクエストを転送するデフォルトルールを持つロードバランサーのリスナーを作成するには、create-listener コマンドを使用します。

    aws elbv2 create-listener --load-balancer-arn loadbalancer-arn \ --protocol TCP --port 80 \ --default-actions Type=forward,TargetGroupArn=targetgroup-arn

ロードバランサーの削除

ロードバランサーとターゲットグループが必要なくなった場合は、次のように削除することができます。

aws elbv2 delete-load-balancer --load-balancer-arn loadbalancer-arn aws elbv2 delete-target-group --target-group-arn targetgroup-arn