Application Load Balancer (ALB) を使用していると、HTTP 503 (サービス利用不可) エラーが発生します。このエラーの解決方法を教えてください。
簡単な説明
Application Load Balancer が 503 エラーを生成しているかどうかを確認するには、次のいずれかを実行します。
- CloudWatch メトリクスにアクセスし、HTTPCode_ELB_503_Count というラベルの付いたメトリクスを見つけます。
- この CURL コマンドを実行します。レスポンスに「503 Service Temporarily Unavailable (503 サービスは一時的に利用できません)」が含まれている場合、エラーは Application Load Balancer から発生しています。
必ず、MY_URL を Application Load Balancer へのアクセスに使用する URL に置き換えてください。
$ curl -IkL MY_URL
- Application Load Balancer のアクセスログを確認するログに elb_status_code = 503 があることを確認します。
これらの場所のいずれかに 503 エラーが表示された場合、エラーは Application Load Balancer によって生成されています。このエラーを解決方法するには、次のトラブルシューティング手順を使用してください。
解決方法
ターゲットグループにターゲットが登録されていることを確認する
EC2 コンソールを使用して検証する
- Amazon EC2 コンソールにアクセスします。
- ナビゲーションペインの [Load Balancing] (ロードバランシング) の下で、[Target Groups] (ターゲットグループ) を選択します。
- ターゲットグループの名前を選択して、その詳細ページを開きます。
- [Targets] (ターゲット) タブを選択します。
- ターゲットがリストされているかどうかを確認します。リストされていれば、登録されています。
AWS CLI を使用して確認する
注: AWS CLI コマンドの実行時にエラーが発生した場合は、AWS CLI の最新バージョンを使用していることを確認してください。
AWS CLI を使用してターゲットを確認するには、describe-target-health コマンドを使用します。
ターゲットを登録する
登録済みのターゲットが表示されない場合は、コンソールまたは AWS CLI を使用して登録します。
ターゲットグループが Auto Scaling グループに関連付けられていることを確認します (Auto Scaling を使用している場合)
ターゲットグループが Auto Scaling グループの一部である場合は、2 つが正しく関連付けられていることを確認します。そうでない場合は、グループをアタッチします。
次のように、EC2 コンソールを使用して確認します。
- Amazon EC2 コンソールを開きます。
- ナビゲーションペインの [] (Auto Scaling) で、[Auto Scaling Groups] (Auto Scaling グループ) を選択します。
- 検証する Auto Scaling グループを選択します。
- [Load balancing] (ロードバランシング) で、Application Load Balancer のターゲットグループが Auto Scaling グループに関連付けられていることを確認します。
AWS CLI を使用して確認する
describe-auto-scaling コマンドを実行します。MY-ASG をお客様の Auto Scaling グループの名前に置き換えます。AWS-REGION をお使いの特定の AWS リージョンに置き換えます。
$ aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name MY-ASG --region AWS-REGION
コマンド出力で、ターゲットグループがリストの TargetGroupARNs に記載されていることを確認します。
ターゲットグループをアタッチする
ターゲットグループが Auto Scaling グループにアタッチされていない場合は、コンソールまたは CLI を使用してグループを関連付けます。
ターゲットの正常性を確認する
ターゲットが登録されていることを確認したら、ターゲットが正常な状態であることを確認します。詳細については、「
Application Load Balancer をトラブルシューティングし、ヘルスチェックの失敗を修正するにはどうすればよいですか?」を参照してください。
関連情報
DeregisterTargets
AttachLoadBalancerTargetGroups