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

Elastic Compute Service:ali-instance-cliを使用したポート転送の実行

最終更新日:Aug 20, 2024

Session Managerは、Cloud Assistantが提供する機能で、安全で便利な方法でElastic Compute Service (ECS) インスタンスに接続できます。 ali-instance-cliは、Session Managerが提供するCLIツールです。 このトピックでは、ali-instance-cliを使用して、コンピューターのポートからECSインスタンスにネットワークトラフィックを転送する方法について説明します。

前提条件

  • 接続するインスタンスにCloud Assistant Agentがインストールされています。 インスタンスがWindowsインスタンスの場合、インストールされるCloud Assistant Agentのバージョンは2.1.3.256以降である必要があります。 インスタンスがLinuxインスタンスの場合、インストールされるCloud Assistant Agentのバージョンは2.2.3.256以降である必要があります。 Cloud Assistant Agentのインストール方法については、「Cloud Assistant Agentのインストール」をご参照ください。

  • セッションマネージャーが有効です。 Session Managerを有効にする方法については、「Session Managerを使用したインスタンスへの接続」をご参照ください。

背景情報

ali-instance-cliを使用してECSインスタンスへのポート転送を設定する場合、インスタンスのパブリックIPアドレスを指定する必要はありませんが、インスタンスのIDとポート番号を指定する必要があります。 次に、Session Manager Clientを使用して、コンピュータのポートからECSインスタンスの指定されたポートにネットワークトラフィックを転送できます。 これにより、ECSインスタンス上のサービスに安全かつ便利な方法でアクセスできます。 セッションマネージャーの詳細については、「セッションマネージャー」をご参照ください。

LinuxおよびmacOSオペレーティングシステム

説明

この例では、テストユーザーが使用されます。 実行する必要がある操作は、実際のユーザーとディレクトリによって異なる場合があります。

  1. Session Managerクライアントにログインします。

  2. Session Manager Clientにali-instance-cliをインストールします。

    オペレーティングシステムに基づいて次のいずれかのコマンドを実行し、ali-instance-cliをインストールします。

    • Linux

      curl -O https://aliyun-client-assist.oss-accelerate.aliyuncs.com/session-manager/linux/ali-instance-cli
      chmod a+x ali-instance-cli
    • macOS:

      curl -O https://aliyun-client-assist.oss-accelerate.aliyuncs.com/session-manager/mac/ali-instance-cli
      chmod a+x ali-instance-cli
  3. AccessKeyペア、Security Token Service (STS) トークン、またはCredentialsURIを設定します。

    AccessKeyペアまたはSTSトークンの取得方法については、「AccessKeyペアの作成」または「STSとは」をご参照ください。

    1. testディレクトリに切り替えます。

      cd /home/test
    2. 認証方法を設定します。

      次の認証方法がサポートされています。

      • AccessKeyペアベースの認証

        次のコマンドを実行し、プロンプトに従ってAccessKey ID、AccessKey secret、およびリージョンIDを入力します。

        ./ali-instance-cli configure --mode AK
      • STSトークンベースの認証

        説明

        次のコマンドで、regionaksk、およびtokenを実際のリージョンID、AccessKey ID、AccessKey secret、およびSTSトークンに置き換えます。

        ./ali-instance-cli configure set --mode StsToken --region "region" --access-key-id "ak"  --access-key-secret "sk"   --sts-token "token"
      • CredentialsURIベースの認証

        次のコマンドを実行し、プロンプトに従ってCredentialsURIとRegionIDを指定します。

        説明

        CredentialsURIの値を、構成する認証サーバーのIPアドレスに設定します。

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

      次のコマンド出力は、AccessKeyペアベースの認証方法が設定されていることを示しています。鉴权成功.png

  4. 次のコマンドを実行して、コンピュータのポートからECSインスタンスのポートにネットワークトラフィックを転送します。

    ./ali-instance-cli portforward -i "instance id" -l 8080 -r 80
    説明

    この例では、Session Managerを使用してポート転送を実行する方法を示します。 この例では、コンピューターのポート8080とECSインスタンスのポート80が使用されます。 ビジネス要件に基づいて他のポートを指定できます。 インスタンスidを実際のインスタンスIDに置き換えます。

    次のコマンド出力は、Session Managerによって、コンピューターの指定されたポートからECSインスタンスの指定されたポートへの転送パスが確立されていることを示しています。Linux端口转发

  5. 次のコマンドを実行して、コンピューターのポートからECSインスタンスにアクセス可能な特定のホストのポートにネットワークトラフィックを転送します。

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

    • Linux: 1.2.0.48

    • macOS: 1.3.0.48

    ./ali-instance-cli portforward -i "instance-id" -l 8080 -r <IP>:80
    説明

    この例では、コンピューターのポート8080と、ECSインスタンスにアクセス可能な特定のホストのポート80が使用されます。 ビジネス要件に基づいて他のポートを指定できます。 instance-idを実際のインスタンスIDに置き換えます。 <IP> を、アクセスするホストのIPアドレスに置き換えます。

    次のコマンド出力は、Session Managerによって、コンピューターの指定されたポートから宛先ホストの指定されたポートへの転送パスが確立されていることを示しています。

    image

Windows オペレーティングシステム

説明

この例では、テストユーザーが使用されます。 実行する必要がある操作は、実際のユーザーとディレクトリによって異なる場合があります。

  1. Session Managerクライアントにログインします。

    詳細については、「接続方法の概要」をご参照ください。

  2. Session Manager Clientにali-instance-cliをダウンロードします。

    ali-instance-cli.exe for Windowsをダウンロードして、コンピュータのディレクトリに保存します。 この例では、C:\Users\testディレクトリが使用されています。

  3. AccessKeyペアまたはSTSトークンを設定します。

    AccessKeyペアまたはSTSトークンの取得方法については、「AccessKeyペアの作成」または「STSとは」をご参照ください。

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

    2. testディレクトリに切り替えます。

      cd C:\Users\test
    3. 認証方法を設定します。

      次の認証方法がサポートされています。

      • AccessKeyペアベースの認証

        次のコマンドを実行し、プロンプトに従ってAccessKey ID、AccessKey secret、およびリージョンIDを入力します。

        ali-instance-cli.exe configure -- mode AK
      • STSトークンベースの認証

        説明

        次のコマンドで、regionaksk、およびtokenを実際のリージョンID、AccessKey ID、AccessKey secret、およびSTSトークンに置き換えます。

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

      次のコマンド出力は、AccessKeyペアベースの認証方法が設定されていることを示しています。

      image

  4. 次のコマンドを実行して、コンピュータのポートからECSインスタンスのポートにネットワークトラフィックを転送します。

    ali-instance-cli.exe portforward -i "instance id" -l 8080 -r 80
    説明

    この例では、Session Managerを使用してポート転送を実行する方法を示します。 この例では、コンピューターのポート8080とECSインスタンスのポート80が使用されます。 ビジネス要件に基づいて他のポートを指定できます。 インスタンスidを実際のインスタンスIDに置き換えます。

    次のコマンド出力は、Session Managerによって、コンピューターの指定されたポートからECSインスタンスの指定されたポートへの転送パスが確立されていることを示しています。Windows端口转发

  5. 次のコマンドを実行して、コンピューターのポートからECSインスタンスにアクセス可能な特定のホストのポートにネットワークトラフィックを転送します。

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

    ali-instance-cli.exe portforward -i "instance-id" -l 8080 -r <IP>:80
    説明

    この例では、コンピューターのポート8080と、ECSインスタンスにアクセス可能な特定のホストのポート80が使用されます。 ビジネス要件に基づいて他のポートを指定できます。 instance-idを実際のインスタンスIDに置き換えます。 <IP> を、アクセスするホストのIPアドレスに置き換えます。

    次のコマンド出力は、Session Managerによって、コンピューターの指定されたポートから宛先ホストの指定されたポートへの転送パスが確立されていることを示しています。

    image

ユースケース: ECSインスタンス上のMySQLサービスにアクセスする

MySQLサービスがECSインスタンスでポート3306を使用していると仮定します。 Session Manager Clientがインストールされているコンピュータは、Linuxオペレーティングシステムを実行します。 ali-instance-cliを使用して、コンピューターのポート33306からECSインスタンスのサービスにアクセスできます。

  1. 次のコマンドを実行して、コンピュータのポート33306からECSインスタンスのポート3306にネットワークトラフィックを転送します。

    . /ali-instance-cli portforward -i "instance id" -l 33306 -r 3306

    次のコマンド出力は、Session Managerによって、コンピューターの指定されたポートからECSインスタンスの指定されたポートへの転送パスが確立されていることを示しています。连接MySQL

  2. 次のコマンドを実行して、コンピューターからECSインスタンスのMySQLサービスにアクセスします。

    mysql -uroot -h127.0.0.1 -ppassword -- port=33306
    説明

    passwordをMySQLパスワードに置き換えます。

    次のコマンド出力は、ECSインスタンス上のMySQLサービスがアクセスされていることを示しています。访问MySQL服务

    ali-instance-cliログは、MySQLクライアントによって開始された接続である新しい接続が受け入れられたことを示します。CLI日志

  3. exitコマンドを実行して、MySQLへの接続を閉じます。

    exit

    ali-instance-cliログは、接続が閉じられていることを示します。连接已关闭

よくある質問

Session Manager Clientを使用しているときにエラーが発生した場合は、ログを表示して問題を特定および分析できます。

  • Session Managerクライアントの現在の時刻に生成されたログを表示します。 例: /home/test/log/aliyun_ecs_session_log.2022XXXX

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

    • Linux

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

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

Session Manager Clientを使用してインスタンスに接続するときにSession Managerが有効になっていない場合、ssh_exchange_identification: Connection closed by remote hostエラーメッセージが表示されます。 さらに、セッションマネージャーは無効です。有効にしてください最初のエントリがsession managerクライアントログに表示されます。 ECSコンソールでSession Managerを有効にできます。 詳細については、「Session Managerを使用したインスタンスへの接続」をご参照ください。