メニュー
AWS Elastic Beanstalk
開発者ガイド (API Version 2010-12-01)

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

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

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