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

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

最終更新日:May 28, 2025

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

重要

ポート転送機能は WebSocket に基づいて実装され、TCP 経由で動作します。 TCP ポート転送のみがサポートされています。 UDP ポート転送はサポートされていません。

ポート転送とは

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

  • シナリオ 1:インターネットに接続されていないインスタンスに接続する

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

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

  • シナリオ 2:インターネットに接続されていないインスタンス上のサービスにアクセスする

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

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

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

ポート転送の仕組み

  • 次の図は、ポート転送の原則を示しています。

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

image
  • 次の図は、ali-instance-cli ツールと クラウドアシスタントクライアント の間にセッション管理チャネルを確立する方法を示しています。

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

image

準備

Session Manager を有効にする

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

  1. ECS コンソール - インスタンス に移動します。

  2. 上部のナビゲーションバーで、管理するリソースのリージョンとリソースグループを選択します。

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

  4. [その他のログイン方法を表示] をクリックします。 [Session Manager] セクションで、[セッション管理が閉じられました] の右側にあるスイッチをオンにし、画面の指示に従って Session Manager を有効にします。

    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******'

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

{
  "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 クライアント接続先のインスタンスにインストールされています

Session Manager はクラウドアシスタントに依存しています。 次のいずれかの方法を使用して、インスタンスに クラウドアシスタントクライアント がインストールされているかどうかを確認できます。

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

ECS コンソールを使用する

Session Manager はクラウドアシスタントに基づいて実装されています。 インスタンスに クラウドアシスタントクライアント をインストールする必要があります。 ECS コンソールの ECS クラウドアシスタントページで、クラウドアシスタントクライアント のステータスを表示できます。

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

image

image

クラウドアシスタントクライアントのステータスの表示と異常の処理方法については、「クラウドアシスタントのステータスを表示し、異常を処理する」をご参照ください。

Alibaba Cloud CLI を使用する

Alibaba Cloud CLI を構成している場合は、DescribeCloudAssistantStatus オペレーションを呼び出すコマンドを実行して、インスタンスにクラウドアシスタントクライアントがインストールされており、Session Manager がサポートされているかどうかを確認します。 DescribeCloudAssistantStatus オペレーションのパラメータについては、「DescribeCloudAssistantStatus」をご参照ください。

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

インスタンスにクラウドアシスタントクライアントがインストールされており、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 オペレーションを呼び出して、インスタンスにクラウドアシスタントクライアントがインストールされているかどうかを確認します。 詳細については、「DescribeCloudAssistantStatus」をご参照ください。

Session Manager を使用する RAM ユーザーの資格情報を準備する

ali-instance-cli を使用する場合、RAM ユーザーの AccessKey ペアセキュリティトークンサービス (STS) トークン を指定する必要があります。 Session Manager を使用してインスタンスに接続する場合、システムは、資格情報を持っている RAM ユーザーに ecs:StartTerminalSession 権限もあるかどうかを確認します。

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

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

CredentialsURI パラメータと STS トークン パラメータについては、「AccessKey ペアを作成する」および「STS とは」をご参照ください。

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

1. ali-instance-cli をインストールして構成する

説明

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

1.1 ali-instance-cli をインストールする

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

Windows

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

この例では、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 をインストールします。

x86 アーキテクチャ
curl -O https://aliyun-client-assist.oss-accelerate.aliyuncs.com/session-manager/linux/ali-instance-cli
Arm アーキテクチャ
curl -O https://aliyun-client-assist.oss-cn-beijing.aliyuncs.com/session-manager/linux_arm/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 シークレットで構成されます。 詳細については、このトピックの「Session Manager を使用する RAM ユーザーの資格情報を準備する」セクションをご参照ください。

Windows

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

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

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

    AccessKey ペア

    次のコマンドを実行し、プロンプトが表示されたら アクセスキー IDアクセスキーシークレットリージョン 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> を実際の リージョン IDアクセスキー IDアクセスキーシークレットセキュリティトークンサービス (STS) トークン に置き換えます。

    資格情報 URI

    次のコマンドを実行し、プロンプトが表示されたら 資格情報 URI パラメータと リージョン ID パラメータを構成します。

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

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

    image

macOS または Linux

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

    cd ~
  2. 資格情報を構成します。

    AccessKey ペア

    次のコマンドを実行し、プロンプトが表示されたら アクセスキー IDアクセスキーシークレットリージョン 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> を実際の リージョン IDアクセスキー IDアクセスキーシークレットSTS トークン に置き換えます。

    資格情報 URI

    次のコマンドを実行し、プロンプトが表示されたら 資格情報 URI パラメータと リージョン ID パラメータを構成します。

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

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

    image

2. ポート転送機能を使用する

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

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

ECS コンソールを使用する

  1. ECS コンソール - インスタンス に移動します。

  2. 上部のナビゲーションバーで、管理するリソースのリージョンとリソースグループを選択します。

  3. [インスタンス] ページで、接続するインスタンスを見つけ、インスタンス 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 パラメータは、接続するインスタンスの ID である i-bp1****** に設定されています。 -r パラメータは、インスタンスの SSH サービスである 22 に設定されています。 -l パラメータは、オンプレミスコンピュータのポート 8080 である 8080 に設定されています。

    macOS または Linux コンピュータ

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

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

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

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

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

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

    ポート転送。

    image

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

    image

使用するssh対象のali-instance-cli ツールの

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

この例では、macOS と Linux オペレーティングシステムが使用されています。
  1. .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 パラメータ値は、接続するインスタンスの ID である i-bp1****** です。 -r パラメータは、インスタンスの RDP サービスである 3389 に設定されています。 -l パラメータは、オンプレミスコンピュータのポート 8080 である 8080 に設定されています。

    macOS または Linux コンピュータ

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

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

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

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

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

    ポート転送。

    image

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

    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 パラメータは、接続するインスタンスの ID である i-bp1****** に設定されています。 -r パラメータは、インスタンスの NGINX ポートである 80 に設定されています。 -l パラメータは、オンプレミスコンピュータのポート 8080 である 8080 に設定されています。

    macOS または Linux コンピュータ

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

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

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

    ポート転送。

    image

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

    image

例 3:ECS インスタンスをジャンプサーバーとして使用して、非公開の MySQL インスタンスにアクセスする

例の説明

次の図に示すように、この例では、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 インスタンスで実行されているクラウドアシスタントクライアントがクラウドアシスタントサーバーに接続されていることを確認してください。

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

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

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

アクション

優先度

プロトコルタイプ

ポート範囲

承認オブジェクト

説明

許可

1

カスタム TCP

443

100.100.0.0/16

このポートは、クラウドアシスタントサーバーにアクセスするために使用されます。

許可

1

カスタム TCP

443

100.0.0.0/8

このポートは、クラウドアシスタントクライアント をインストールまたは更新する場合に、クラウドアシスタントクライアント インストールパッケージが保存されているサーバーにアクセスするために使用されます。

許可

1

カスタム UDP

53

0.0.0.0/0

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

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

ali-instance-cli コマンドを実行した後、DeliveryTimeout エラーが報告される場合はどうすればよいですか。配信タイムアウトali-instance-cli コマンドを実行した後にエラーが報告されますか?

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

image

image

ali-instance-cli コマンドを実行した後、「session manager is disabled, please enable first」というエラーメッセージが表示される場合はどうすればよいですか。セッション マネージャーは無効になっています。最初に有効にしてください。

session manager is disabled, please enable first というエラーメッセージが ali-instance-cli コマンドの実行後に表示された場合は、Session Managerが無効になっています。ECS コンソールで Session Manager を有効にしてください。詳細については、このトピックの「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 のログを表示できます。

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

    • Linux

      /usr/local/share/aliyun-assist/<クラウドアシスタントクライアントのバージョン番号>/log/
    • Windows

      C:\ProgramData\aliyun\assist\<クラウドアシスタントクライアントのバージョン番号>\log