EC2 Instance Connect を使用して EC2 インスタンスへ接続しようとしたときの問題をトラブルシューティングするにはどうすればよいですか?

最終更新日: 2021 年 4 月 26 日

Amazon EC2 Instance Connect を使用して Amazon Elastic Compute Cloud (Amazon EC2) インスタンスに接続しようとすると、次のエラーが表示されます。

「インスタンス接続の設定中に問題が発生しました

ログインに失敗しました。このインスタンスが起動したばかりの場合は、1~2 分待ってからもう一度試してください。」

このエラーを解決する方法を教えてください。

簡単な説明

EC2 Instance Connect が期待どおりに機能しない一般的な理由を次に示します。

  • EC2 Instance Connect がご利用の OS ディストリビューションをサポートしていない。
  • EC2 Instance Connect パッケージがインスタンスにインストールされていない。
  • AWS Identity and Access Management (IAM) ポリシーまたはアクセス許可が見つからないか正しくない。
  • インスタンスに関連付けられたセキュリティグループに、EC2 Instance Connect サービスの IP がリストされていない。

ブラウザベースのクライアントを使用して接続するには、インスタンスにパブリック IPv4 アドレスが必要です。インスタンスにパブリック IP アドレスがない場合は、同じ VPC 内のマシンから EC2 Instance Connect コマンドラインインターフェイス (CLI) を使用して接続します。詳細については、EC2 Instance Connect を使用して接続制約事項のセクションをご参照ください。

注: Linux 用 EC2 シリアルコンソールを有効にしている場合は、それを使用して、サポートされている Nitro ベースのインスタンスタイプのトラブルシューティングを行うことができます。シリアルコンソールは、起動の問題、ネットワーク設定、および SSH 設定の問題のトラブルシューティングに役立ちます。シリアルコンソールは、正常に動作するネットワーク接続を必要とすることなく、インスタンスに接続します。Amazon EC2 コンソールまたは AWS コマンドラインインターフェイス (AWS CLI) を使用して、シリアルコンソールにアクセスできます。

シリアルコンソールを使用する前に、アカウントレベルでコンソールへのアクセスを許可し、IAM ユーザーにアクセス権を付与する IAM ポリシーを作成する必要があります。また、シリアルコンソールを使用するすべてのインスタンスには、パスワードベースのユーザーを 1 つ以上含める必要があります。インスタンスが到達不能で、シリアルコンソールへのアクセスを設定していない場合は、次の記事のリンクに記載されている、インスタンスへの手動接続の手順に従うことができます。

Linux 用 EC2 シリアルコンソールの設定の詳細については、EC2 シリアルコンソールへのアクセスを設定するをご参照ください。

注: AWS CLI コマンドの実行時にエラーが発生した場合は、AWS CLI の最新バージョンを使用していることを確認してください

解決方法

1.    EC2 Instance Connect がご使用のインスタンスの Linux ディストリビューションをサポートしていることを確認します。

2.    サポートされているインスタンスに EC2 Instance Connect パッケージがインストールされていることを確認します。

3.    EC2 Instance Connect を使用しようとしている IAM ユーザーに、パブリックキーをインスタンスにプッシュするアクセス許可があることを確認します。

4.    インスタンスのセキュリティグループルールに EC2 Instance Connect の IP がリストされていることを確認します。

ブラウザベースの SSH 接続

ブラウザベースの SSH 接続では、インスタンスのセキュリティグループインバウンドルールで、EC2 Instance Connect が TCP ポート 22 上の SSH へアクセスすることを許可する必要があります。

EC2 Instance Connect は、インスタンスへのブラウザベースの SSH 接続に特定の IP 範囲を使用します。これらの IP 範囲は、AWS リージョンによって異なります。特定のリージョンの EC2 インスタンス接続の AWS IP アドレス範囲を検索するには、次のコマンドを使用します。

注: 次のコマンドで、 us-east-1 をインスタンスの AWS リージョンに置き換えます。

Windows (AWS 用の Windows PowerShell が必要)

PS C:\> Get-AWSPublicIpAddressRange -Region us-east-1 -ServiceKey EC2_INSTANCE_CONNECT | select IpPrefix

Linux (curl と jq が必要)

$ curl -s https://ip-ranges.amazonaws.com/ip-ranges.json| jq -r '.prefixes[] | select(.region=="us-east-1") | select(.service=="EC2_INSTANCE_CONNECT") | .ip_prefix'

セキュリティグループのインバウンドルールを更新して、前述のコマンドにより返された IP 範囲からの TCP ポート 22 でのアクセスを許可します。

EC2 Instance Connect CLI による接続

セキュリティグループのインバウンドルールを更新して、IP からの TCP ポート 22 でのアクセスを許可します。