EC2 インスタンスでの EC2 Instance Connect のインストール - Amazon Elastic Compute Cloud

EC2 インスタンスでの EC2 Instance Connect のインストール

EC2 Instance Connect を使用して Linux インスタンスに接続するには、EC2 Instance Connect がインストールされている必要があります。EC2 Instance Connect をインストールすると、インスタンスに SSH デーモンが設定されます。

EC2 Instance Connect パッケージの詳細については、GitHub ウェブサイトのaws/aws-ec2-instance-connect-configを参照してください。

注記

SSH 認証の AuthorizedKeysCommand および AuthorizedKeysCommandUser 設定を構成した場合、EC2 Instance Connect をインストールしても更新されません。そのため、EC2 Instance Connect は使用できません。

インストール条件

EC2 Instance Connect をインストールする前に、以下の前提条件を満たしていることを確認してください。

  • インスタンスが以下のいずれかを使用していることを確認します。

    • バージョン 2.0.20190618 より前の Amazon Linux 2

    • AL2023 最小 AMI または Amazon ECS 最適化 AMI

    • CentOS Stream 8 および 9

    • 14.2.1 より前の macOS Sonoma、13.6.3 より前の Ventura、12.7.2 より前の Monterey

    • Red Hat Enterprise Linux (RHEL) 8 および 9

    • Ubuntu 16.04 および 18.04

    ヒント

    インスタンスが Amazon Linux、macOS Sonoma、macOS Ventura、macOS Monterey、または Ubuntu の新しいバージョンを使用して起動されている場合は、EC2 Instance Connect がプリインストールされているため、自分でインストールする必要はありません。

  • EC2 Instance Connect の一般的な前提条件を確認します。

    詳細については、「EC2 Instance Connect の前提条件」を参照してください。

  • ローカルマシン上の SSH クライアントを使用してインスタンスに接続するための前提条件を確認します。

    詳細については、「SSH を使用した Linux インスタンスへの接続」を参照してください。

  • インスタンスの ID を取得します。

    自分のインスタンスの ID は、Amazon EC2 コンソールを使用して ([インスタンス ID] 列から) 取得できます。その代わりに、describe-instances (AWS CLI) または Get-EC2Instance (AWS Tools for Windows PowerShell) コマンドを使用することもできます。

EC2 Instance Connect を手動でインストールする

注記

以下のいずれかの AMI を使用してインスタンスを起動した場合は、EC2 Instance Connect がプリインストールされているため、このステップをスキップできます。

  • AL2023 標準 AMI

  • Amazon Linux 2 2.0.20190618 以降

  • macOS Sonoma 14.2.1 以降

  • macOS Ventura 13.6.3 以降

  • macOS Monterey 12.7.2 以降

  • Ubuntu 20.04 以降

インスタンスのオペレーティングシステムに応じて、以下のいずれかの手順を使用して EC2 Instance Connect をインストールします。

Amazon Linux 2
EC2 Instance Connect を Amazon Linux 2 で起動したインスタンスにインストールするには
  1. SSH を使用してインスタンスに接続します。

    次のコマンド内のサンプル値を独自の値に置き換えます。インスタンスの起動時にインスタンスに割り当てた SSH キーペアと、インスタンスを起動するために使用した AMI のデフォルトのユーザー名を使用します。Amazon Linux 2 の場合、デフォルトのユーザー名は ec2-user です。

    $ ssh -i my_ec2_private_key.pem ec2-user@ec2-a-b-c-d.us-west-2.compute.amazonaws.com

    インスタンスへの接続の詳細については、SSH クライアントを使用して Linux インスタンスに接続するを参照してください。

  2. インスタンスに EC2 Instance Connect パッケージをインストールします。

    [ec2-user ~]$ sudo yum install ec2-instance-connect

    3 つの新しいスクリプトが /opt/aws/bin/ フォルダに表示されます。

    eic_curl_authorized_keys eic_parse_authorized_keys eic_run_authorized_keys
  3. (オプション) EC2 Instance Connect がインスタンスに正常にインストールされたことを確認します。

    [ec2-user ~]$ sudo less /etc/ssh/sshd_config

    AuthorizedKeysCommand 行と AuthorizedKeysCommandUser 行に以下の値が含まれていれば、EC2 Instance Connect は正常にインストールされています。

    AuthorizedKeysCommand /opt/aws/bin/eic_run_authorized_keys %u %f AuthorizedKeysCommandUser ec2-instance-connect
    • AuthorizedKeysCommand は、インスタンスメタデータからキーを探すように eic_run_authorized_keys スクリプトを設定します。

    • AuthorizedKeysCommandUser は、システムユーザーを ec2-instance-connect として設定します。

    注記

    AuthorizedKeysCommandAuthorizedKeysCommandUser を設定済みである場合は、EC2 Instance Connect をインストールしても値は変更されないため、EC2 Instance Connect は使用できません。

CentOS
EC2 Instance Connect を CentOS で起動したインスタンスにインストールするには
  1. SSH を使用してインスタンスに接続します。

    次のコマンド内のサンプル値を独自の値に置き換えます。インスタンスの起動時にインスタンスに割り当てた SSH キーペアと、インスタンスを起動するために使用した AMI のデフォルトのユーザー名を使用します。CentOS の場合、デフォルトのユーザー名は centos または ec2-user です。

    $ ssh -i my_ec2_private_key.pem centos@ec2-a-b-c-d.us-west-2.compute.amazonaws.com

    インスタンスへの接続の詳細については、SSH クライアントを使用して Linux インスタンスに接続するを参照してください。

  2. HTTP または HTTPS プロキシを使用する場合は、現在のシェルセッションで http_proxy または https_proxy の環境変数を設定する必要があります。

    プロキシを使用していない場合は、この手順を省略できます。

    • HTTP プロキシサーバーの場合は、次のコマンドを実行します。

      $ export http_proxy=http://hostname:port $ export https_proxy=http://hostname:port
    • HTTPS プロキシサーバーの場合は、次のコマンドを実行します。

      $ export http_proxy=https://hostname:port $ export https_proxy=https://hostname:port
  3. 次のコマンドを実行して、インスタンスに EC2 Instance Connect パッケージをインストールします。

    CentOS 用の EC2 Instance Connect 設定ファイルは Red Hat Package Manager (RPM) パッケージで提供され、CentOS 8 と CentOS 9 用の異なる RPM パッケージ、および Intel/AMD (x86_64) または ARM (AArch64) で実行されるインスタンスタイプ用の異なる RPM パッケージが含まれています。

    オペレーティングシステムと CPU アーキテクチャに合ったコマンドブロックを使用してください。

    • CentOS 8

      Intel/AMD (x86_64)

      [ec2-user ~]$ mkdir /tmp/ec2-instance-connect [ec2-user ~]$ curl https://amazon-ec2-instance-connect-us-west-2.s3.us-west-2.amazonaws.com/latest/linux_amd64/ec2-instance-connect.rhel8.rpm -o /tmp/ec2-instance-connect/ec2-instance-connect.rpm [ec2-user ~]$ curl https://amazon-ec2-instance-connect-us-west-2.s3.us-west-2.amazonaws.com/latest/linux_amd64/ec2-instance-connect-selinux.noarch.rpm -o /tmp/ec2-instance-connect/ec2-instance-connect-selinux.rpm [ec2-user ~]$ sudo yum install -y /tmp/ec2-instance-connect/ec2-instance-connect.rpm /tmp/ec2-instance-connect/ec2-instance-connect-selinux.rpm

      ARM (AArch64)

      [ec2-user ~]$ mkdir /tmp/ec2-instance-connect [ec2-user ~]$ curl https://amazon-ec2-instance-connect-us-west-2.s3.us-west-2.amazonaws.com/latest/linux_arm64/ec2-instance-connect.rhel8.rpm -o /tmp/ec2-instance-connect/ec2-instance-connect.rpm [ec2-user ~]$ curl https://amazon-ec2-instance-connect-us-west-2.s3.us-west-2.amazonaws.com/latest/linux_amd64/ec2-instance-connect-selinux.noarch.rpm -o /tmp/ec2-instance-connect/ec2-instance-connect-selinux.rpm [ec2-user ~]$ sudo yum install -y /tmp/ec2-instance-connect/ec2-instance-connect.rpm /tmp/ec2-instance-connect/ec2-instance-connect-selinux.rpm
    • CentOS 9

      Intel/AMD (x86_64)

      [ec2-user ~]$ mkdir /tmp/ec2-instance-connect [ec2-user ~]$ curl https://amazon-ec2-instance-connect-us-west-2.s3.us-west-2.amazonaws.com/latest/linux_amd64/ec2-instance-connect.rpm -o /tmp/ec2-instance-connect/ec2-instance-connect.rpm [ec2-user ~]$ curl https://amazon-ec2-instance-connect-us-west-2.s3.us-west-2.amazonaws.com/latest/linux_amd64/ec2-instance-connect-selinux.noarch.rpm -o /tmp/ec2-instance-connect/ec2-instance-connect-selinux.rpm [ec2-user ~]$ sudo yum install -y /tmp/ec2-instance-connect/ec2-instance-connect.rpm /tmp/ec2-instance-connect/ec2-instance-connect-selinux.rpm

      ARM (AArch64)

      [ec2-user ~]$ mkdir /tmp/ec2-instance-connect [ec2-user ~]$ curl https://amazon-ec2-instance-connect-us-west-2.s3.us-west-2.amazonaws.com/latest/linux_arm64/ec2-instance-connect.rpm -o /tmp/ec2-instance-connect/ec2-instance-connect.rpm [ec2-user ~]$ curl https://amazon-ec2-instance-connect-us-west-2.s3.us-west-2.amazonaws.com/latest/linux_amd64/ec2-instance-connect-selinux.noarch.rpm -o /tmp/ec2-instance-connect/ec2-instance-connect-selinux.rpm [ec2-user ~]$ sudo yum install -y /tmp/ec2-instance-connect/ec2-instance-connect.rpm /tmp/ec2-instance-connect/ec2-instance-connect-selinux.rpm

    次の新しいスクリプトが /opt/aws/bin/ フォルダに表示されます。

    eic_run_authorized_keys
  4. (オプション) EC2 Instance Connect がインスタンスに正常にインストールされたことを確認します。

    • CentOS 8 の場合:

      [ec2-user ~]$ sudo less /lib/systemd/system/ssh.service.d/ec2-instance-connect.conf
    • CentOS 9 の場合:

      [ec2-user ~]$ sudo less /etc/ssh/sshd_config.d/60-ec2-instance-connect.conf

    AuthorizedKeysCommand 行と AuthorizedKeysCommandUser 行に以下の値が含まれていれば、EC2 Instance Connect は正常にインストールされています。

    AuthorizedKeysCommand /opt/aws/bin/eic_run_authorized_keys %u %f AuthorizedKeysCommandUser ec2-instance-connect
    • AuthorizedKeysCommand は、インスタンスメタデータからキーを探すように eic_run_authorized_keys スクリプトを設定します。

    • AuthorizedKeysCommandUser は、システムユーザーを ec2-instance-connect として設定します。

    注記

    AuthorizedKeysCommandAuthorizedKeysCommandUser を設定済みである場合は、EC2 Instance Connect をインストールしても値は変更されないため、EC2 Instance Connect は使用できません。

macOS
EC2 Instance Connect を macOS で起動したインスタンスにインストールするには
  1. SSH を使用してインスタンスに接続します。

    次のコマンド内のサンプル値を独自の値に置き換えます。インスタンスの起動時にインスタンスに割り当てた SSH キーペアと、インスタンスを起動するために使用した AMI のデフォルトのユーザー名を使用します。macOS インスタンスの場合、デフォルトのユーザー名は ec2-user です。

    $ ssh -i my_ec2_private_key.pem ec2-user@ec2-a-b-c-d.us-west-2.compute.amazonaws.com

    インスタンスへの接続の詳細については、SSH クライアントを使用して Linux インスタンスに接続するを参照してください。

  2. 次のコマンドを使用して Homwbrew を更新します。このアップデートでは、Homebrew が認識しているソフトウェアが一覧表示されます。EC2 Instance Connect パッケージは、macOS インスタンスでは Homebrew 経由で提供されます。詳細については、Mac インスタンス上のオペレーティングシステムとソフトウェアの更新 をご参照ください。

    [ec2-user ~]$ brew update
  3. インスタンスに EC2 Instance Connect パッケージをインストールします。これによりソフトウェアがインストールされ、sshd がそれを使用するように設定されます。

    [ec2-user ~]$ brew install ec2-instance-connect

    次の新しいスクリプトが /opt/aws/bin/ フォルダに表示されます。

    eic_run_authorized_keys
  4. (オプション) EC2 Instance Connect がインスタンスに正常にインストールされたことを確認します。

    [ec2-user ~]$ sudo less /etc/ssh/sshd_config.d/60-ec2-instance-connect.conf

    AuthorizedKeysCommand 行と AuthorizedKeysCommandUser 行に以下の値が含まれていれば、EC2 Instance Connect は正常にインストールされています。

    AuthorizedKeysCommand /opt/aws/bin/eic_run_authorized_keys %u %f AuthorizedKeysCommandUser ec2-instance-connect
    • AuthorizedKeysCommand は、インスタンスメタデータからキーを探すように eic_run_authorized_keys スクリプトを設定します。

    • AuthorizedKeysCommandUser は、システムユーザーを ec2-instance-connect として設定します。

    注記

    AuthorizedKeysCommandAuthorizedKeysCommandUser を設定済みである場合は、EC2 Instance Connect をインストールしても値は変更されないため、EC2 Instance Connect は使用できません。

RHEL
EC2 Instance Connect を Red Hat Enterprise Linux (RHEL) で起動したインスタンスにインストールするには
  1. SSH を使用してインスタンスに接続します。

    次のコマンド内のサンプル値を独自の値に置き換えます。インスタンスの起動時にインスタンスに割り当てた SSH キーペアと、インスタンスを起動するために使用した AMI のデフォルトのユーザー名を使用します。RHEL の場合、デフォルトのユーザー名は ec2-user または root です。

    $ ssh -i my_ec2_private_key.pem ec2-user@ec2-a-b-c-d.us-west-2.compute.amazonaws.com

    インスタンスへの接続の詳細については、SSH クライアントを使用して Linux インスタンスに接続するを参照してください。

  2. HTTP または HTTPS プロキシを使用する場合は、現在のシェルセッションで http_proxy または https_proxy の環境変数を設定する必要があります。

    プロキシを使用していない場合は、この手順を省略できます。

    • HTTP プロキシサーバーの場合は、次のコマンドを実行します。

      $ export http_proxy=http://hostname:port $ export https_proxy=http://hostname:port
    • HTTPS プロキシサーバーの場合は、次のコマンドを実行します。

      $ export http_proxy=https://hostname:port $ export https_proxy=https://hostname:port
  3. 次のコマンドを実行して、インスタンスに EC2 Instance Connect パッケージをインストールします。

    RHEL 用の EC2 Instance Connect 設定ファイルは Red Hat Package Manager (RPM) パッケージで提供され、RHEL 8 と RHEL 9 用の異なる RPM パッケージ、および Intel/AMD (x86_64) または ARM (AArch64) で実行されるインスタンスタイプ用の異なる RPM パッケージが含まれています。

    オペレーティングシステムと CPU アーキテクチャに合ったコマンドブロックを使用してください。

    • RHEL 8

      Intel/AMD (x86_64)

      [ec2-user ~]$ mkdir /tmp/ec2-instance-connect [ec2-user ~]$ curl https://amazon-ec2-instance-connect-us-west-2.s3.us-west-2.amazonaws.com/latest/linux_amd64/ec2-instance-connect.rhel8.rpm -o /tmp/ec2-instance-connect/ec2-instance-connect.rpm [ec2-user ~]$ curl https://amazon-ec2-instance-connect-us-west-2.s3.us-west-2.amazonaws.com/latest/linux_amd64/ec2-instance-connect-selinux.noarch.rpm -o /tmp/ec2-instance-connect/ec2-instance-connect-selinux.rpm [ec2-user ~]$ sudo yum install -y /tmp/ec2-instance-connect/ec2-instance-connect.rpm /tmp/ec2-instance-connect/ec2-instance-connect-selinux.rpm

      ARM (AArch64)

      [ec2-user ~]$ mkdir /tmp/ec2-instance-connect [ec2-user ~]$ curl https://amazon-ec2-instance-connect-us-west-2.s3.us-west-2.amazonaws.com/latest/linux_arm64/ec2-instance-connect.rhel8.rpm -o /tmp/ec2-instance-connect/ec2-instance-connect.rpm [ec2-user ~]$ curl https://amazon-ec2-instance-connect-us-west-2.s3.us-west-2.amazonaws.com/latest/linux_amd64/ec2-instance-connect-selinux.noarch.rpm -o /tmp/ec2-instance-connect/ec2-instance-connect-selinux.rpm [ec2-user ~]$ sudo yum install -y /tmp/ec2-instance-connect/ec2-instance-connect.rpm /tmp/ec2-instance-connect/ec2-instance-connect-selinux.rpm
    • RHEL 9

      Intel/AMD (x86_64)

      [ec2-user ~]$ mkdir /tmp/ec2-instance-connect [ec2-user ~]$ curl https://amazon-ec2-instance-connect-us-west-2.s3.us-west-2.amazonaws.com/latest/linux_amd64/ec2-instance-connect.rpm -o /tmp/ec2-instance-connect/ec2-instance-connect.rpm [ec2-user ~]$ curl https://amazon-ec2-instance-connect-us-west-2.s3.us-west-2.amazonaws.com/latest/linux_amd64/ec2-instance-connect-selinux.noarch.rpm -o /tmp/ec2-instance-connect/ec2-instance-connect-selinux.rpm [ec2-user ~]$ sudo yum install -y /tmp/ec2-instance-connect/ec2-instance-connect.rpm /tmp/ec2-instance-connect/ec2-instance-connect-selinux.rpm

      ARM (AArch64)

      [ec2-user ~]$ mkdir /tmp/ec2-instance-connect [ec2-user ~]$ curl https://amazon-ec2-instance-connect-us-west-2.s3.us-west-2.amazonaws.com/latest/linux_arm64/ec2-instance-connect.rpm -o /tmp/ec2-instance-connect/ec2-instance-connect.rpm [ec2-user ~]$ curl https://amazon-ec2-instance-connect-us-west-2.s3.us-west-2.amazonaws.com/latest/linux_amd64/ec2-instance-connect-selinux.noarch.rpm -o /tmp/ec2-instance-connect/ec2-instance-connect-selinux.rpm [ec2-user ~]$ sudo yum install -y /tmp/ec2-instance-connect/ec2-instance-connect.rpm /tmp/ec2-instance-connect/ec2-instance-connect-selinux.rpm

    次の新しいスクリプトが /opt/aws/bin/ フォルダに表示されます。

    eic_run_authorized_keys
  4. (オプション) EC2 Instance Connect がインスタンスに正常にインストールされたことを確認します。

    • RHEL 8 の場合:

      [ec2-user ~]$ sudo less /lib/systemd/system/ssh.service.d/ec2-instance-connect.conf
    • RHEL 9 の場合:

      [ec2-user ~]$ sudo less /etc/ssh/sshd_config.d/60-ec2-instance-connect.conf

    AuthorizedKeysCommand 行と AuthorizedKeysCommandUser 行に以下の値が含まれていれば、EC2 Instance Connect は正常にインストールされています。

    AuthorizedKeysCommand /opt/aws/bin/eic_run_authorized_keys %u %f AuthorizedKeysCommandUser ec2-instance-connect
    • AuthorizedKeysCommand は、インスタンスメタデータからキーを探すように eic_run_authorized_keys スクリプトを設定します。

    • AuthorizedKeysCommandUser は、システムユーザーを ec2-instance-connect として設定します。

    注記

    AuthorizedKeysCommandAuthorizedKeysCommandUser を設定済みである場合は、EC2 Instance Connect をインストールしても値は変更されないため、EC2 Instance Connect は使用できません。

Ubuntu
EC2 Instance Connect を Ubuntu 16.04 で起動したインスタンスにインストールするには
  1. SSH を使用してインスタンスに接続します。

    次のコマンド内のサンプル値を独自の値に置き換えます。インスタンスの起動時にインスタンスに割り当てた SSH キーペアを使用し、インスタンスを起動するために使用した AMI のデフォルトのユーザー名を使用します。Ubuntu AMI の場合、ユーザー名は ubuntu です。

    $ ssh -i my_ec2_private_key.pem ubuntu@ec2-a-b-c-d.us-west-2.compute.amazonaws.com

    インスタンスへの接続の詳細については、SSH クライアントを使用して Linux インスタンスに接続するを参照してください。

  2. (オプション) インスタンスに最新の Ubuntu AMI があることを確認します。

    次のコマンドを実行して、インスタンスのすべてのパッケージを更新します。

    ubuntu:~$ sudo apt-get update
    ubuntu:~$ sudo apt-get upgrade
  3. インスタンスに EC2 Instance Connect パッケージをインストールします。

    ubuntu:~$ sudo apt-get install ec2-instance-connect

    3 つの新しいスクリプトが /usr/share/ec2-instance-connect/ フォルダに表示されます。

    eic_curl_authorized_keys eic_parse_authorized_keys eic_run_authorized_keys
  4. (オプション) EC2 Instance Connect がインスタンスに正常にインストールされたことを確認します。

    ubuntu:~$ sudo less /lib/systemd/system/ssh.service.d/ec2-instance-connect.conf

    AuthorizedKeysCommand 行と AuthorizedKeysCommandUser 行に以下の値が含まれていれば、EC2 Instance Connect は正常にインストールされています。

    AuthorizedKeysCommand /usr/share/ec2-instance-connect/eic_run_authorized_keys %%u %%f AuthorizedKeysCommandUser ec2-instance-connect
    • AuthorizedKeysCommand は、インスタンスメタデータからキーを探すように eic_run_authorized_keys スクリプトを設定します。

    • AuthorizedKeysCommandUser は、システムユーザーを ec2-instance-connect として設定します。

    注記

    AuthorizedKeysCommandAuthorizedKeysCommandUser を設定済みである場合は、EC2 Instance Connect をインストールしても値は変更されないため、EC2 Instance Connect は使用できません。