メインコンテンツまでスキップ

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 インスタンスに接続する手順は次のとおりです。

  1. 管理者権限を持つユーザーとして AWS EC2 コンソール にサインインします。
  2. ページの右上隅で AWS リージョンを選択します。
  3. 左側のナビゲーションペインで、Instances > Instances を選択します。
  4. 接続したい EC2 インスタンスの Instance ID をクリックします。
  5. インスタンスの概要ページの右上隅で、Connect をクリックします。
  6. EC2 Instance Connect タブで、Connect をクリックします。

img

EC2 Instance Connect CLI を使用する

EC2 Instance Connect CLI を使用して EC2 インスタンスに接続する手順は次のとおりです。

  1. 次のテンプレートを使用して 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 を参照してください。

  2. 踏み台ホストを構築し、上記の IAM ロールをその役割として使用します。

  3. 踏み台ホストに EC2 Instance Connect CLI をインストールします。

    • Pip を使用して EC2 Instance Connect CLI をインストールするには、次のコマンドを実行します。

      pip install ec2instanceconnectcli
    • Pip3 を使用して EC2 Instance Connect CLI をインストールするには、次のコマンドを実行します。

      pip3 install ec2instanceconnectcli
  4. 次のコマンドを実行して EC2 インスタンスに接続します。

    mssh <user_name>@<ec2_instance_id>

    このコマンドは次の手順で構成されています。

    1. 一度だけ使用するための SSH 公開鍵を生成します。
    2. 鍵を EC2 インスタンスにプッシュします(鍵は 60 秒間保持されます)。
    3. SSH 経由で EC2 インスタンスに接続します。

AWS クライアントを使用する

AWS クライアントを使用して EC2 インスタンスに接続する手順は次のとおりです。

  1. 次のテンプレートを使用して 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 を参照してください。

  2. 踏み台ホストを構築し、上記の IAM ロールをその役割として使用します。

  3. 踏み台ホストで公開鍵を生成し、公開鍵を EC2 インスタンスにプッシュします。

    1. 次のコマンドを実行して公開鍵を生成します。

      ssh-keygen -t rsa -f my_key
    2. 次のコマンドを実行して公開鍵を 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
  4. SSH プライベートキーを使用して EC2 インスタンスに接続するには、次のコマンドを実行します。

    ssh -i my_key <user_name>@<ec2_instance_ip>

SSH クライアントを使用する

SSH クライアントを使用して EC2 インスタンスに接続する手順は次のとおりです。

  1. 管理者権限を持つユーザーとして AWS EC2 コンソール にサインインします。
  2. ページの右上隅で AWS リージョンを選択します。
  3. 左側のナビゲーションペインで、Instances > Instances を選択します。
  4. 接続したい EC2 インスタンスの Instance ID をクリックします。
  5. インスタンスの概要ページの右上隅で、Connect をクリックします。
  6. SSH client タブで、表示される指示に従って EC2 インスタンスに接続します。

img

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 を使用してインスタンスに接続する手順は次のとおりです。

  1. 管理者権限を持つユーザーとして AWS EC2 コンソール にサインインします。
  2. ページの右上隅で AWS リージョンを選択します。
  3. 左側のナビゲーションペインで、Instances > Instances を選択します。
  4. 接続したい EC2 インスタンスの Instance ID をクリックします。
  5. インスタンスの概要ページの右上隅で、Connect をクリックします。
  6. Session Manager タブで、Connect をクリックします。

img