ワークロードをより適切に管理するために、仮想プライベートクラウド (VPC) 内のElastic Compute Service (ECS) インスタンスを設定して、同じNAT IPアドレスを使用してインターネットにアクセスすることができます。 このトピックでは、同じNAT IPアドレスを使用してインターネットにアクセスするようにDNAT IPマッピングが設定されているECSインスタンスを設定する方法について説明します。
前提条件
SNATエントリは、DNAT IPマッピングを使用するECSインスタンスのVPCに対して設定されます。 詳細については、「SNATエントリの作成と管理」をご参照ください。
背景情報
NAT GatewayはSNAT機能をサポートしています。 SNATは、ECSインスタンスにパブリックIPアドレスが割り当てられていない場合、VPC内のECSインスタンスがインターネットにアクセスできるようにします。
すべてのポートをマッピングするDNAT IPマッピングがVPC内のECSインスタンスに設定されている場合、ECSインスタンスは優先的にDNATエントリのelastic
IPアドレス (EIP) を使用してインターネットにアクセスします。 DNAT IPマッピングが設定されていないECSインスタンスは、NATゲートウェイが提供するSNATサービスを介してインターネットにアクセスします。
その結果、VPC内のECSインスタンスは異なるIPアドレスを使用してインターネットにアクセスするため、管理操作が複雑になります。
elastic network Interface (ENI) をECSインスタンスに関連付けることで、同じNAT IPアドレスを使用してインターネットにアクセスするようにVPC内のECSインスタンスを設定できます。
次の例では、ECSインスタンスのENIを作成し、そのENIをECSインスタンスにアタッチし、NATゲートウェイからDNAT IPマッピングエントリを削除します。 次に、NATゲートウェイのパブリックIPアドレスをENIにマップするDNATエントリを作成します。
このように、ECSインスタンスはENIを使用してインターネットからリクエストを受信し、NATゲートウェイを介してインターネットにアクセスします。
手順 1: ENI の作成
- ECS コンソールにログインします。
- 左側のナビゲーションウィンドウで、 を選択します。
- ENIを作成するリージョンを選択します。
説明 ENIとECSインスタンスは同じリージョンに属している必要があります。
- [ネットワークインタフェース] ページで、[ENI 作成] をクリックします。
- [ENIの作成] ダイアログボックスで、次のパラメーターを設定し、[OK] をクリックします。
- ENI名: ENIの名前を入力します。
- VPC: ECSインスタンスが作成されたVPCを選択します。
- VSwitch: ECSインスタンスがデプロイされているゾーンのvSwitchを選択します。
- プライマリプライベートIP: オプション。 ENIのプライマリプライベートIPv4アドレスを入力します。 IPv4アドレスは、vSwitchのCIDRブロック内のアイドルIPアドレスである必要があります。 IPv4アドレスを指定しない場合、ENIの作成後にアイドルプライベートIPv4アドレスが自動的にENIに割り当てられます。 この例では、プライマリプライベートIPアドレスは指定されていません。
- セカンダリプライベートIPアドレス: オプション。 このパラメーターは、ビジネス要件に基づいて指定できます。 この例では、Not setが選択されています。
- セキュリティグループ: 選択したVPCに対して作成されたセキュリティグループを選択します。
ステップ2: ENIをECSインスタンスに関連付ける
- ECS コンソールにログインします。
- 左側のナビゲーションウィンドウで、 を選択します。
- ENIがデプロイされているリージョンを選択します。
- [ネットワークインタフェース] ページで、管理するENIを見つけ、[操作] 列の [インスタンスにバインド] をクリックします。
- 表示されるダイアログボックスで、ENIを関連付けるECSインスタンスを選択し、[OK] をクリックします。
ステップ3: DNAT IPマッピングエントリを削除する
- NAT Gatewayコンソールにログインします。
- NATゲートウェイがデプロイされているリージョンを選択します。
- [NAT Gateway] ページで、管理するNATゲートウェイを見つけ、[操作] 列の [DNAT の構成] をクリックします。
- [DNAT の管理] タブで、削除するDNATエントリを見つけ、[操作] 列の [削除] をクリックします。
- 表示されたメッセージボックスで、[OK] をクリックします。
ステップ4: 新しいDNATエントリを作成する
NATゲートウェイのパブリックIPアドレスをECSインスタンスのENIにマッピングするDNATエントリを作成するには、次の操作を実行します。
- NAT Gatewayコンソールにログインします。
- [NAT Gateway] ページで、管理するNATゲートウェイを見つけ、[アクション] 列の [DNAT の構成] をクリックします。
- [DNAT管理] タブで、[DNAT エントリの作成] をクリックします。
- [DNAT エントリの作成] ページで、次のパラメーターを設定し、[OK] をクリックします。
- パブリックIPアドレスの選択: 使用可能なパブリックIPアドレスを選択します。
- プライベートIPアドレスの選択: ECSインスタンスまたはENIを選択します。
- ポートの設定: 任意のポートを選択します。
- エントリ名: DNATエントリの名前を入力します。
ステップ5: ネットワーク接続の確認
次の操作を実行して、ECSインスタンスがENIに関連付けられているEIPを使用してインターネットからリクエストを受信できるかどうかを確認します。 この例では、オンプレミスのLinuxマシンを使用してECSインスタンスにリモート接続します。
説明 ECSインスタンスにリモート接続するには、ECSインスタンスのセキュリティグループルールがSSHポート22のネットワークトラフィックを許可していることを確認します。
詳細については、「セキュリティグループルールの追加」をご参照ください。
- オンプレミスLinuxマシンにログインします。
ssh root @ public IP
コマンドを実行し、ECSインスタンスのパスワードを入力して、ECSインスタンスにリモート接続できるかどうかを確認します。 次のメッセージが表示された場合、ECSインスタンスに接続されています。Alibaba Cloud Elastic Compute Serviceへようこそ!
次の操作を実行して、ECSインスタンスがNATゲートウェイによって提供されるSNATサービスを介してインターネットにアクセスできるかどうかを確認します。 ECSインスタンスのNAT IPアドレスを表示するには、次の手順を実行します。
- ECS インスタンスにログインします。
curl https://myip.ipip.net
コマンドを実行して、ECSインスタンスがインターネットへのアクセスに使用するNAT IPアドレスを確認します。 NAT IPアドレスが、ECSインスタンス用に作成されたSNATエントリのIPアドレスと同じである場合、ECSインスタンスがSNATサービスを使用してインターネットにアクセスすることが望ましいことを示します。