メインコンテンツまでスキップ
バージョン: 3.5 Stable

SSH を使用して EC2 インスタンスに接続する

PhoenixAI クラスターをホストしている 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>:instance/<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>:instance/<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 に必要なポリシーを、PhoenixAI クラスターのデプロイに使用する IAM ロールにアタッチする必要があります。ポリシーのアタッチ方法については、Attach a policy for SSM Agent to the IAM role for EC2 を参照してください。

注意

既存の PhoenixAI クラスターの IAM ロールにポリシーをアタッチした場合、クラスターを一時停止してから再開する必要があります。これにより、クラスターをホストしているインスタンスにポリシーが適用されます。

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

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

img