SSH を使用して EC2 インスタンスに接続する
CelerData クラスターをホストしている Amazon EC2 インスタンスに SSH 経由で接続できます。
前提条件
- 接続したい EC2 インスタンスのポート
22
をリクエストできることを確認してください。セキュリティグループのインバウンドルールを編集してポート22
へのアクセスを許可し、EC2 インスタンスと接続に使用する踏み台ホスト間のネットワーク接続を保証する必要があります。 - EC2 Instance Connect を使用して EC2 インスタンスに接続する場合は、まず EC2 インスタンスに EC2 Instance Connect をインストールする必要があります。EC2 Instance Connect は、Cloud AMI で起動された EC2 インスタンスにはデフォルトでインストールされています。
- EC2 Instance Connect または SSH クライアントを使用して EC2 インスタンスに接続する場合は、EC2 インスタンスを起動したときに作成したキーペアを選択する必要があります。
EC2 Instance Connect を使用する
注意
この方法は、パブリックサブネットに存在し、パブリック IP アドレス を持つ EC2 インスタンスへの接続のみをサポートします。
EC2 Instance Connect を使用して EC2 インスタンスに接続する手順は次のとおりです。
- 管理者権限を持つユーザーとして AWS EC2 コンソール にサインインします。
- ページの右上隅で AWS リージョンを選択します。
- 左側のナビゲーションペインで、Instances > Instances を選択します。
- 接続したい EC2 インスタンスの Instance ID をクリックします。
- インスタンスの概要ページの右上隅で、Connect をクリックします。
- EC2 Instance Connect タブで、Connect をクリックします。
EC2 Instance Connect CLI を使用する
EC2 Instance Connect CLI を使用して EC2 インスタンスに接続する手順は次のとおりです。
-
次のテンプレートを使用して Amazon EC2 の IAM ロールを作成します。
{
"Version":"2012-10-17",
"Statement":[
{
"Effect":"Allow",
"Action":"ec2-instance-connect:SendSSHPublicKey",
// <aws_region>, <aws_account-id>, <ec2_instance_id> を実際の AWS リージョン、アカウント ID、インスタンス ID に置き換えます。
"Resource": "arn:aws:ec2:<aws_region>:<aws_account-id>:<ec2_instance_id>/*",
// EC2 インスタンスに接続するために使用する VPC を制限するタグをオプションで追加できます。`Condition` セクションが不要な場合は削除することもできます。
"Condition":{
"StringEquals":{
"aws:ResourceTag/tag-key":"<tag-value>"
}
}
},
{
"Effect": "Allow",
"Action": "ec2:DescribeInstances",
"Resource": "*"
}
]
}詳細な手順については、Create a service IAM role for EC2 を参照してください。
-
踏み台ホストを構築し、上記の IAM ロールをその役割として使用します。
-
踏み台ホストに EC2 Instance Connect CLI をインストールします。
-
Pip を使用して EC2 Instance Connect CLI をインストールするには、次のコマンドを実行します。
pip install ec2instanceconnectcli
-
Pip3 を使用して EC2 Instance Connect CLI をインストールするには、次のコマンドを実行します。
pip3 install ec2instanceconnectcli
-
-
次のコマンドを実行して EC2 インスタンスに接続します。
mssh <user_name>@<ec2_instance_id>
このコマンドは次の手順で構成されています。
- 一度だけ使用するための SSH 公開鍵を生成します。
- 鍵を EC2 インスタンスにプッシュします(鍵は 60 秒間保持されます)。
- SSH 経由で EC2 インスタンスに接続します。
AWS クライアントを使用する
AWS クライアントを使用して EC2 インスタンスに接続する手順は次のとおりです。
-
次のテンプレートを使用して Amazon EC2 の IAM ロールを作成します。
{
"Version":"2012-10-17",
"Statement":[
{
"Effect":"Allow",
"Action":"ec2-instance-connect:SendSSHPublicKey",
// <aws_region>, <aws_account-id>, <ec2_instance_id> を実際の AWS リージョン、アカウント ID、インスタンス ID に置き換えます。
"Resource": "arn:aws:ec2:<aws_region>:<aws_account-id>:<ec2_instance_id>/*",
// EC2 インスタンスに接続するために使用する VPC を制限するタグをオプションで追加できます。`Condition` セクションが不要な場合は削除することもできます。
"Condition":{
"StringEquals":{
"aws:ResourceTag/tag-key":"<tag-value>"
}
}
},
{
"Effect": "Allow",
"Action": "ec2:DescribeInstances",
"Resource": "*"
}
]
}詳細な手順については、Create a service IAM role to grant access to an S3 bucket を参照してください。
-
踏み台ホストを構築し、上記の IAM ロールをその役割として使用します。
-
踏み台ホストで公開鍵を生成し、公開鍵を EC2 インスタンスにプッシュします。
-
次のコマンドを実行して公開鍵を生成します。
ssh-keygen -t rsa -f my_key
-
次のコマンドを実行して公開鍵を EC2 インスタンスにプッシュします。
aws ec2-instance-connect send-ssh-public-key \
--instance-id <ec2_instance_id> \
--availability-zone <aws_region> \
--instance-os-user <user_name> \
--ssh-public-key file://my_key.pub
-
-
SSH プライベートキーを使用して EC2 インスタンスに接続するには、次のコマンドを実行します。
ssh -i my_key <user_name>@<ec2_instance_ip>
SSH クライアントを使用する
SSH クライアントを使用して EC2 インスタンスに接続する手順は次のとおりです。
- 管理者権限を持つユーザーとして AWS EC2 コンソール にサインインします。
- ページの右上隅で AWS リージョンを選択します。
- 左側のナビゲーションペインで、Instances > Instances を選択します。
- 接続したい EC2 インスタンスの Instance ID をクリックします。
- インスタンスの概要ページの右上隅で、Connect をクリックします。
- SSH client タブで、表示される指示に従って EC2 インスタンスに接続します。
SSM Agent を使用する
プライベートサブネットに存在する EC2 インスタンスに接続したい場合は、AWS Systems Manager Agent (SSM Agent) を介して接続できます。
SSM Agent を介して接続するには、まず SSM Agent に必要なポリシーを、CelerData クラスターのデプロイに使用する IAM ロールにアタッチする必要があります。ポリシーのアタッチ方法については、Attach a policy for SSM Agent to the IAM role for EC2 を参照してください。
注意
既存の CelerData クラスターの IAM ロールにポリシーをアタッチした場合、クラスターを一時停止してから再開する必要があります。これにより、クラスターをホストしているインスタンスにポリシーが適用されます。
SSM Agent を使用してインスタンスに接続する手順は次のとおりです。
- 管理者権限を持つユーザーとして AWS EC2 コンソール にサインインします。
- ページの右上隅で AWS リージョンを選択します。
- 左側のナビゲーションペインで、Instances > Instances を選択します。
- 接続したい EC2 インスタンスの Instance ID をクリックします。
- インスタンスの概要ページの右上隅で、Connect をクリックします。
- Session Manager タブで、Connect をクリックします。