

 AWS Cloud9 は新規顧客には利用できなくなりました。 AWS Cloud9 の既存のお客様は、通常どおりサービスを引き続き使用できます。[詳細はこちら](https://aws.amazon.com/blogs/devops/how-to-migrate-from-aws-cloud9-to-aws-ide-toolkits-or-aws-cloudshell/)

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

# 実行中のアプリケーションをインターネット経由で共有する
<a name="app-preview-share"></a>

実行中のアプリケーションをプレビューした後、インターネット経由で他の人が利用できるようにすることができます。

Amazon EC2 インスタンスが環境に接続されている場合は、次の手順に従います。それ以外の場合は、サーバーのドキュメントを参照してください。

**Topics**
+ [ステップ 1: インスタンスの ID と IP アドレスを取得する](#app-preview-share-get-metadata)
+ [ステップ 2: インスタンスのセキュリティグループを設定する](#app-preview-share-security-group)
+ [ステップ 3: インスタンスのサブネットをセットアップする](#app-preview-share-subnet)
+ [ステップ 4: 実行中のアプリケーションの URL を共有する](#app-preview-share-url)

## ステップ 1: インスタンスの ID と IP アドレスを取得する
<a name="app-preview-share-get-metadata"></a>

このステップでは、環境に接続されている Amazon EC2 インスタンスのインスタンス ID とパブリック IP アドレスを書き留めます。着信アプリケーションリクエストを許可するには、後のステップでインスタンス ID が必要になります。次に、パブリック IP アドレスを他のユーザーと共有して、実行中のアプリケーションにアクセスできるようにします。

1. Amazon EC2 インスタンスの ID を取得します。これを取得するには、次のいずれかを実行します。
   + 環境の IDE AWS Cloud9 のターミナルセッションで、次のコマンドを実行して Amazon EC2 インスタンスの ID を取得します。

     ```
     curl http://169.254.169.254/latest/meta-data/instance-id
     ```

     インスタンス ID の形式は `i-12a3b456c789d0123` です。このインスタンス ID を書き留めます。
   + 環境の IDE でメニューバーのユーザーアイコンを選択し、[**Manage EC2 Instance** (EC2 インスタンスの管理)] を選択します。  
![\[IDE AWS Cloud9 からインスタンスを管理することを選択する\]](http://docs.aws.amazon.com/ja_jp/cloud9/latest/user-guide/images/console-manage-instance.png)

     表示される Amazon EC2 コンソールで、[**Instance ID (インスタンス ID)**] 列に表示されるインスタンス ID を書き留めます。インスタンス ID の形式は `i-12a3b456c789d0123` です。

1. Amazon EC2 インスタンスのパブリック IP アドレスを取得します。これを取得するには、次のいずれかを実行します。
   + 環境の IDE で、メニューバーの [**共有**] を選択します。[**Share this environment (この環境を共有)**] ダイアログボックスで、[**Application (アプリケーション)**] ボックスのパブリック IP アドレスを書き留めます。パブリック IP アドレスの形式は `192.0.2.0` です。
   + 環境の IDE のターミナルセッションで、次のコマンドを実行して Amazon EC2 インスタンスのパブリック IP アドレスを取得します。

     ```
     curl http://169.254.169.254/latest/meta-data/public-ipv4
     ```

     パブリック IP アドレスの形式は `192.0.2.0` です。このパブリック IP アドレスをメモします。
   + 環境の IDE でメニューバーのユーザーアイコンを選択し、[**Manage EC2 Instance** (EC2 インスタンスの管理)] を選択します。表示される Amazon EC2 コンソールの [**説明**] タブで、[**IPv4 パブリック IP**] フィールドのパブリック IP アドレスを書き留めます。パブリック IP アドレスの形式は `192.0.2.0` です。
**注記**  
アプリケーションのパブリック IP アドレスは、アプリケーションのインスタンスが再起動するたびに変わる可能性があります。IP アドレスの変更を防ぐには、Elastic IP アドレスを割り当てます。次に、そのアドレスを実行中のインスタンスに割り当てます。手順については、「*Amazon EC2 ユーザーガイド*」の「[Elastic IP アドレスの割り当て](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html#using-instance-addressing-eips-allocating)」および「[Elastic IP アドレスを実行中のインスタンスに関連付ける](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html#using-instance-addressing-eips-associating)」を参照してください。Elastic IP アドレスを割り当てると、 AWS アカウント に料金が発生する可能性があります。詳細については、「[Amazon EC2 の料金表](https://aws.amazon.com/ec2/pricing/)」を参照してください。

## ステップ 2: インスタンスのセキュリティグループを設定する
<a name="app-preview-share-security-group"></a>

このステップでは、Amazon EC2 コンソールで、環境に接続されているインスタンスの Amazon EC2 セキュリティグループを設定します。ポート 8080、8081、または 8082 経由での着信 HTTP リクエストを許可するように設定します。

**注記**  
ポート `8080`、`8081`、または `8082` 経由で HTTP を使用して実行することは必須ではありません。ただし、そうしないと、IDE 内から実行中のアプリケーションをプレビューすることはできません。詳細については、「[実行中のアプリケーションのプレビュー](app-preview.md#app-preview-preview-app)」を参照してください。別のプロトコルやポートで実行している場合は、このステップで置き換えてください。  
追加のセキュリティレイヤーについては、インスタンスが使用できる VPC 内のサブネットにネットワークアクセスコントロールリスト (ACL) を設定します。セキュリティグループとネットワーク ACL の詳細については、以下を参照してください。  
 [ステップ 3: インスタンスのサブネットをセットアップする](#app-preview-share-subnet) 
 *Amazon VPC ユーザーガイド*の[セキュリティ](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Security.html)
 *Amazon VPC ユーザーガイド*の[VPC のセキュリティグループ](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-security-groups.html)
 *Amazon VPC ユーザーガイド* の[ネットワーク ACL](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html)

1. 環境の IDE でメニューバーのユーザーアイコンを選択し、[**Manage EC2 Instance** (EC2 インスタンスの管理)] を選択します。次に、この手順のステップ 3 にスキップします。

1. この手順で「**EC2 インスタンスを管理する**」ステップや他のステップを選択したときにエラーが表示された場合は、 AWS アカウントの管理者の認証情報を使用して Amazon EC2 コンソールにサインインします。次に、以下の手順を実行します。これを実行できない場合は、 AWS アカウント 管理者にお問い合わせください。

   1. まだサインインしていない場合は、[https://console.aws.amazon.com/](https://console.aws.amazon.com/) AWS マネジメントコンソール で にサインインします。

   1. Amazon EC2 コンソールを開きます。これを行うには、ナビゲーションバーで、**[Services]** (サービス) を選択します。次に、**[EC2]** を選択します。

   1. ナビゲーションバーで、環境 AWS リージョン がある を選択します。

   1. [**EC2 ダッシュボード**] が表示された場合は、[**実行中のインスタンス**] を選択します。表示されない場合は、サービスナビゲーションペインで **[Instances]** (インスタンス) を展開し (まだ展開していない場合)、**[Instances]** (インスタンス) を選択します。

   1. インスタンスのリストで、前にメモしたインスタンス ID と一致する**インスタンス ID** のインスタンスを選択します。

1. インスタンスの **[Description]** (説明) タブで、**[Security groups]**] (セキュリティグループ) の横のセキュリティグループリンクを選択します。

1. セキュリティグループを表示した状態で、[**インバウンド**] タブを確認します。[**タイプ**] が [**カスタム TCP ルール**]、[**ポート範囲**] が [**8080**]、[**8081**]、または [**8082**] に設定されているルールが既に存在する場合は、[**キャンセル**] を選択して、「[ステップ 3: インスタンスのサブネットをセットアップする](#app-preview-share-subnet)」にスキップします。それ以外の場合は、[**編集**] を選択します。

1. [**インバウンドのルールの編集**] ダイアログボックスで、[**ルールの追加**] をクリックします。

1. [**タイプ**] で [**カスタム TCP ルール**] を選択します。

1. **[Port Range]** (ポート範囲) に、`8080`、`8081`、または `8082` と入力します。

1. **[ソース]** で、**[任意の場所]** を選択します。
**注記**  
[**ソース**] で [**任意の場所**] を選択すると、任意の IP アドレスからの着信リクエストを許可することになります。これを特定の IP アドレスに制限するには、**[Custom]** (カスタム) を選択して IP アドレス範囲を入力します。または、**[My IP]** (マイ IP) を選択して、自分の IP アドレスからのリクエストのみに制限します。

1. **[保存]** を選択します。

## ステップ 3: インスタンスのサブネットをセットアップする
<a name="app-preview-share-subnet"></a>

Amazon EC2 コンソールおよび Amazon VPC コンソールを使用して、環境に接続されている Amazon EC2 インスタンスのサブネットを設定します。次に、ポート 8080、8081、または 8082 経由での着信 HTTP リクエストを許可します。

**注記**  
ポート `8080`、`8081`、または `8082` 経由で HTTP を使用して実行することは必須ではありません。ただし、そうしないと、IDE 内から実行中のアプリケーションをプレビューすることはできません。詳細については、「[実行中のアプリケーションのプレビュー](app-preview.md#app-preview-preview-app)」を参照してください。別のプロトコルまたはポートで実行している場合は、このステップで置き換えてください。  
このステップでは、インスタンスが使用できる Amazon VPC 内のサブネットに対してネットワーク ACL を設定する方法について説明します。これは必須ではありませんが、お勧めします。ネットワーク ACL を設定すると、別のセキュリティレイヤーが追加されます。ネットワーク ACL の詳細については、以下を参照してください。  
 *Amazon VPC ユーザーガイド*の[セキュリティ](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Security.html)
 *Amazon VPC ユーザーガイド*の[ネットワーク ACL](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-network-acls.html)

1. Amazon EC2 コンソールのサービスナビゲーションペインで、**[Instances]** (インスタンス) を展開し (まだ展開していない場合)、**[Instances]** (インスタンス) を選択します。

1. インスタンスのリストで、前にメモしたインスタンス ID と一致する**インスタンス ID** のインスタンスを選択します。

1. インスタンスの [**説明**] タブで [**サブネット ID**] の値を書き留めます。サブネット ID の形式は `subnet-1fab8aEX` です。

1. Amazon VPC コンソール を開きます。これを行うには、 AWS ナビゲーションバーで**サービス**を選択し、**VPC** を選択します。

   このステップでは、 AWS アカウントで管理者の認証情報を使用して Amazon VPC コンソールにサインインすることをお勧めします。これができない場合は、 AWS アカウント 管理者に確認してください。

1. [**VPC ダッシュボード**] が表示されている場合は、[**サブネット**] を選択します。それ以外の場合は、サービスナビゲーションペインで [**サブネット**] を選択します。

1. サブネットのリストで、前にメモしたサブネット ID と一致する**サブネット ID** のサブネットを選択します。

1. **[Summary]** (概要) タブで、**[Network ACL]** (ネットワーク ACL) の横にあるネットワーク ACL のリンクを選択します。

1. ネットワーク ACL の一覧で、ネットワーク ACL を選択します (ネットワーク ACL は 1 つしかありません)。

1. [**インバウンドのルール**] タブで、ネットワーク ACL を確認します。**[タイプ]**が **HTTP\$1 (8080)**、 **HTTP\$1 (8081)**、または **HTTP\$1 (8082)** に設定されているルールがすでに存在する場合は、[ステップ 4: 実行中のアプリケーションの URL を共有する](#app-preview-share-url) に進みます。それ以外の場合は、[**編集**] を選択します。

1. ［**別のルールの追加**］を選択します。

1. **[Rule \$1]** (ルール番号) にルール番号 (`200` など) を入力します。

1. [**タイプ**] で [**カスタム TCP ルール**] を選択します。

1. [**ポート範囲**] に「`8080`」、「`8081`」、または「`8082`」と入力します。

1. [**ソース**] に、着信リクエストを許可する IP アドレスの範囲を入力します。例えば、任意の IP アドレスからの着信リクエストを許可するには、「`0.0.0.0/0`」と入力します。

1. [**許可/拒否**] を [**許可**] に設定して、[**保存**] を選択します。

## ステップ 4: 実行中のアプリケーションの URL を共有する
<a name="app-preview-share-url"></a>

アプリケーションを実行したら、アプリケーションの URL を与えることで、アプリケーションを他のユーザーと共有できます。そのためには、先ほどメモしておいたパブリック IP アドレスが必要になります。アプリケーションの完全な URL を記述するには、アプリケーションのパブリック IP アドレスを正しいプロトコルで開始してください。次に、アプリケーションポートがアプリケーションで使用するプロトコルのデフォルトポートでない場合は、ポート番号情報を追加します。アプリケーション URL の一例は、ポート 8080 経由で HTTP を使用する `http://192.0.2.0:8080/index.html` です。

結果のウェブブラウザタブにエラーが表示されるか、何も表示されない場合は、「[IDE の外部で実行中のアプリケーションを表示できない](troubleshooting.md#troubleshooting-app-sharing)」のトラブルシューティングステップに従ってください。

**注記**  
アプリケーションのパブリック IP アドレスは、アプリケーションのインスタンスが再起動するたびに変わる可能性があります。この IP アドレスが変更されないようにするには、Elastic IP アドレスを割り当て、そのアドレスを実行中のインスタンスに割り当てます。手順については、「*Amazon EC2 ユーザーガイド*」の「[Elastic IP アドレスの割り当て](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html#using-instance-addressing-eips-allocating)」および「[Elastic IP アドレスを実行中のインスタンスに関連付ける](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html#using-instance-addressing-eips-associating)」を参照してください。Elastic IP アドレスを割り当てると、 AWS アカウント に料金が発生する可能性があります。詳細については、[Amazon EC2 の料金表](https://aws.amazon.com/ec2/pricing/)を参照してください。  
ポート `8080`、`8081`、または `8082` 経由で HTTP を使用してアプリケーションを実行することは必須ではありません。ただし、そうしないと、IDE 内から実行中のアプリケーションをプレビューすることはできません。詳細については、「[実行中のアプリケーションのプレビュー](app-preview.md#app-preview-preview-app)」を参照してください。  
例えば、要求されたプロトコルまたはポート経由のトラフィックをブロックする VPN から送信されたリクエストがあるとします。この場合、これらのリクエストはアプリケーションの URL へのアクセスに失敗する可能性があります。リクエストは、要求されたプロトコルやポート経由のトラフィックを許可する別のネットワークから行う必要があります。詳細については、ネットワーク管理者にお問い合わせください。  
IDE のアプリケーションプレビュータブの URL を他のユーザーと共有することはお勧めしません。(この URL の形式は です`https://12a34567b8cd9012345ef67abcd890e1.vfs.cloud9.us-east-2.amazonaws.com/`。 この形式では、 `12a34567b8cd9012345ef67abcd890e1`は が環境に割り当てる ID です AWS Cloud9 。 `us-east-2`は環境の の ID AWS リージョン です。) この URL を使用するには、環境の IDE が開いており、アプリケーションが同じウェブブラウザで実行されている必要があります。