EB CLI に関する問題のトラブルシューティング - AWS Elastic Beanstalk

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

EB CLI に関する問題のトラブルシューティング

このトピックでは、EB CLI の使用時に表示される一般的なエラーメッセージと考えられる解決策を示しています。ここに示していないエラーメッセージが表示される場合は、[フィードバック] リンクを使用してお知らせください。

ERROR: An error occurred while handling git command.Error code: 128 Error: fatal: Not a valid object name HEAD

原因: Git リポジトリを初期化したが、まだコミットしていない場合にこのエラーメッセージが表示されます。プロジェクトフォルダーに Git リポジトリが含まれていると、EB CLI は HEAD リビジョンを検索します。

解決策: ステージングエリアにプロジェクトフォルダ内のファイルを追加してコミットします。

~/my-app$ git add . ~/my-app$ git commit -m "First commit"

ERROR: This branch does not have a default environment.You must either specify an environment by typing "eb status my-env-name" or set a default environment by typing "eb use my-env-name".

原因: Git で新しいブランチを作成すると、デフォルトでは Elastic Beanstalk 環境にアタッチされません。

解決策: eb list を実行して、利用可能な環境のリストを表示します。その後、eb use env-name を実行して、利用可能な環境のいずれかを使用します。

ERROR: 2.0+ Platforms require a service role.You can provide one with --service-role option

原因: eb create で環境名 (eb create my-env など) を指定した場合、EB CLI はサービスロールの自動作成を試みません。デフォルトのサービスロールがない場合、上記のエラーが表示されます。

解決策: 環境名を指定しないで eb create を実行し、プロンプトに従ってデフォルトのサービスロールを作成します。

デプロイのトラブルシューティング

Elastic Beanstalk のデプロイが予定どおりにスムーズに完了しなかった場合、ウェブサイトが表示される代わりに、404 (アプリケーションの起動に失敗した場合) または 500 (アプリケーションの実行中に障害が発生した場合) の応答が表示されることがあります。多くの一般的な問題のトラブルシューティングを行うには、EB CLI を使用してデプロイのステータスを確認する、ログを表示する、SSH を使用して EC2 インスタンスにアクセスする、アプリケーション環境の AWS マネジメントコンソールのページを開くのいずれかの方法を使用できます。

EB CLI を使用してデプロイのトラブルシューティングを行うには
  1. eb status を実行して、現在のデプロイのステータスおよび EC2 ホストの状態を確認します。例:

    $ eb status --verbose Environment details for: python_eb_app Application name: python_eb_app Region: us-west-2 Deployed Version: app-150206_035343 Environment ID: e-wa8u6rrmqy Platform: 64bit Amazon Linux 2014.09 v1.1.0 running Python 2.7 Tier: WebServer-Standard- CNAME: python_eb_app.elasticbeanstalk.com Updated: 2015-02-06 12:00:08.557000+00:00 Status: Ready Health: Green Running instances: 1 i-8000528c: InService
    注記

    --verbose スイッチを使用すると、実行中のインスタンスのステータスに関する情報が表示されます。このスイッチを指定しない場合、eb status では、環境に関する全般的な情報のみが表示されます。

  2. 環境のヘルス情報を表示するには、eb health を実行します。

    $ eb health --refresh elasticBeanstalkExa-env Degraded 2016-03-28 23:13:20 WebServer Ruby 2.1 (Puma) total ok warning degraded severe info pending unknown 5 2 0 2 1 0 0 0 instance-id status cause Overall Degraded Incorrect application version found on 3 out of 5 instances. Expected version "Sample Application" (deployment 1). i-d581497d Degraded Incorrect application version "v2" (deployment 2). Expected version "Sample Application" (deployment 1). i-d481497c Degraded Incorrect application version "v2" (deployment 2). Expected version "Sample Application" (deployment 1). i-136e00c0 Severe Instance ELB health has not been available for 5 minutes. i-126e00c1 Ok i-8b2cf575 Ok instance-id r/sec %2xx %3xx %4xx %5xx p99 p90 p75 p50 p10 Overall 646.7 100.0 0.0 0.0 0.0 0.003 0.002 0.001 0.001 0.000 i-dac3f859 167.5 1675 0 0 0 0.003 0.002 0.001 0.001 0.000 i-05013a81 161.2 1612 0 0 0 0.003 0.002 0.001 0.001 0.000 i-04013a80 0.0 - - - - - - - - - i-3ab524a1 155.9 1559 0 0 0 0.003 0.002 0.001 0.001 0.000 i-bf300d3c 162.1 1621 0 0 0 0.003 0.002 0.001 0.001 0.000 instance-id type az running load 1 load 5 user% nice% system% idle% iowait% i-d581497d t2.micro 1a 25 mins 0.16 0.1 7.0 0.0 1.7 91.0 0.1 i-d481497c t2.micro 1a 25 mins 0.14 0.1 7.2 0.0 1.6 91.1 0.0 i-136e00c0 t2.micro 1b 25 mins 0.0 0.01 0.0 0.0 0.0 99.9 0.1 i-126e00c1 t2.micro 1b 25 mins 0.03 0.08 6.9 0.0 2.1 90.7 0.1 i-8b2cf575 t2.micro 1c 1 hour 0.05 0.41 6.9 0.0 2.0 90.9 0.0 instance-id status id version ago deployments i-d581497d Deployed 2 v2 9 mins i-d481497c Deployed 2 v2 7 mins i-136e00c0 Failed 2 v2 5 mins i-126e00c1 Deployed 1 Sample Application 25 mins i-8b2cf575 Deployed 1 Sample Application 1 hour

    上記の例は、5 つあるインスタンスのうち、3 番目のインスタンスでバージョン「v2」のデプロイに失敗した環境を示しています。デプロイの失敗後、想定されたバージョンは正常にデプロイされた最後のバージョン(この例では、最初のデプロイの「サンプルアプリケーション」)にリセットされます。詳細については、「EB CLI を使用した環境ヘルスのモニタリング」を参照してください。

  3. eb logs を実行して、アプリケーションのデプロイに関連付けられたログをダウンロードして表示します。

    $ eb logs
  4. eb ssh を実行して、アプリケーションを実行している EC2 インスタンスに接続し、直接調査します。インスタンスでは、デプロイされたアプリケーションは /opt/python/current/app ディレクトリに、Python 環境は /opt/python/run/venv/ にあります。

  5. eb console を実行して、AWS マネジメントコンソールでアプリケーション環境を表示します。ウェブインターフェイスを使用して、アプリケーションの設定、ステータス、イベント、ログなど、デプロイのさまざまな側面を簡単に調査できます。また、サーバーにデプロイした現在または過去のアプリケーションバージョンをダウンロードすることもできます。