カテゴリ - AWS Elastic Beanstalk

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

カテゴリ

このトピックでは、より具体的なトラブルシューティングのヒントをカテゴリ別に紹介します。

接続

問題: Elastic Beanstalk コンソールで作成されたサーバーが Toolkit for Eclipse に表示されない

既存の環境を Eclipse にインポートする に従って、サーバーを手動でインポートします。

問題: Elastic Beanstalk から Amazon RDS に接続できません。

分離された Amazon RDS を Elastic Beanstalk アプリケーションに接続するには、以下の作業を実行します。

  • RDS が Elastic Beanstalk アプリケーションと同じリージョンにあることを確認します。

  • 該当するインスタンスの RDS セキュリティグループが、Elastic Beanstalk 環境用に使用している Amazon EC2 セキュリティグループの権限を持っていることを確認します。AWS マネジメントコンソールを使用した EC2 セキュリティグループ名の検索手順については、「セキュリティグループ」を参照してください。EC2 セキュリティグループの詳しい設定方法については、Amazon Relational Database Service ユーザーガイドの「DB セキュリティグループの操作」にある「Amazon EC2 セキュリティグループへのネットワークアクセスの許可」セクションをご覧ください。

  • Java の場合は、MySQL JAR ファイルが WEB-INF/lib にあることを確認してください。詳細については、「Java アプリケーション環境に Amazon RDS DB インスタンスを追加する」を参照してください。

環境の作成とインスタンスの起動

イベント: 環境を起動できませんでした

このイベントは、Elastic Beanstalk が環境を起動しようとし、その途中でエラーが起こったときに発生します。[イベント] ページの以前のイベントが、この問題の根本的な原因について警告します。

イベント: 環境の作成オペレーションは完了しましたが、コマンドがタイムアウトしました。タイムアウト期間を長くしてみてください。

インスタンス上でコマンドを実行する、大きなファイルをダウンロードする、あるいはパッケージをインストールするために設定ファイルを使用すると、アプリケーションのデプロイに時間がかかる場合があります。コマンドタイムアウトを増やして、デプロイ中にアプリケーションが実行開始できる時間を多くしてください。

イベント: 以下のリソースで [AWSEBInstanceLaunchWaitCondition] を作成できませんでした

このメッセージは、環境の Amazon EC2 インスタンスが、正常に起動した Elastic Beanstalk と通信しなかったことを示します。これは、インスタンスにインターネットの接続がない場合に発生します。プライベート VPC サブネットでインスタンスを起動するように環境を設定した場合は、インスタンスに対して Elastic Beanstalk への接続を許可する NAT がサブネットにあることを確認します。

イベント: このリージョンではサービスロールが必要です。環境にサービスロールオプションを追加してください。

Elastic Beanstalk はサービスロールを使用して環境のリソースをモニタリングし、マネージド型プラットフォーム更新をサポートします。詳細については、「Elastic Beanstalk サービスロールの管理」を参照してください。

デプロイ

問題: デプロイ中にアプリケーションが使用不可になります

Elastic Beanstalk はドロップインアップグレードプロセスを使用するため、数秒間のダウンタイムが生じることがあります。ローリングデプロイを使用して、運用環境におけるデプロイの影響を最小化します。

イベント: AWS Elastic Beanstalk アプリケーションのバージョンを作成できませんでした

アプリケーションソースバンドルが大きすぎるか、アプリケーションバージョンクォータに達した可能性があります。

イベント: 環境更新オペレーションは完了しましたが、コマンドがタイムアウトしました。タイムアウト期間を長くしてみてください。

インスタンス上でコマンドを実行する、大きなファイルをダウンロードする、あるいはパッケージをインストールするために設定ファイルを使用すると、アプリケーションのデプロイに時間がかかる場合があります。コマンドタイムアウトを増やして、デプロイ中にアプリケーションが実行開始できる時間を多くしてください。

健康

イベント: CPU 使用率が 95.00% を超える

実行するインスタンスを増やすか、別のインスタンスタイプを選択してください。

イベント: Elastic Load Balancer awseb-myapp に正常なインスタンスがない

アプリケーションが機能しているようであれば、アプリケーションのヘルスチェック URL が正しく設定されていることを確認します。そうでなければ、[Health] 画面および環境ログで詳細を確認します。

イベント: Elastic Load Balancer awseb-myapp が見つかりません

環境のロードバランサーが帯域外に削除された可能性があります。環境のリソースに対する変更は、Elastic Beanstalk によって提供される設定オプションおよび拡張可能性のみにしてください。環境を再構築するか、新しいインスタンスを起動してください。

イベント: EC2 インスタンス起動エラー。新しい EC2 インスタンスの起動の待機中...

環境のインスタンスタイプの可用性が低いか、アカウントのインスタンスクォータに達した可能性があります。サービスヘルスダッシュボードを調べ、Elastic Compute Cloud (Amazon EC2) サービスが緑色になっていることを確認してください。なっていない場合はクォータの引き上げをリクエストしてください。

構成

イベント: Elastic Load Balancing Target オプションおよび Application Healthcheck URL オプションの値を使用して、Elastic Beanstalk 環境を設定することはできません。

Target 名前空間の aws:elb:healthcheck オプションは廃止されました。Target オプション名前空間を環境から削除してもう一度更新してください。

イベント: ELB を同じ AZ 内の複数のサブネットに接続することはできません。

このメッセージは、同じアベイラビリティーゾーン内のサブネット間でロードバランサーを移動しようとすると表示される場合があります。ロードバランサーのサブネットを変更するには、元のアベイラビリティーゾーンの外に移動してから、必要なサブネットを用意した元のアベイラビリティーゾーンに戻す必要があります。この処理中は、すべてのインスタンスは AZ 間で移行されるため、長時間のダウンタイムが発生します。代わりに、新しい環境を作成して CNAME のスワップを実行することを検討してください。

Docker コンテナのトラブルシューティング

イベント: Docker イメージを取得できませんでした :latest: 無効なリポジトリ名です ()。[a-z0-9-_.] のみが許可されています。詳細については、ログを追跡します。

JSON 検証ツールを使用して dockerrun.aws.json ファイルの構文をチェックします。また、「Docker の設定」で説明されている要件を参照して dockerfile の内容を確認します。

イベント: Dockerfile に EXPOSE ディレクティブが見つかりません。デプロイを中止します

Dockerfile または dockerrun.aws.json ファイルでコンテナポートが宣言されていません。EXPOSE インストラクション (Dockerfile) または Ports ブロック (dockerrun.aws.json ファイル) を使用して、受信トラフィックに対してポートを開きます。

イベント: バケット名から認証資格情報リポジトリをダウンロードできませんでした

dockerrun.aws.json ファイルは .dockercfg ファイルに無効な EC2 キーペアや S3 バケットを指定します。または、インスタンスプロファイルに S3 バケットの GetObject の権限がありません。.dockercfg ファイルに有効な S3 バケットと EC2 キーペアが含まれていることを確認します。インスタンスプロファイル内の IAM ロールに s3:GetObject 操作を許可します。詳細については、Elastic Beanstalk インスタンスプロファイルの管理 を参照してください

イベント: 以下の理由により、アクティビティの実行に失敗しました。警告: 認証設定ファイルが無効です

認証ファイル(config.json)が正しくフォーマットされていません。「プライベートリポジトリからのイメージの使用」を参照してください

よくある質問

質問:アプリケーション URL を、myapp.us-west-2.elasticbeanstalk.com から www.myapp.com に変更したい。

DNS サーバーで、www.mydomain.com CNAME mydomain.elasticbeanstalk.com などの CNAME レコードを登録します。

質問: Elastic Beanstalk アプリケーションに特定のアベイラビリティーゾーンを指定できない。

API、CLI、Eclipse プラグイン、または Visual Studio プラグインを使用すると、特定のアベイラビリティーゾーンを指定できます。Elastic Beanstalk コンソールを使用してアベイラビリティーゾーンを指定する方法については、「Elastic Beanstalk 環境用の Auto Scaling グループ」を参照してください。

質問: 環境のインスタンスタイプを変更したい

環境のインスタンスタイプを変更するには、[環境設定] ページに移動し、[インスタンス] 設定カテゴリにある [編集] をクリックします。新しいインスタンスタイプを選択し、[適用] をクリックして環境を更新します。その後、実行中のすべてのインスタンスが Elastic Beanstalk により終了され、新しいインスタンスに置き換えられます。

質問: いずれかのユーザーが環境設定を変更したかどうかを知るにはどうすればよいですか?

この情報を表示するには、Elastic Beanstalk コンソールのナビゲーションペインで [変更履歴] をクリックして、すべての環境の設定変更のリストを表示します。このリストから、変更の日時、設定されたパラメータと変更後の値、その変更を行った IAM ユーザーが確認できます。詳細については、「変更履歴」を参照してください。

質問: インスタンスの終了時に Amazon EBS ボリュームが削除されないようにしたい。

環境内のインスタンスは Amazon EBS を使用して保管されますが、Auto Scaling によってインスタンスが終了されると、ルートボリュームが削除されます。ご自身のインスタンス上に、状態やその他のデータを保存することは推奨されません。必要に応じて、AWS CLI でボリュームの削除を防ぐことができます:$ aws ec2 modify-instance-attribute -b '/dev/sdc=<vol-id>:false これについては、AWS CLI リファレンスで説明されています。

質問: Elastic Beanstalk アプリケーションから個人情報を削除したい。

Elastic Beanstalk アプリケーションで使用される AWS リソースには、個人情報が保存される場合があります。環境を終了すると、Elastic Beanstalk で作成されたリソースが終了されます。設定ファイルを使用して、追加したリソースも終了します。ただし Elastic Beanstalk の環境外で作成した AWS リソースを、個人情報を取り扱う可能性のあるアプリケーションに関連付けている場合は、その情報がそのまま保存され続けないよう、手動でのチェックが必要になります。このデベロッパーガイドを通して追加リソースの作成について取り扱う際は、それらの削除を検討する必要がある場合についても必ず言及しています。