

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# セキュアトンネルでの同時 TCP 接続の使用
<a name="multiplexing-simultaneous-tcp"></a>

AWS IoT セキュアトンネリングは、データストリームごとに複数の TCP 接続を同時にサポートします。この機能は、リモートデバイスへの同時接続が必要な場合に使用できます。同時 TCP 接続を使用すると、クライアントから複数のリクエストがあった場合にタイムアウトする可能性が低くなります。例えば、複数のコンポーネントが実行されているウェブサーバーにアクセスする場合、同時 TCP 接続を行うと、サイトのロードにかかる時間を短縮できます。

**注記**  
同時 TCP 接続の帯域幅制限は、それぞれ 1 秒あたり 800 KB です AWS アカウント。 AWS IoT セキュアトンネリングでは、受信リクエストの数に応じてこの制限を設定できます。

## ユースケースの例
<a name="tcp-use-case"></a>

送信先デバイスに対してローカルで、複数のコンポーネントが実行されているウェブサーバーにリモートにアクセスする必要があるとします。単一の TCP 接続でウェブサーバーにアクセスを試みているときに、シーケンシャルロードを行うと、サイト上のリソースのロードにかかる時間が長くなる可能性があります。同時 TCP 接続により、サイトのリソース要件を満たすことでロード時間を短縮でき、アクセス時間を短縮できます。次の図は、リモートデバイスで実行されているウェブサーバーアプリケーションへのデータストリームに対して、同時 TCP 接続がどのようにサポートされるかを示しています。

**注記**  
トンネルを使用してリモートデバイスで実行されている複数のアプリケーションにアクセスする場合は、トンネル多重化を使用できます。詳細については、「[セキュアトンネル内の複数のデータストリームを多重化する](multiplexing-multiple-streams.md)」を参照してください。

![\[TCP および WSS プロトコルを介して接続された、送信元デバイス、ローカルプロキシ、プロキシサーバー、およびウェブサーバーアプリケーションを使用する送信先デバイスを使用した IoT クラウドセットアップを示す図。\]](http://docs.aws.amazon.com/ja_jp/iot/latest/developerguide/images/tcp-tunneling.png)


## 同時 TCP 接続を使用する方法
<a name="multiple-tcp-tutorial"></a>

次の手順では、同時 TCP 接続を使用してリモートデバイスのウェブブラウザにアクセスする方法について説明します。クライアントからのリクエストが複数ある場合、 AWS IoT セキュアトンネリングはリクエストを処理するための同時 TCP 接続を自動的にセットアップするため、ロード時間が短縮されます。

1. 

**トンネルを開く**

   `OpenTunnel` API オペレーションまたは `open-tunnel` CLI コマンドを使用してトンネルを開きます。`HTTP` をサービスとして指定し、リモートデバイスに対応する AWS IoT のモノの名前を指定して、送信先を設定します。ウェブサーバーアプリケーションはこのリモートデバイスで実行されています。 AWS IoT レジストリに IoT モノを作成しておく必要があります。詳細については、「[レジストリを使用したモノの管理](thing-registry.md)」を参照してください。

   ```
   aws iotsecuretunneling open-tunnel \
   	--destination-config thingName=RemoteDevice1,services=HTTP
   ```

   このコマンドを実行すると、ローカルプロキシの実行に使用する送信元と送信先のアクセストークンが生成されます。

   ```
   {
   	"tunnelId": "b2de92a3-b8ff-46c0-b0f2-afa28b00cecd",
   	"tunnelArn": "arn:aws:iot:us-west-2:431600097591:tunnel/b2de92a3-b8ff-46c0-b0f2-afa28b00cecd",
   	"sourceAccessToken": source_client_access_token,
   	"destinationAccessToken": destination_client_access_token
   }
   ```

1. 

**ローカルプロキシを設定、起動します**

   ローカルプロキシを実行する前に、[GitHub](https://github.com/aws-samples/aws-iot-securetunneling-localproxy) からローカルプロキシソースコードをダウンロードし、選択したプラットフォーム用にビルドします。その後、送信先と送信元のローカルプロキシを起動して、セキュアトンネルに接続し、リモートウェブサーバーアプリケーションの使用を開始できます。
**注記**  
 AWS IoT 安全なトンネリングで同時 TCP 接続を使用するには、ローカルプロキシの最新バージョンにアップグレードする必要があります。 AWS IoT Device Client を使用してローカルプロキシを設定する場合、この機能は使用できません。

   ```
   // Start the destination local proxy
   ./localproxy -r us-east-1 -d HTTP=80 -t destination_client_access_token
   
   // Start the source local proxy
   ./localproxy -r us-east-1 -s HTTP=5555 -t source_client_access_token
   ```

   ローカルプロキシの設定と使用の詳細については、「[ローカルプロキシの使用方法](how-use-local-proxy.md)」を参照してください。

トンネルを使用してウェブサーバーアプリケーションにアクセスできるようになりました。 AWS IoT セキュアトンネリングは、クライアントから複数のリクエストがある場合、同時 TCP 接続を自動的にセットアップして処理します。