AWS CLI を使用した Application Load Balancer の開始方法
このチュートリアルでは、AWS CLI を通じて Application Load Balancer の実践的な概要を説明します。
開始する前に
-
次のコマンドを使用して、Application Load Balancer をサポートするバージョンの AWS CLI を実行していることを確認します。
aws elbv2 help
elbv2 が有効な選択肢ではないことを示すエラーメッセージが発生した場合は、AWS CLI を更新します。詳細については、AWS Command Line Interface ユーザーガイドの「AWS Command Line Interface のインストール」を参照してください。
-
Virtual Private Cloud (VPC) で EC2 インスタンスを起動します。これらのインスタンスのセキュリティグループがリスナーポートとヘルスチェックポートでアクセスを許可することを確認します。詳細については、「ターゲットセキュリティグループ」を参照してください。
-
IPv4 ロードバランサーとデュアルスタックロードバランサーのどちらを作成するかを決定します。クライアントが IPv4 アドレスだけを使用してロードバランサーと通信する場合、IPv4 を使用します。クライアントが IPv4 および IPv6 アドレスを使用してロードバランサーと通信する場合、デュアルスタックを使用します。また、IPv6 を使用して IPv6 アプリケーションやデュアルスタックサブネットなどのバックエンドターゲットと通信するために、デュアルスタックを使用することもできます。
-
必ず、Apache や Internet Information Services (IIS) などのウェブサーバーを各 EC2 インスタンスにインストールします。これらのインスタンスのセキュリティグループでは、ポート 80 の HTTP アクセスを許可していることを確認してください。
ロードバランサーを作成する
最初のロードバランサーを作成するには、次のステップを完了します。
ロードバランサーを作成するには
-
ロードバランサーを作成するには、create-load-balancer コマンドを使用します。同じアベイラビリティーゾーンにない 2 つのサブネットを指定する必要があります。
aws elbv2 create-load-balancer --name
my-load-balancer
\ --subnets subnet-0e3f5cac72EXAMPLE
subnet-081ec835f3EXAMPLE
--security-groups sg-07e8ffd50fEXAMPLE
dualstack
ロードバランサーを作成するには、create-load-balancer コマンドを使用します。aws elbv2 create-load-balancer --name
my-load-balancer
\ --subnets subnet-0e3f5cac72EXAMPLE
subnet-081ec835f3EXAMPLE
--security-groups sg-07e8ffd50fEXAMPLE
--ip-address-typedualstack
出力には、次の形式でロードバランサーの Amazon リソースネーム (ARN) が含まれます。
arn:aws:elasticloadbalancing:
us-east-2
:123456789012
:loadbalancer/app/my-load-balancer/1234567890123456
-
create-target-group コマンドを使用して、EC2 インスタンスに使用したのと同じ VPC を指定してターゲットグループを作成します。
IPv4 および IPv6 ターゲットグループを作成して、デュアルスタックロードバランサーに関連付けることができます。ターゲットグループの IP アドレスタイプによって、ロードバランサーがバックエンドターゲットと通信したり、バックエンドターゲットの状態をチェックしたりするのに使用する IP バージョンが決定されます。
aws elbv2 create-target-group --name
my-targets
--protocol HTTP --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-0abcdef1234567890
Id=i-1234567890abcdef0
-
ターゲットグループにリクエストを転送するデフォルトルールを持つロードバランサーのリスナーを作成するには、create-listener コマンドを使用します。
aws elbv2 create-listener --load-balancer-arn
loadbalancer-arn
\ --protocol HTTP --port 80 \ --default-actions Type=forward,TargetGroupArn=targetgroup-arn
出力には、次の形式のリスナーの ARN が含まれます。
arn:aws:elasticloadbalancing:
us-east-2
:123456789012
:listener/app/my-load-balancer
/1234567890123456
/1234567890123456
-
(オプション) この describe-target-health コマンドを使用してターゲットグループの登録されたターゲットのヘルスステータスを確認できます。
aws elbv2 describe-target-health --target-group-arn
targetgroup-arn
HTTPS リスナーの追加
HTTP リスナーを持つロードバランサーがある場合、次のように HTTPS リスナーを追加できます。
ロードバランサーに HTTPS リスナーを追加するには
-
次のいずれかの方法を使用して、ロードバランサーで使用する SSL 証明書を作成します。
-
AWS Certificate Manager(ACM) を使用して証明書を作成またはインポートします。詳細については、AWS Certificate Manager ユーザーガイド の 証明書のリクエスト または 証明書のインポート を参照してください。
-
AWS Identity and Access Management(IAM) を使用して証明書をアップロードします。 詳細については、IAM ユーザーガイド の Working with server certificates を参照してください。
-
-
ターゲットグループにリクエストを転送するデフォルトルールを持つリスナーを作成するには、create-listener コマンドを使用します。HTTPS リスナーを作成するときは、SSL 証明書を指定する必要があります。
--ssl-policy
オプションを使用してデフォルト以外の SSL ポリシーを指定できます。aws elbv2 create-listener --load-balancer-arn
loadbalancer-arn
\ --protocol HTTPS --port 443 \ --certificates CertificateArn=certificate-arn
\ --default-actions Type=forward,TargetGroupArn=targetgroup-arn
パスベースのルーティングの追加
1 つのターゲットグループにリクエストを転送するデフォルトルールを持つリスナーがある場合、URL に基づいて別のターゲットグループにリクエストを転送するルールを追加できます。たとえば、1 つのターゲットグループに全般的なリクエストをルーティングし、イメージを表示するリクエストを別のターゲットグループにルーティングできます。
パスパターンを持つリスナーにルールを追加するには
-
ターゲットグループを作成するには、create-target-group コマンドを使用します。
aws elbv2 create-target-group --name
my-targets
--protocol HTTP --port 80 \ --vpc-id vpc-0598c7d356EXAMPLE
-
インスタンスをターゲットグループに登録するには、register-targets コマンドを使用します。
aws elbv2 register-targets --target-group-arn
targetgroup-arn
\ --targets Id=i-0abcdef1234567890
Id=i-1234567890abcdef0
-
URL に指定されたパターンが含まれている場合に、ターゲットグループにリクエストを転送するルールをリスナーに追加するには、create-rule コマンドを使用します。
aws elbv2 create-rule --listener-arn
listener-arn
--priority10
\ --conditions Field=path-pattern,Values='/img/*
' \ --actions Type=forward,TargetGroupArn=targetgroup-arn
ロードバランサーの削除
ロードバランサーとターゲットグループが必要なくなった場合は、次のように削除することができます。
aws elbv2 delete-load-balancer --load-balancer-arn
loadbalancer-arn
aws elbv2 delete-target-group --target-group-arntargetgroup-arn