EC2 Instance Connect を使用して接続 - Amazon Elastic Compute Cloud

EC2 Instance Connect を使用して接続

次の手順では、EC2 Instance Connect を使用して Linux インスタンスに接続する方法について説明します。

どの接続オプションを使用するかを決めます。使用する接続オプションは、インスタンスにパブリック IPv4 アドレスがあるかどうかによって異なります。

  • Amazon EC2 コンソール – Amazon EC2 コンソールを使用して接続するには、インスタンスにパブリック IPv4 アドレスが必要です。

  • SSH クライアント – インスタンスにパブリック IP アドレスがない場合は、SSH クライアントを使用して、プライベートネットワーク経由でインスタンスに接続できます。例えば、同じ VPC 内からの接続や、VPN 接続、Transit Gateway、AWS Direct Connect を介した接続などがあります。

EC2 Instance Connect は IPv6 アドレスを使用した接続をサポートしていません。

ヒント

EC2 Instance Connect は Linux インスタンスに接続するためのオプションの 1 つです。他のオプションについては、「Linux インスタンスへの接続」を参照してください。Windows インスタンスに接続するには、「 Windows インスタンスに接続する」を参照してください。

Amazon EC2 コンソールを使用した接続

コンソールからインスタンスを選択し、EC2 Instance Connect を使用した接続を選択することで、Amazon EC2 コンソールを使用してインスタンスに接続できます。Instance Connect はアクセス許可を処理し、正常な接続を提供します。

Amazon EC2 コンソールを使用して接続するには、インスタンスにパブリック IPv4 アドレスが必要です。接続する前に、すべての前提条件を確認してください。

Amazon EC2 コンソールからブラウザベースのクライアントを使用してインスタンスに接続するには
  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  2. ナビゲーションペインで、[インスタンス] を選択します。

  3. インスタンスを選択し、[接続] を選択します。

  4. [EC2 Instance Connect] タブを選択します。

  5. [接続タイプ] で、[EC2 Instance Connect を使用して接続] を選択します。

  6. [ユーザー名] でユーザー名を確認します。

  7. [接続] を選択してターミナルウィンドウを開きます。

独自のキーと SSH クライアントを使用して接続する

EC2 Instance Connect API の使用中に、独自の SSH キーを使用して、選択した SSH クライアントからインスタンスに接続できます。これにより、インスタンスにパブリックキーをプッシュする Instance Connect 機能を活用できます。この接続方法は、パブリック IP アドレスとプライベート IP アドレスを持つインスタンスに対して機能します。

要件
  • キーペアの要件

  • プライベート IP アドレスのみを持つインスタンスに接続する場合、SSH セッションを開始するローカルコンピュータには、EC2 Instance Connect サービスエンドポイントへの接続 (SSH パブリックキーをインスタンスにプッシュするため) と、SSH セッションを確立するためのインスタンスのプライベート IP アドレスへのネットワーク接続が必要です。EC2 Instance Connect のサービスエンドポイントには、インターネットまたは AWS Direct Connect パブリック仮想インターフェイス経由で到達が可能です。インスタンスのプライベート IP アドレスに接続するには、AWS Direct ConnectAWS Site-to-Site VPNVPC ピアリングなどのサービスを利用できます。

接続する前に、すべての前提条件を確認してください。

独自のキーと任意の SSH クライアントを使用してインスタンスに接続するには
  1. (オプション) 新しい SSH プライベートキーとパブリックキーを生成する

    新しい SSH プライベートキーとパブリックキー (my_key および my_key.pub) は、次のコマンドを使用して生成できます。

    ssh-keygen -t rsa -f my_key
  2. SSH パブリックキーをインスタンスにプッシュする

    send-ssh-public-key コマンドを使用して、SSH パブリックキーをインスタンスにプッシュします。AL2023 または Amazon Linux 2 を使用してインスタンスを起動した場合、AMI のデフォルトのユーザー名は ec2-user です。Ubuntu を使用してインスタンスを起動した場合、AMI のデフォルトのユーザー名は ubuntu です。

    以下に、ec2-user を認証するために、指定されたアベイラビリティーゾーンで指定されたインスタンスにパブリックキーをプッシュする例を示しています。

    aws ec2-instance-connect send-ssh-public-key \ --region us-west-2 \ --availability-zone us-west-2b \ --instance-id i-001234a4bf70dec41EXAMPLE \ --instance-os-user ec2-user \ --ssh-public-key file://my_key.pub
  3. プライベートキーを使用してインスタンスに接続する

    パブリックキーがインスタンスメタデータから削除される前に (削除されるまでの時間は 60 秒です)、プライベートキーを使用してインスタンスに接続するには、ssh コマンドを使用します。パブリックキーに対応するプライベートキー、インスタンスを起動するために使用した AMI のデフォルトのユーザー名、およびインスタンスのパブリック DNS 名を指定します (プライベートネットワーク経由で接続する場合は、プライベート DNS 名または IP アドレスを指定します)。IdentitiesOnly=yes オプションを追加し、ssh config 内のファイルと指定したキーのみが接続に使用されるようにします。

    ssh -o "IdentitiesOnly=yes" -i my_key ec2-user@ec2-198-51-100-1.compute-1.amazonaws.com

AWS CLI を使用して接続する

インスタンス ID がわかっている場合は、ec2-instance-connect AWS CLI コマンドを使用すると、SSH クライアントを使用してインスタンスに接続できます。接続タイプを指定しない場合は、EC2 Instance Connect が自動的にインスタンスのパブリック IPv4 アドレスへの接続を試みます。インスタンスにパブリック IPv4 アドレスがない場合、EC2 Instance Connect は EC2 Instance Connect Endpoint を介してインスタンスのプライベート IPv4 アドレスへの接続を試みます。インスタンスにプライベート IPv4 アドレスがない場合、または VPC に EC2 Instance Connect Endpoint がない場合、EC2 Instance Connect はインスタンスの IPv6 アドレスへの接続を試みます。

重要

この方法で接続する前に、使用する認証情報を含めて AWS CLI を設定していることと、AWS CLI の最新バージョンを使用していることを確認します。詳細については、「AWS Command Line Interface ユーザーガイド」の「AWS CLI の最新バージョンのインストールまたは更新」および「AWS CLI の設定」を参照してください。

接続タイプ
auto (デフォルト)

CLI は、次の順序でインスタンスの IP アドレスを使用し、対応する接続タイプを使用して接続を試みます。

  • パブリック IPv4: direct

  • プライベート IPv4: eice

  • IPv6: direct

direct

CLI は、次の順序でインスタンスの IP アドレスを使用して接続を試みます (EC2 Instance Connect Endpoint 経由では接続しません)。

  • パブリック IPv4

  • IPv6

  • プライベート IPv4

eice

CLI は常にインスタンスのプライベート IPv4 アドレスを使用します。

注記

将来的には、auto 接続タイプの動作を変更する可能性があります。希望する接続タイプを確実に使用するには、--connection-type を direct または eice のいずれかに明示的に設定することをお勧めします。

EC2 Instance Connect を使用してインスタンスに接続すると、EC2 Instance Connect API から SSH パブリックキーがインスタンスメタデータにプッシュされ、60 秒間保持されます。ユーザーにアタッチされた IAM ポリシーにより、ユーザーはパブリックキーをインスタンスメタデータにプッシュすることを許可されます。

インスタンス ID を使用してインスタンスに接続するには

インスタンス ID のみがわかっていて、インスタンスへの接続時に使用する接続タイプを EC2 Instance Connect に決定させる場合は、ec2-instance-connect CLI を使用して ssh パラメータとインスタンス ID を指定します。

aws ec2-instance-connect ssh --instance-id i-1234567890example
ヒント

このコマンドの使用時にエラーが発生した場合は、AWS CLI バージョン 2 を使用していることを確認してください。ssh パラメータは、AWS CLI バージョン 2 でのみ使用できます。詳細については、「AWS Command Line Interface ユーザーガイド」の「AWS CLI バージョン 2 について」を参照してください。

インスタンス ID と EC2 Instance Connect Endpoint を使用してインスタンスに接続するには

EC2 Instance Connect Endpoint を介してインスタンスに接続する場合は、前述のコマンドを使用し、--connection-type パラメータと eice 値も指定します。

aws ec2-instance-connect ssh --instance-id i-1234567890example --connection-type eice
インスタンス ID と独自のプライベートキーファイルを使用してインスタンスに接続するには

独自のプライベートキーを使用して EC2 Instance Connect Endpoint 経由でインスタンスに接続する場合は、インスタンス ID とプライベートキーファイルへのパスを指定します。パスに file://を含めないでください。次のようなパスは失敗します: file:///path/to/key

aws ec2-instance-connect ssh --instance-id i-1234567890example --private-key-file /path/to/key.pem

トラブルシューティング

インスタンスへの接続を試みた際にエラーが発生した場合は、以下を参照してください。