すべてのプロダクト
Search
ドキュメントセンター

Elastic Compute Service:Session Manager CLIのポート転送機能を使用して、インターネットに接続せずにインスタンスに接続する

最終更新日:Jan 16, 2025

Session Manager CLI (ali-instance-cli) を使用して、Elastic Compute Service (ECS) インスタンスのポートをオンプレミスコンピューターのポートにマッピングできます。 これにより、Cloud Assistant Agentを使用して、インターネットに接続せずにインスタンス上のサービスにアクセスできます。 このトピックでは、Session Manager CLIを使用してポート転送機能を実装し、インターネットに接続せずにECSインスタンスにアクセスする方法について説明します。

重要

ポート転送機能は、基になるレベルのWebSocketに基づいており、TCPを介して動作します。 したがって、この機能はTCPポート転送のみをサポートし、UDPポート転送はサポートしません。

ポート転送とは何ですか?

Session Manager CLI (ali-instance-cli) のポート転送機能は、Cloud Assistantに基づいて実装されています。 ポート転送機能は、インスタンスのポートを、ali-instance-cliがインストールされているオンプレミスマシンのポートにマッピングできます。 また、ポート転送機能により、インスタンスはジャンプサーバーとして機能し、パブリックネットワーク接続のない環境やプライベートネットワークを介したサービスアクセスのために、オンプレミスポートを別のホストのポートにマッピングできます。

  • シナリオ1: インターネット接続なしでインスタンスに接続する

    ポート転送機能を使用して、インターネットに接続されていないECSインスタンスのリモートアクセスポートをオンプレミスポートにマッピングできます。 その後、ツールを使用してオンプレミスポートにアクセスし、インターネットに接続せずにECSインスタンスに接続できます。

    ログインするインスタンスにパブリックIPアドレスが割り当てられている場合、セキュリティグループに拒否ルールを追加して、インスタンスへのリモートアクセス用のポートを無効にし、インスタンスのセキュリティを向上させることができます。

  • シナリオ2: インターネット接続なしでインスタンスのサービスにアクセスする

    ポート転送機能を使用して、NGINXやApacheポートなど、インターネットに接続されていないECSインスタンスのサービスポートをオンプレミスポートにマッピングできます。 これにより、ECSインスタンスにデプロイされたサービスにアクセスできます。

  • シナリオ3: ジャンプサーバーとしてインスタンスを使用した他のホストのサービスへのアクセス

    ポート転送機能を使用して、インスタンスをジャンプサーバーとして使用し、インスタンスと同じ仮想プライベートクラウド (VPC) にあるネットワークホスト上のサービスにアクセスできます。 たとえば、VPC内の別のインスタンスにデプロイされたMySQLサービスにアクセスできます。

ポート転送の仕組み

  • ポート転送の原理を次の図に示します。

    ポート転送 (ali-instance-cli) 機能は、Cloud Assistant Agentに基づいて実装されています。 ポート転送を有効にすると、セッション管理チャネルを使用してECSインスタンスのサービスポートをPCのポートにマッピングできます。 これにより、インターネットに接続せずにインスタンスにアクセスできます。

image
  • 次の図は、ali-instance-cliツールとCloud Assistant Agentの間でセッション管理チャネルを確立する方法を示しています。

    接続が開始された後、ali-instance-cliツールとCloud Assistant Agentは、Cloud AssistantサーバーへのWebSocket接続を確立します。 接続が確立された後、ali-instance-cliツールによって送信されたデータは、クラウドアシスタントサーバーによってクラウドアシスタントエージェントに転送されます。

image

準備

セッションマネージャの有効化

ali-instance-cliを使用する前に、Alibaba Cloudアカウントを使用してSession Managerを有効にしてください。 ECSコンソールでのみSession Managerを有効にできます。 セッションマネージャーを有効にするには、次の手順を実行します。

  1. ECSコンソールにログインします。

  2. 左側のナビゲーションウィンドウで、インスタンス&画像 > インスタンスを選択します。

  3. 上部のナビゲーションバーの左上隅で、接続するインスタンスが存在するリソースグループとリージョンを選択します。

  4. [インスタンス] ページで、接続するインスタンスを見つけ、[操作] 列の [接続] をクリックします。

image

  1. 他のログオン方法を表示するをクリックします。

  2. [セッションマネージャー] セクションで、[セッション管理の終了] の右側にあるスイッチをオンにし、画面の指示に従ってセッションマネージャーを有効にします。

image

image

接続するインスタンスが [実行中] 状態であるかどうかを確認します

Session Managerを使用して、[実行中] 状態のインスタンスのみに接続できます。

ECSコンソールの使用

ECSコンソールの [インスタンス] ページでインスタンスのステータスを確認できます。

インスタンスのステータスを確認する方法については、「インスタンス情報の表示」をご参照ください。

image

image

Alibaba Cloud CLIの使用

Alibaba Cloud CLIを設定した場合は、コマンドを実行してAPI操作を呼び出し、インスタンスのステータスを照会します。 API操作のパラメーターについては、「DescribeInstanceStatus」をご参照ください。

たとえば、IDがi-bp1 ****** で、中国 (杭州) リージョンにあるインスタンスのステータスを照会するには、次のコマンドを実行します。
aliyun ecs DescribeInstanceStatus --region cn-hangzhou --RegionId 'cn-hangzhou' --InstanceId.1 'i-bp1******'

インスタンスが [実行中] 状態の場合、コマンド出力の [ステータス] パラメーターの値は [実行中] です。

{
  "TotalCount": 1,
  "RequestId": "A413****-****-****-****-****611B",
  "PageSize": 1,
  "PageNumber": 1,
  "InstanceStatuses": {
    "InstanceStatus": [
      {
        "Status": "Running",
        "InstanceId": "i-bp1******"
      }
    ]
  }
}

また、DescribeInstancesなど、他の操作を呼び出してインスタンスのステータスを照会するコマンドを実行することもできます。 詳細については、「DescribeInstances」をご参照ください。

API操作の呼び出し

DescribeInstanceStatusまたはDescribeInstances操作を呼び出して、インスタンスのステータスを照会します。 詳細については、「DescribeInstanceStatus」または「DescribeInstances」をご参照ください。

Cloud Assistant Agentが接続先のインスタンスにインストールされているかどうかを確認します

Session ManagerはCloud Assistantに依存します。 次のいずれかの方法で、Cloud Assistant Agentがインスタンスにインストールされているかどうかを確認できます。

Cloud Assistant Agentは、2017年12月1日以降にAlibaba Cloudパブリックイメージから作成されたECSインスタンスにプリインストールされます。 2017 12月1日より前に作成されたECSインスタンスの場合、Cloud Assistant Agentを手動でインストールする必要があります。 詳細については、「Cloud Assistant Agentのインストール」をご参照ください。

ECSコンソールの使用

Session ManagerはCloud Assistantに基づいて実装されています。 インスタンスにCloud Assistant Agentをインストールする必要があります。 ECSコンソールの [ECS Cloud Assistant] ページで、[Cloud Assistant Agent] のステータスを確認できます。

Cloud Assistant Agentは、2017年12月1日以降にAlibaba Cloudパブリックイメージから作成されたECSインスタンスにプリインストールされます。 2017 12月1日より前に作成されたECSインスタンスの場合、Cloud Assistant Agentを手動でインストールする必要があります。 詳細については、「Cloud Assistant Agentのインストール」をご参照ください。

image

image

Cloud Assistantエージェントのステータスを表示し、異常を処理する方法については、「Cloud Assistantのステータスを表示し、異常を処理する」をご参照ください。

Alibaba Cloud CLIの使用

Alibaba Cloud CLIを設定した場合は、コマンドを実行してDescribeCloudAssistantStatus操作を呼び出し、Cloud Assistant Agentがインスタンスにインストールされており、Session Managerをサポートしているかどうかを確認します。 DescribeCloudAssistantStatus操作のパラメーターについては、「DescribeCloudAssistantStatus」をご参照ください。

たとえば、インスタンスにi-bp1 ****** のIDが割り当てられ、中国 (杭州) リージョンにある場合、次のコマンドを実行して、Cloud Assistant Agentがインスタンスにインストールされ、Session Managerをサポートしているかどうかを確認します。
aliyun ecs DescribeCloudAssistantStatus --region cn-hangzhou --RegionId 'cn-hangzhou' --InstanceId.1 'i-bp1******'

Cloud Assistant Agentがインスタンスにインストールされ、Session Managerをサポートしている場合、コマンド出力のCloudAssistantStatusおよびSupportSessionManagerパラメーターの値はtrueです。

{
  "TotalCount": 1,
  "PageSize": 1,
  "RequestId": "DB34****-****-****-****-****A749",
  "NextToken": "",
  "PageNumber": 1,
  "InstanceCloudAssistantStatusSet": {
    "InstanceCloudAssistantStatus": [
      {
        "CloudAssistantVersion": "2.2.3.857",
        "SupportSessionManager": true,
        "InstanceId": "i-bp1******",
        "InvocationCount": 4,
        "OSType": "Linux",
        "CloudAssistantStatus": "true",
        "LastHeartbeatTime": "2024-12-10T02:38:04Z",
        "LastInvokedTime": "2024-12-08T16:02:45Z",
        "ActiveTaskCount": 0
      }
    ]
  }
}

API操作の呼び出し

DescribeCloudAssistantStatus操作を呼び出して、Cloud Assistant Agentがインスタンスにインストールされているかどうかを確認します。 詳細については、「DescribeCloudAssistantStatus」をご参照ください。

セッションマネージャを使用するRAM (Resource Access Management) ユーザーの資格情報を準備する

ali-instance-cliを使用する場合、RAMユーザーのAccessKeyペアSecurity Token Service (STS) トークンを指定する必要があります。 Session Managerを使用してインスタンスに接続すると、資格情報を持つRAMユーザーがecs:StartTerminalSession権限も持っているかどうかがシステムによって検証されます。

カスタムポリシーを設定する場合、Resourceパラメーターを設定して、RAMユーザーがSession Managerを使用して接続できるECSインスタンスを指定できます。 サンプルポリシー:

{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "ecs:StartTerminalSession",
      "Resource": "*"
    }
  ]
}

CredentialsURIおよびSTS Tokenパラメーターの詳細については、「AccessKeyペアの作成」および「STSとは」をご参照ください。

RAMユーザーに権限を付与する方法については、「RAMユーザーに権限を付与する」をご参照ください。

1. ali-instance-cliのインストールと設定

説明

すでにali-instance-cliをインストールして設定している場合は、この手順をスキップしてください。

1.1 ali-instance-cliのインストール

コンピューターにali-instance-cliをインストールします。 インストール操作は、オペレーティングシステムによって異なります。

Windows

こちらをクリックしてali-instance-cli for Windowsをダウンロードし、コンピューターのフォルダーに保存します。

この例では、ali-instance-cliはコンピューターのC:\Users\testフォルダーに保存されます。

macOS

macOSターミナルで次のコマンドを実行し、macOS用のali-instance-cliダウンロードします。

curl -O https://aliyun-client-assist.oss-accelerate.aliyuncs.com/session-manager/mac/ali-instance-cli

次のコマンドを実行して、ali-instance-cliに実行権限を付与します。

chmod a+x ali-instance-cli

Linux

次のコマンドを実行して、Linux用のali-instance-cliをインストールします。

curl -O https://aliyun-client-assist.oss-accelerate.aliyuncs.com/session-manager/linux/ali-instance-cli

次のコマンドを実行して、ali-instance-cliに実行権限を付与します。

chmod a+x ali-instance-cli

1.2 ali-instance-cliの設定

コンピューターでali-instance-cliを使用してインスタンスに接続する場合、AccessKeyペアなどのID認証情報を設定する必要があります。 AccessKey ペアは、AccessKey ID と AccessKey Secret で構成されます。 詳細については、このトピックの「Session Managerを使用するRAM (Resource Access Management) ユーザーの資格情報の準備」をご参照ください。

Windows

  1. [スタート] アイコンを右クリックし、[実行] を選択します。 [実行] ダイアログボックスで [cmd] と入力し、[enter] キーを押してコマンドプロンプトウィンドウを開きます。

  2. 次のコマンドを実行して、ali-instance-cli.exeが存在するディレクトリに切り替えます。 この例では、C:\Users\testディレクトリが使用されています。

    cd C:\Users\test
  3. 資格情報を設定します。 次のタイプの資格情報がサポートされています。

    AccessKey ペア

    次のコマンドを実行し、プロンプトに従ってAccess Key IdAccess Key Secret、およびRegion Idパラメーターを設定します。

    ali-instance-cli.exe configure --mode AK
    STSトークン

    次のコマンドを実行して資格情報を設定します。

    ali-instance-cli.exe configure set --mode StsToken --region "<region>" --access-key-id "<ak>"  --access-key-secret "<sk>"   --sts-token "<sts_token>"

    < region>< ak>< sk><sts_token > を実際のリージョンIDAccessKey IDAccessKey secretセキュリティトークンサービス (sts) トークンに置き換えます。

    資格情報URI

    次のコマンドを実行し、プロンプトに従ってCredentials URIおよびRegion Idパラメーターを設定します。

    ali-instance-cli.exe configure --mode=CredentialsURI

    次のコマンド出力は、資格情報が設定されていることを示します。

    image

macOSまたはLinux

  1. ali-instance-cliが存在するディレクトリに移動します。 この例では、現在のユーザーのルートディレクトリ () が使用されます。

    cd ~
  2. 資格情報を設定します。

    AccessKey ペア

    次のコマンドを実行し、プロンプトに従ってAccess Key IdAccess Key Secret、およびRegion Idパラメーターを設定します。

    ./ali-instance-cli configure --mode AK
    STSトークン

    次のコマンドを実行して資格情報を設定します。

    ./ali-instance-cli configure set --mode StsToken --region "<region>" --access-key-id "<ak>"  --access-key-secret "<sk>"   --sts-token "<sts_token>"

    < region>< ak>< sk><sts_token > を実際のリージョンIDAccessKey IDAccessKey secretsts tokenに置き換えます。

    資格情報URI

    次のコマンドを実行し、プロンプトに従ってCredentials URIおよびRegion Idパラメーターを設定します。

    ./ali-instance-cli configure --mode=CredentialsURI

    次のコマンド出力は、資格情報が設定されていることを示します。

    image

2. ポート転送機能の使用

2.1 ポートがオンプレミスポートにマップされているインスタンスのIDを取得します。

ポート転送機能を使用する前に、後続の手順でポートのインスタンスIDを取得します。

ECSコンソールの使用

  1. ECSコンソールにログインします。

  2. 左側のナビゲーションウィンドウで、インスタンス&画像 > インスタンス.

  3. 上部のナビゲーションバーの左上隅で、接続するインスタンスが存在するリソースグループとリージョンを選択します。

  4. [インスタンス] ページで、接続するインスタンスを見つけ、インスタンスIDをクリックします。

image

Alibaba Cloud CLIの使用

Alibaba Cloud CLIを設定した場合は、コマンドを実行してDescribeInstancesを呼び出し、接続先のインスタンスのIDを照会します。 DescribeInstances操作のパラメーターについては、「DescribeInstances」をご参照ください。

たとえば、次のコマンドを実行して、中国 (杭州) リージョンにあるSessionManager-exampleという名前のインスタンスのIDを照会します。
aliyun ecs DescribeInstances --region cn-hangzhou --RegionId 'cn-hangzhou' --InstanceName 'SessionManager-example'

コマンド出力のInstanceIdパラメーターの値は、インスタンスのIDです。

image

API の呼び出し

DescribeInstances操作を呼び出して、接続先のインスタンスのIDを照会します。 詳細については、「DescribeInstances」をご参照ください。

2.2 ポート転送を使用

方法1: インスタンスでポート転送機能を直接使用する

Windowsコンピュータ

重要

ポート転送を使用するときは、コマンドプロンプトウィンドウを閉じないでください。 コマンドプロンプトウィンドウが閉じている場合、ポート転送も終了します。

コマンドプロンプトウィンドウを開き、ali-instance-cli.exeが格納されているディレクトリに移動し、次のコマンドを実行してポート転送を有効にします。

ali-instance-cli.exe portforward -i <instance_id> -r <target_port> -l <local_port>
説明

<instance_id> をポート転送が必要なインスタンスのIDに、<target_port> を宛先ECSインスタンスのポートに、<local_port> をインスタンスポートがマッピングされているオンプレミスポートに置き換えます。

次の図に示すように、ポート転送機能が期待どおりに実行されると、システムは [接続待ち] 状態になります。 この場合、オンプレミスマシンで127.0.0.1:<local_port> にアクセスすることは、インスタンスの <ecs_port> ポートでサービスにアクセスすることと同じです。

image

macOSまたはLinuxコンピュータ

重要

ポート転送を使用する場合は、現在の端末を閉じないでください。 端末が閉じられている場合、ポート転送も終了する。

ターミナルで、ali-instance-cli.exeが保存されているディレクトリに移動し、コマンドを実行してインスタンスに接続します。

./ali-instance-cli portforward -i <instance_id> -r <target_port> -l <local_port>
説明

<instance_id> をポート転送が必要なインスタンスのIDに、<target_port> を宛先ECSインスタンスのポートに、<local_port> をインスタンスポートがマッピングされているオンプレミスポートに置き換えます。

次の図に示すように、ポート転送機能が期待どおりに実行されると、システムは [接続待ち] 状態になります。 この場合、オンプレミスマシンで127.0.0.1:<local_port> にアクセスすることは、インスタンスの <target_port> ポートのサービスにアクセスすることと同じです。

image

方法2: ECSインスタンスをジャンプサーバーとして使用してトラフィックを他のホストに転送する

Session Manager CLIを使用してECSインスタンスへの接続を確立し、ECSインスタンスをジャンプサーバーとして使用して別のホストのポートにアクセスできます。

Windowsコンピュータ

重要

ポート転送を使用するときは、コマンドプロンプトウィンドウを閉じないでください。 コマンドプロンプトウィンドウが閉じている場合、ポート転送も終了します。

コマンドプロンプトウィンドウを開き、ali-instance-cli.exeが格納されているディレクトリに移動し、次のコマンドを実行してポート転送を有効にします。

ali-instance-cli.exe portforward -i <instance_id> -r <target_ip>:<target_port> -l <local_port>
説明

<instance_id> をジャンプサーバーインスタンスのIDに、<target_ip> を宛先ホストのIPアドレスに、<target_port> を宛先ホストのポートに、<local_port> をインスタンスポートがマッピングされているオンプレミスポートに置き換えます。

次の図に示すように、ポート転送機能が期待どおりに実行されると、システムは [接続待ち] 状態になります。 この場合、127.0.0.1:<local_port> にアクセスすることは、ホストアドレスが <target_ip> 、ポート番号が <target_port> のサービスにアクセスすることと同じです。

image

macOSまたはLinuxコンピュータ

重要

ポート転送を使用する場合は、現在の端末を閉じないでください。 端末が閉じられている場合、ポート転送も終了する。

ターミナルで、ali-instance-cli.exeが格納されているディレクトリに移動し、次のコマンドを実行してインスタンスに接続します。

./ali-instance-cli portforward -i <instance_id> -r <target_ip>:<target_port> -l <local_port>
説明

<instance_id> をジャンプサーバーインスタンスのIDに、<target_ip> を宛先ホストのIPアドレスに、<target_port> を宛先ホストのポートに、<local_port> をインスタンスポートがマッピングされているオンプレミスポートに置き換えます。

次の図に示すように、ポート転送機能が期待どおりに実行されると、システムは [接続待ち] 状態になります。 この場合、127.0.0.1:<local_port> にアクセスすることは、ホストアドレスが <target_ip> 、ポート番号が <target_port> のサービスにアクセスすることと同じです。

image

例シナリオ

例1: インターネット接続なしでインスタンスに接続する

サンプルアーキテクチャ

ポート転送機能を使用すると、インターネットに接続せずにECSインスタンスに接続できます。

image

手順

Linux インスタンスへの接続

  1. ポート転送を有効にします。

    インスタンスのSSHポート (デフォルトでは22) をオンプレミスマシンのポート8080にマップします。 操作はオペレーティングシステムによって異なります。

    重要

    ポート転送が有効になった後、コマンドプロンプトウィンドウまたはターミナルを閉じると、接続が中断されます。

    Windowsコンピュータ

    コマンドプロンプトウィンドウを開き、ali-instance-cli.exeツールが格納されているディレクトリに移動し、次のコマンドを実行してポート転送を実行します。

    ali-instance-cli.exe portforward -i i-bp1****** -r 22 -l 8080
    このコマンドでは、-iパラメーターはi-bp1 ****** に設定されます。これは、接続するインスタンスのIDです。 -rパラメーターは、インスタンスのSSHサービスである22に設定されています。 -lパラメーターは8080に設定されます。これは、オンプレミスのコンピューターでポート8080です。

    macOSまたはLinuxコンピュータ

    ターミナルを開き、ali-instance-cliツールが格納されているディレクトリに移動し、次のコマンドを実行してポート転送を実行します。

    ./ali-instance-cli portforward -i i-bp1****** -r 22 -l 8080
    このコマンドでは、-iパラメーターはi-bp1 ****** に設定されます。これは、接続するインスタンスのIDです。 -rパラメーターは、インスタンスのSSHサービスである22に設定されています。 -lパラメーターは8080に設定されます。これは、オンプレミスのコンピューターでポート8080です。
  2. インスタンスに接続します。

    ポート転送を有効にすると、オンプレミスマシンのポート8080に直接アクセスして、宛先インスタンスにアクセスできます。

    • リモートホストIPアドレス: 127.0.0.1

    • リモートホストのSSHポート: 8080

    この例では、OpenSSHクライアントが使用されています。 ビジネス要件に基づいて適切な接続ツールを選択できます。

    ポート転送。

    image

    127.0.0.1:8080を使用してインスタンスに接続します。

    image

ali-instance-cliツールの sshを使用して操作を簡素化

OpenSSHを使用してインスタンスに接続する場合、操作を簡単にするためにali-instance-cl i sshコマンドを実行できます。 これにより、下位レイヤはポート転送機能を使用できます。

この例では、macOSおよびLinuxオペレーティングシステムが使用されています。
  1. 変更します。Modify the. ssh/config設定ファイルを作成し、次のコンテンツを追加します。

    <cli_path> を、ali-instance-cliツールが格納されている絶対パスに置き換えます。

    host i-*
        ProxyCommand sh -c "<cli_path> ssh -i '%h' --port  '%p'" 
  2. sshコマンドを実行してインスタンスに接続します。

    コマンドの次のパラメーターを置き換えます。

    • <private_key_path>: このパラメーターを、秘密鍵が格納されているパスに置き換えます。

    • <ssh_port>: このパラメーターをECSインスタンスのSSHサービスの実際のリモートアクセスポートに置き換えます。

    • <ecs_username>: このパラメーターをECSインスタンスのログイン名に置き換えます。

    • <instance_id: このパラメーターをECSインスタンスの実際のidに置き換えます。

      重要

      インスタンスのIPアドレスの代わりにインスタンスIDが使用されます。

    ssh -i <private_key_path> -p <ssh_port> <ecs_username>@<instance_id>

    image

Windows インスタンスへの接続

  1. ポート転送を有効にします。

    RDPポート (デフォルトでは3389) をオンプレミスマシンのポート8080にマッピングします。 操作はオペレーティングシステムによって異なります。

    重要

    ポート転送が有効になった後、コマンドプロンプトウィンドウまたはターミナルを閉じると、接続が中断されます。

    Windowsコンピュータ

    コマンドプロンプトウィンドウを開き、ali-instance-cli.exeツールが格納されているディレクトリに移動し、次のコマンドを実行してポート転送を実行します。

    ali-instance-cli.exe portforward -i i-bp1****** -r 3389 -l 8080
    このコマンドでは、-iパラメーターの値はi-bp1 ****** です。これは、接続するインスタンスのIDです。 -rパラメーターは、インスタンスのRDPサービスである3389に設定されています。 -lパラメーターは8080に設定されます。これは、オンプレミスのコンピューターでポート8080です。

    macOSまたはLinuxコンピュータ

    ターミナルを開き、ali-instance-cliツールが格納されているディレクトリに移動し、次のコマンドを実行してポート転送を実行します。

    ./ali-instance-cli portforward -i i-bp1****** -r 3389 -l 8080
    このコマンドでは、-iパラメーターの値はi-bp1 ****** です。これは、接続するインスタンスのIDです。 -rパラメーターは、インスタンスのRDPサービスである3389に設定されています。 -lパラメーターは8080に設定されます。これは、オンプレミスのコンピューターでポート8080です。
  2. インスタンスに接続します。

    ポート転送を有効にすると、オンプレミスマシンのポート8080に直接アクセスして、宛先インスタンスにアクセスできます。

    • リモートコンピュータ: 127.0.0.1:8080

    次の例は、Windowsリモートデスクトップ (RDP) を使用してECSインスタンスに接続する方法を示しています。 ビジネス要件に基づいて適切な接続ツールを選択できます。

    ポート転送。

    image

    127.0.0.1:8080を使用してWindowsインスタンスに接続します。

    image

例2: インターネット接続なしでECSインスタンスからNGINXサービスにアクセスする

サンプルアーキテクチャ

image

手順

  1. ポート転送を有効にします。

    NGINXポート (デフォルトでは80) をオンプレミスマシンのポート8080にマップします。 操作はオペレーティングシステムによって異なります。

    重要

    ポート転送が有効になった後、コマンドプロンプトウィンドウまたはターミナルを閉じると、接続が中断されます。

    Windowsコンピュータ

    コマンドプロンプトウィンドウを開き、ali-instance-cli.exeツールが格納されているディレクトリに移動し、次のコマンドを実行してポート転送を実行します。

    ali-instance-cli.exe portforward -i i-bp1****** -r 80 -l 8080
    このコマンドでは、-iパラメーターはi-bp1 ****** に設定されます。これは、接続するインスタンスのIDです。 -rパラメーターは、インスタンスのNGINXポートである80に設定されています。 -lパラメーターは8080に設定されます。これは、オンプレミスのコンピューターでポート8080です。

    macOSまたはLinuxコンピュータ

    ターミナルを開き、ali-instance-cliツールが格納されているディレクトリに移動し、次のコマンドを実行してポート転送を実行します。

    ./ali-instance-cli portforward -i i-bp1****** -r 80 -l 8080
    このコマンドでは、-iパラメーターはi-bp1 ****** に設定されます。これは、接続するインスタンスのIDです。 -rパラメーターは、インスタンスのNGINXポートである80に設定されています。 -lパラメーターは8080に設定されます。これは、オンプレミスのコンピューターでポート8080です。
  2. NGINXサービスにアクセスします。

    次の例は、ブラウザでNGINXサービスのデフォルトページにアクセスする方法を示しています。

    ポート転送。

    image

    http:// 127.0.0.1:80を使用して、デフォルトのNGINXサービスページにアクセスします。

    image

例3: ECSインスタンスをジャンプサーバーとして使用してプライベートMySQLインスタンスにアクセスする

Example description

次の図に示すように、この例では、IDがi-bp1 ****** であるインスタンスをジャンプサーバーとして使用し、内部ネットワークを介してApsaraDB RDS for MySQLのMySQLデータベースインスタンスにアクセスします。 RDSインスタンスのエンドポイントはrm-****** .mysql.rds.aliyuncs.comです。

この例では、ECSインスタンスとRDSインスタンス間のネットワーク接続が保証されています。
image

手順

  1. ポート転送を有効にします。

    MySQLポート (デフォルトでは3306) をオンプレミスマシンのポート13306にマップします。 操作はオペレーティングシステムによって異なります。

    重要

    ポート転送が有効になった後、コマンドプロンプトウィンドウまたはターミナルを閉じると、接続が中断されます。

    Windowsコンピュータ

    コマンドプロンプトウィンドウを開き、ali-instance-cli.exeツールが格納されているディレクトリに移動し、次のコマンドを実行してポート転送を実行します。

    ali-instance-cli.exe portforward -i i-bp1****** -r rm-******.mysql.rds.aliyuncs.com:3306 -l 13306
    このコマンドでは、-iパラメーターは、ジャンプサーバーECSインスタンスのIDであるi-bp1 ****** に設定されます。 -rパラメーターは、MySQLのエンドポイントであるrm-****** .mysql.rds.aliyuncs.com:3306に設定されます。 -lパラメーターは13306に設定されます。これは、オンプレミスマシンのポート13306です。

    macOSまたはLinuxコンピュータ

    ターミナルを開き、ali-instance-cliツールが格納されているディレクトリに移動し、次のコマンドを実行してポート転送を実行します。

    ./ali-instance-cli portforward -i i-bp1****** -r rm-******.mysql.rds.aliyuncs.com:3306 -l 13306
    このコマンドでは、-iパラメーターは、ジャンプサーバーECSインスタンスのIDであるi-bp1 ****** に設定されます。 -rパラメーターは、MySQLのエンドポイントであるrm-****** .mysql.rds.aliyuncs.com:3306に設定されます。 -lパラメーターは13306に設定されます。これは、オンプレミスマシンのポート13306です。
  2. MySQLクライアントを使用してMySQLデータベースにアクセスします。

    ポート転送を有効にすると、オンプレミスマシンのポート13306を使用してMySQLにアクセスできます。

    MySQLクライアントを例として使用します。 ビジネス要件に基づいて適切な接続ツールを選択できます。

    ポート転送。

    image

    127.0.0.1:13306を使用してMySQLサービスにアクセスします。

    image

よくある質問

、ali-instance-cliコマンドを実行した後にコマンドラインが応答しない場合はどうすればよいですか? (インスタンスが実行中状態でない可能性があります)

ali-instance-cliコマンドを実行した後にコマンドラインが応答しない場合、対応するインスタンスが実行中の状態にない可能性があります。 インスタンスのステータスを確認します。 詳細については、このトピックの「接続先のインスタンスが実行中の状態であるかどうかの確認」をご参照ください。

、ali-instance-cliコマンドを実行した後にコマンドラインが応答しない場合はどうすればよいですか? (必要なポートがセキュリティグループで開かれていない可能性があります)

ali-instance-cliコマンドの実行後にコマンドラインが応答しない場合、対応するインスタンスのセキュリティグループのアウトバウンドトラフィックに対して必要なポートが開いていない可能性があります。 デフォルトでは、基本セキュリティグループはアウトバウンドトラフィックのすべてのポートを開きます。 上記の問題は、基本的なセキュリティグループのアウトバウンドルールを変更するか、インスタンスにアドバンストセキュリティグループを使用する場合に発生する可能性があります。

Session Managerを使用してECSインスタンスに接続する場合、次のルールをアウトバウンドセキュリティグループに追加して、ECSインスタンスで実行されているCloud Assistant AgentがCloud Assistantサーバーに接続されていることを確認します。

SSHやリモートデスクトッププロトコル (RDP) などの接続方法と比較して、Cloud Assistant Agentは、Session ManagerサーバーへのWebSocket接続をアクティブに確立します。 セキュリティルールでは、Cloud Assistantサーバーの送信WebSocketポートのみを開く必要があります。 セッションマネージャーの仕組みについては、このトピックのセッションマネージャーの仕組みを参照してください。
重要
  • デフォルトセキュリティグループを含む基本セキュリティグループを使用する場合、すべての送信トラフィックが許可されます。 追加の設定は必要ありません

  • 高度なセキュリティグループを使用すると、すべてのアウトバウンドトラフィックが拒否されます。 関連するルールを設定する必要があります。 次の表にルールを示します。 セキュリティグループの詳細については、「基本的なセキュリティグループと高度なセキュリティグループ」をご参照ください。

セキュリティグループにルールを追加する方法については、「セキュリティグループルールの追加」をご参照ください。

Action

優先度

プロトコルタイプ

ポート範囲

権限付与オブジェクト

説明

許可

1

カスタムTCP

443

100.100.0.0/16

このポートは、Cloud Assistantサーバーへのアクセスに使用されます。

許可

1

カスタムTCP

443

100.0.0.0/8

このポートは、Cloud Assistant Agentをインストールまたは更新するときに、Cloud Assistant Agentインストールパッケージが保存されているサーバーにアクセスするために使用されます。

許可

1

カスタムUDP

53

0.0.0.0/0

このポートはドメイン名を解決するために使用されます。

Session Managerのみを使用してインスタンスに接続する場合は、セキュリティグループからSSHポート (デフォルト22) とRDPポート (デフォルト3389) を許可するインバウンドルールを削除して、ECSインスタンスのセキュリティを向上させます。

ali-instance-cliコマンドを実行した後にDeliveryTimeoutエラーが報告された場合はどうすればよいですか

次の図に示すように、ali-instance-cliコマンドを実行した後にDeliveryTimeoutエラーが報告された場合、対応するインスタンスでCloud Assistantエージェントが使用できない可能性があります。 Cloud Assistant Agentのステータスを確認します。 詳細については、このトピックの「接続先インスタンスにCloud Assistant Agentがインストールされているかどうかの確認」をご参照ください。

image

image

ali-instance-cliコマンドを実行した後にセッションマネージャーが無効になっている場合、最初にエラーメッセージが表示されますか?

ali-instance-cliコマンドを実行した後、セッションマネージャーが無効になっている場合、最初に有効にしてくださいエラーメッセージが表示されます。 ECSコンソールでSession Managerを有効にします。 詳細については、このトピックの「セッションマネージャーの有効化」をご参照ください。

Session Managerを使用してインスタンスに確立された接続が、長期間非アクティブのために自動的に閉じられた場合はどうすればよいですか?

Session Managerを使用してインスタンスに接続した後、長期間操作を実行しないと、接続は自動的に閉じられます。 デフォルトでは、接続のアイドルタイムアウト期間は3分です。 -- idle-timeoutパラメーターを使用して、カスタムのアイドルタイムアウト期間を指定できます。

たとえば、次のコマンドを実行してインスタンスに接続し、10分の非アクティブ化後に接続が自動的に終了するように設定します。

./ali-instance-cli session --instance instance-id --idle-timeout 600
説明

ali-instance-cliのバージョンが次のバージョンより前でないことを確認してください。

  • Linux: 1.2.0.48

  • Windows: 1.1.0.48

  • macOS: 1.3.0.48

ali-instance-cliに関するログを表示するにはどうすればよいですか?

ali-instance-cliを使用しているときにエラーが発生した場合は、ログを表示して問題を特定し、トラブルシューティングすることができます。

  • ali-instance-cliのログを表示します。 ali-instance-cliを使用すると、ali-instance-cliが存在するディレクトリにログディレクトリが生成されます。 例: ~/log/aliyun_ecs_session_log.2022XXXX ログディレクトリでali-instance-cliのログを表示できます。

  • オペレーティングシステムに基づいて、次のいずれかのディレクトリにあるCloud Assistant Agentのログを表示します。

    • Linux

      /usr/local/share/aliyun-assist/<Version number of Cloud Assistant Agent>/log/
    • Windows

      C:\ProgramData\aliyun\assist\<Version number of Cloud Assistant Agent>\log