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 で起動したインスタンスにインストールするには
-
SSH を使用してインスタンスに接続します。
次のコマンド内のサンプル値を独自の値に置き換えます。インスタンスの起動時にインスタンスに割り当てた SSH キーペアと、インスタンスを起動するために使用した AMI のデフォルトのユーザー名を使用します。Amazon Linux 2 の場合、デフォルトのユーザー名は
ec2-user
です。$
ssh -imy_ec2_private_key
.pemec2-user
@ec2-a-b-c-d.us-west-2.compute.amazonaws.com
インスタンスへの接続の詳細については、SSH クライアントを使用して Linux インスタンスに接続するを参照してください。
-
インスタンスに EC2 Instance Connect パッケージをインストールします。
[ec2-user ~]$
sudo yum install ec2-instance-connect3 つの新しいスクリプトが
/opt/aws/bin/
フォルダに表示されます。eic_curl_authorized_keys eic_parse_authorized_keys eic_run_authorized_keys
-
(オプション) EC2 Instance Connect がインスタンスに正常にインストールされたことを確認します。
[ec2-user ~]$
sudo less /etc/ssh/sshd_configAuthorizedKeysCommand
行と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
として設定します。
注記
AuthorizedKeysCommand
やAuthorizedKeysCommandUser
を設定済みである場合は、EC2 Instance Connect をインストールしても値は変更されないため、EC2 Instance Connect は使用できません。 -
-
- CentOS
-
EC2 Instance Connect を CentOS で起動したインスタンスにインストールするには
-
SSH を使用してインスタンスに接続します。
次のコマンド内のサンプル値を独自の値に置き換えます。インスタンスの起動時にインスタンスに割り当てた SSH キーペアと、インスタンスを起動するために使用した AMI のデフォルトのユーザー名を使用します。CentOS の場合、デフォルトのユーザー名は
centos
またはec2-user
です。$
ssh -imy_ec2_private_key
.pemcentos
@ec2-a-b-c-d.us-west-2.compute.amazonaws.com
インスタンスへの接続の詳細については、SSH クライアントを使用して Linux インスタンスに接続するを参照してください。
-
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
-
-
次のコマンドを実行して、インスタンスに 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.rpmARM (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.rpmARM (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
-
-
(オプション) 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
として設定します。
注記
AuthorizedKeysCommand
やAuthorizedKeysCommandUser
を設定済みである場合は、EC2 Instance Connect をインストールしても値は変更されないため、EC2 Instance Connect は使用できません。 -
-
- macOS
-
EC2 Instance Connect を macOS で起動したインスタンスにインストールするには
-
SSH を使用してインスタンスに接続します。
次のコマンド内のサンプル値を独自の値に置き換えます。インスタンスの起動時にインスタンスに割り当てた SSH キーペアと、インスタンスを起動するために使用した AMI のデフォルトのユーザー名を使用します。macOS インスタンスの場合、デフォルトのユーザー名は
ec2-user
です。$
ssh -imy_ec2_private_key
.pemec2-user
@ec2-a-b-c-d.us-west-2.compute.amazonaws.com
インスタンスへの接続の詳細については、SSH クライアントを使用して Linux インスタンスに接続するを参照してください。
-
次のコマンドを使用して Homwbrew を更新します。このアップデートでは、Homebrew が認識しているソフトウェアが一覧表示されます。EC2 Instance Connect パッケージは、macOS インスタンスでは Homebrew 経由で提供されます。詳細については、Mac インスタンス上のオペレーティングシステムとソフトウェアの更新 をご参照ください。
[ec2-user ~]$
brew update -
インスタンスに EC2 Instance Connect パッケージをインストールします。これによりソフトウェアがインストールされ、sshd がそれを使用するように設定されます。
[ec2-user ~]$
brew install ec2-instance-connect次の新しいスクリプトが
/opt/aws/bin/
フォルダに表示されます。eic_run_authorized_keys
-
(オプション) EC2 Instance Connect がインスタンスに正常にインストールされたことを確認します。
[ec2-user ~]$
sudo less /etc/ssh/sshd_config.d/60-ec2-instance-connect.confAuthorizedKeysCommand
行と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
として設定します。
注記
AuthorizedKeysCommand
やAuthorizedKeysCommandUser
を設定済みである場合は、EC2 Instance Connect をインストールしても値は変更されないため、EC2 Instance Connect は使用できません。 -
-
- RHEL
-
EC2 Instance Connect を Red Hat Enterprise Linux (RHEL) で起動したインスタンスにインストールするには
-
SSH を使用してインスタンスに接続します。
次のコマンド内のサンプル値を独自の値に置き換えます。インスタンスの起動時にインスタンスに割り当てた SSH キーペアと、インスタンスを起動するために使用した AMI のデフォルトのユーザー名を使用します。RHEL の場合、デフォルトのユーザー名は
ec2-user
またはroot
です。$
ssh -imy_ec2_private_key
.pemec2-user
@ec2-a-b-c-d.us-west-2.compute.amazonaws.com
インスタンスへの接続の詳細については、SSH クライアントを使用して Linux インスタンスに接続するを参照してください。
-
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
-
-
次のコマンドを実行して、インスタンスに 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.rpmARM (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.rpmARM (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
-
-
(オプション) 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
として設定します。
注記
AuthorizedKeysCommand
やAuthorizedKeysCommandUser
を設定済みである場合は、EC2 Instance Connect をインストールしても値は変更されないため、EC2 Instance Connect は使用できません。 -
-
- Ubuntu
-
EC2 Instance Connect を Ubuntu 16.04 で起動したインスタンスにインストールするには
-
SSH を使用してインスタンスに接続します。
次のコマンド内のサンプル値を独自の値に置き換えます。インスタンスの起動時にインスタンスに割り当てた SSH キーペアを使用し、インスタンスを起動するために使用した AMI のデフォルトのユーザー名を使用します。Ubuntu AMI の場合、ユーザー名は
ubuntu
です。$
ssh -imy_ec2_private_key
.pemubuntu
@ec2-a-b-c-d.us-west-2.compute.amazonaws.com
インスタンスへの接続の詳細については、SSH クライアントを使用して Linux インスタンスに接続するを参照してください。
-
(オプション) インスタンスに最新の Ubuntu AMI があることを確認します。
次のコマンドを実行して、インスタンスのすべてのパッケージを更新します。
ubuntu:~$
sudo apt-get updateubuntu:~$
sudo apt-get upgrade -
インスタンスに EC2 Instance Connect パッケージをインストールします。
ubuntu:~$
sudo apt-get install ec2-instance-connect3 つの新しいスクリプトが
/usr/share/ec2-instance-connect/
フォルダに表示されます。eic_curl_authorized_keys eic_parse_authorized_keys eic_run_authorized_keys
-
(オプション) EC2 Instance Connect がインスタンスに正常にインストールされたことを確認します。
ubuntu:~$
sudo less /lib/systemd/system/ssh.service.d/ec2-instance-connect.confAuthorizedKeysCommand
行と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
として設定します。
注記
AuthorizedKeysCommand
やAuthorizedKeysCommandUser
を設定済みである場合は、EC2 Instance Connect をインストールしても値は変更されないため、EC2 Instance Connect は使用できません。 -
-