Elastic Compute Service (ECS) インスタンスに複数のアプリケーションをデプロイし、各アプリケーションが一意のパブリックIPアドレスを使用する場合、NATモードで複数のelastic IPアドレス (EIP) をセカンダリelastic network interface (ENI) に関連付けることができます。 次に、セカンダリENIをECSインスタンスに関連付けます。 これにより、EIPはECSインスタンスに関連付けられます。
背景情報
セカンダリENIに複数のセカンダリプライベートIPアドレスを割り当てることができます。
セカンダリENIに割り当てることができるプライベートIPアドレスの数は、セカンダリENIのステータスと、セカンダリENIに関連付けられているECSインスタンスの仕様によって決まります。 詳細については、「セカンダリプライベートIPアドレスの割り当て」をご参照ください。
各セカンダリプライベートIPアドレスは、NATモードでEIPに関連付けることができます。
詳細については、「EIPとセカンダリENIの関連付け」をご参照ください。
ECSインスタンスにパブリックIPアドレスが割り当てられている場合、ECSインスタンスはインターネットと通信できます。 セカンダリENIを使用しない場合、各ECSインスタンスに1つの静的パブリックIPアドレスのみを割り当てるか、1つのEIPのみを関連付けることができます。
ECSインスタンスに複数のパブリックIPアドレスを割り当てるには、EIPをセカンダリENIに関連付けてから、セカンダリENIをECSインスタンスに関連付けます。 ECSインスタンスが複数のアプリケーションをホストする場合、各アプリケーションは一意のパブリックIPアドレスを使用してインターネットと通信します。 これにより、ECSインスタンスの使用率が向上します。
シナリオ
このトピックでは、次のシナリオを使用します。 企業は、WebサイトをデプロイするためにAlibaba Cloud上にECSインスタンスを作成し、EIPをECSインスタンスに関連付けました。
ビジネス要件を満たすには、ECSインスタンスに3つのサブウェブサイトをデプロイする必要があり、各サブウェブサイトは固有のEIPを使用してサービスを提供します。
セカンダリENIには、1つのプライマリプライベートIPアドレスと2つのセカンダリプライベートIPアドレスを割り当てることができます。 次に、NATモードで複数のEIPをプライベートIPアドレスに関連付けます。 これにより、ECSインスタンスは複数のEIPに関連付けられます。
前提条件
開始する前に、次の要件が満たされていることを確認してください。
リソース | 要件 | 関連ドキュメント |
Elastic Compute Service (ECS) インスタンス |
| |
セカンダリENI |
| |
EIP | 関連付けられるEIPとセカンダリENIは同じリージョンに属している必要があります。 |
クイックデプロイ方法を使用する場合、新しいインスタンスを作成するか、既存のインスタンスを使用できます。
新しいインスタンスを作成する場合、上記のリソースを作成する必要はありません。
既存のインスタンスを使用する場合は、まず上記のインスタンスを作成し、ECSインスタンスでCentOS 7.xを実行する必要があります。
手順
手動展開
手順
このトピックでは、新しいECSコンソールを例として使用します。 ナビゲーションウィンドウの左下にあるボタンをクリックすると、新しいバージョンと以前のバージョンを切り替えることができます。
このトピックの操作には、ネットワークサービスの再起動とルートの設定が含まれます。 サービスの中断を避けるため、オフピーク時に操作を実行することを推奨します。
手順1: セカンダリENIをECSインスタンスに関連付ける
にログインします。ECSコンソール.
左側のナビゲーションウィンドウで、 .
上部のナビゲーションバーで、リソースが属するリージョンとリソースグループを選択します。
セカンダリENIを見つけ、[操作] 列の [インスタンスにバインド] をクリックします。
[インスタンスにバインド] ダイアログボックスで、ECSインスタンスを選択し、[OK] をクリックします。
リストを更新します。 ステータス列にInUseが表示されている場合、セカンダリENIはECSインスタンスに関連付けられています。
セカンダリENIをECSインスタンスに関連付けることができない場合、考えられる原因は次のとおりです。
ECSインスタンスに関連付けられているセカンダリENIの数が上限に達しています。 詳細については、「インスタンスタイプの概要」をご参照ください。 インスタンス仕様をアップグレードする方法の詳細については、「インスタンス設定変更の概要」をご参照ください。
ECSインスタンスが [停止済み] 状態の場合にのみ、ECSインスタンスをセカンダリENIに関連付けることができます。 詳細については、「前提条件」をご参照ください。
手順2: セカンダリENIに複数のセカンダリプライベートIPアドレスを割り当てる
セカンダリENIに複数のセカンダリプライベートIPアドレスを割り当て、セカンダリENIをECSインスタンスに関連付けることができます。 これにより、ECSインスタンスの高い使用率とサービス可用性が保証されます。
にログインします。ECSコンソール.
左側のナビゲーションウィンドウで、 .
上部のナビゲーションバーで、リソースが属するリージョンとリソースグループを選択します。
On theENIsページ、ENIを見つけて、セカンダリプライベートIPアドレスの管理で、アクション列を作成します。
では、セカンダリプライベートIPアドレスの管理ダイアログボックスで、新しいIPの割り当てで、IPv4アドレスセクションで、必要に応じてIPアドレスを割り当て、OK.
この例では、[新しいIPの割り当て] を2回クリックします。 このようにして、2つのセカンダリプライベートIPアドレスがセカンダリENIに自動的に割り当てられます。
説明プライベートIPv4 CIDRクロック内のセカンダリプライベートIPアドレスを入力することもできます。 セカンダリプライベートIPアドレスを入力しない場合、システムはプライベートIPv4 CIDRブロックからアイドルIPアドレスを割り当てます。
割り当てられたセカンダリプライベートIPアドレスは、セカンダリENIの [プライベートIPアドレス] 列に表示されます。
ステップ3 (オプション): ECSインスタンスでのENIの設定
セカンダリENIをECSインスタンスに関連付けた後、一部のイメージがENIのIPアドレスの特定やルートの追加に失敗する場合があります。 その結果、セカンダリENIは期待どおりに機能しません。 この場合、ENIのIPアドレスを識別できるように、ECSインスタンスのセカンダリENIを設定する必要があります。
ECSインスタンスイメージが関連するセカンダリENIをサポートしているかどうかを確認する方法、およびECSインスタンスでセカンダリENIを設定する方法の詳細については、「セカンダリENIの設定」をご参照ください。
手順4: ECSインスタンスのセカンダリプライベートIPアドレスの設定
セカンダリENIをECSインスタンスに関連付けた後、ECSインスタンスのセカンダリプライベートIPアドレスを設定する必要があります。
この例では、Alibaba Cloud Linux 2を実行するECSインスタンスを使用して、ECSインスタンスのセカンダリプライベートIPアドレスを設定する方法を説明します。 他のオペレーティングシステムを実行するECSインスタンスの手順の詳細については、「セカンダリプライベートIPアドレスの割り当て」をご参照ください。
ECSインスタンスに接続します。
接続方法の詳細については、「接続方法の概要」をご参照ください。
ifconfig
コマンドを実行してサブネットマスクを照会し、route -n
コマンドを実行してデフォルトゲートウェイを照会します。出力例を次の図に示します。
netmaskに対応する
255.255.**.**
はIPv4サブネットマスクで、Gatewayに対応する172.**.**.253
はデフォルトゲートウェイです。ネットワーク設定ファイルを変更します。
vi /etc/sysconfig/network-scripts/ifcfg-eth1:0
コマンドを実行して、設定を追加します。例:
DEVICE=eth1:0 TYPE=Ethernet BOOTPROTO=static ONBOOT=yes IPADDR=<Assigned secondary private IPv4 address 1> NETMASK=<IPv4 subnet mask>
vi /etc/sysconfig/network-scripts/ifcfg-eth1:1
コマンドを実行して、設定を追加します。例:
DEVICE=eth1:1 TYPE=Ethernet BOOTPROTO=static ONBOOT=yes IPADDR=<Assigned secondary private IPv4 address 2> NETMASK=<IPv4 subnet mask>
次のコマンドを実行してネットワークサービスを再起動し、設定を有効にします。
service network restart
を実行します。Run the
ifconfig
コマンドを実行して、設定結果を表示します。次の図は、2つのセカンダリプライベートIPアドレスを設定するために使用されるコマンドの出力を示しています。
手順5: EIPをセカンダリプライベートIPアドレスに関連付ける
Elastic IP Addressコンソールにログインします。
Elastic IP アドレス ページで、作成したEIPを見つけ、アクション 列の リソースと関連付ける をクリックします。
[EIPとリソースの関連付け] ダイアログボックスで、次のパラメーターを設定し、OK をクリックします。
インスタンスタイプ: サブネットワークインターフェイス を選択します。
重要[サブネットワークインターフェイス] を選択します。 ECSインスタンスを選択した場合、EIPをセカンダリプライベートIPアドレスに関連付けることはできません。
リソースグループ: セカンダリENIが属するリソースグループを選択します。
モード: NAT Mode を選択します。
関連付けるインスタンスを選択してください: セカンダリプライベートIPアドレスを選択します。 セカンダリプライベートIPアドレスは、セカンダリENIの [プライベートIPアドレス] 列に表示されます。
この例では、セカンダリENIのプライマリプライベートIPアドレスが選択されています。
上記の手順を繰り返して、他の2つのEIPをセカンダリENIのセカンダリプライベートIPアドレスに関連付けます。
ステップ6: ルートの設定
この例では、Alibaba Cloud Linux 2を実行するECSインスタンスを使用して、ECSインスタンスのルートを設定する方法を説明します。 他のオペレーティングシステムを実行するECSインスタンスの手順の詳細については、「手順4 (オプション): ルートの設定」をご参照ください。
ECSインスタンスのセカンダリENIのルートの設定
ECSインスタンスに接続します。
接続方法の詳細については、「接続方法の概要」をご参照ください。
次のコマンドを実行して、ルート情報を照会します。
route -n
プライマリENI (eth0) とセカンダリENI (eth1) の次のルート情報が返されます。
次のコマンドを実行して、デフォルトルートを設定します。
ip -4 route add default via 172.16.**.253 dev eth1 metric 1001 && \ ip -4 route add default via 172.16.**.253 dev eth1 table 1001 && \ ip -4 rule add from 172.16.**.*57 lookup 1001 && \ ip -4 rule add from 172.16.**.*77 lookup 1001 && \ ip -4 rule add from 172.16.**.*78 lookup 1001
説明上記のコマンドは、eth1にデフォルトルートを追加し、ルートテーブルを作成し、ルートテーブルに関連付けられた3つのルーティングポリシーを関連付けます。
テーブル1001
はルートテーブルです (デフォルトルートのメトリック値と一致します) 。172.16.**253
ゲートウェイのIPアドレスです。172.16.*.* 57
eth1のプライマリプライベートIPアドレスです。172.16.**.* 77
と172.16.**.* 78
はeth1の2つのセカンダリプライベートIPアドレスです。 実際の情報に基づいてパラメーターを指定します。次のコマンドを実行して、作成されたルートテーブルとルーティングポリシーを表示します。
ip route list table 1001 && \ ip rule list
次の出力が返されると、ルートテーブルとルーティングポリシーが作成されます。
オプション: 既存のルートが要件を満たしていない場合は、ルートテーブルとルールを設定できます。
ルートテーブルとルールを設定して、指定したゲートウェイを介してトラフィックを転送できるルーティングポリシーを実装できます。 これにより、よりきめ細かい方法でネットワークトラフィックを制御および管理できます。
インスタンス起動時の自動ルート更新の設定
セカンダリENIのルートを設定した後、インスタンスの起動時に自動ルート更新を設定する必要があります。 そうでなければ、ルートは無効になる。
次のコマンドを実行して、
/etc/rc.local
ファイルを開きます。vim /etc/rc.local
I
キーを押して編集モードに入り、次の内容を追加し、Esc
キーを押して編集モードを終了し、:wq
と入力して保存して終了します。ip -4 route add default via 172.16.**.253 dev eth1 metric 1001 ip -4 route add default via 172.16.**.253 dev eth1 table 1001 ip -4 rule add from 172.16.**.*57 lookup 1001 ip -4 rule add from 172.16.**.*77 lookup 1001 ip -4 rule add from 172.16.**.*78 lookup 1001
次のコマンドを実行して、
/etc/rc.local
ファイルに対する実行権限を付与します。sudo chmod + x /etc/rc.local
ステップ7: ネットワーク接続のテスト
この例では、Alibaba Cloud Linux 2を実行するECSインスタンスを使用して、ECSインスタンスとターゲットネットワーク間の接続をテストする方法を説明します。
ECSインスタンスにログインします。
接続方法の詳細については、「接続方法の概要」をご参照ください。
次のコマンドを実行して、セカンダリプライベートIPアドレスと宛先ネットワーク間の接続を確認します。
ping <Destination network> -I <Secondary private IP address>
結果は、セカンダリプライベートIPアドレスが宛先ネットワークにアクセスできることを示しています。これは、セカンダリプライベートIPアドレスがEIPに関連付けられていることを示しています。
クイック展開
Resource Orchestration Service (ROS) を使用してクイックデプロイメントを実装できます。これにより、複数のEIPをECSインスタンスにすばやく関連付けることができます。
クイックデプロイ機能を使用すると、3つのEIPをECSインスタンスに関連付けることができます。 より柔軟な構成ソリューションが必要な場合は、[手動展開] を選択することを推奨します。
[テンプレート] をクリックして、Resource Orchestration Service (ROS) コンソールに移動します。
上部のナビゲーションバーで、EIPのリージョンを選択します。
[テンプレートパラメーターの設定] ウィザードページで、スタック名を入力し、[既存のECS/EIP/ENIを使用] または [ECS/EIP/ENIの作成] を選択し、次のパラメーターを設定し、[作成] をクリックします。
[既存のECS/EIP/ENIを使用] を選択: ECSインスタンスを選択し、セカンダリENI IDと3つのEIP IDを入力します。
[ECS/EIP/ENIの作成] を選択した場合、ゾーン、インスタンスタイプ、およびシステムディスクタイプを選択し、パスワードを入力する必要があります。
[スタック情報] タブの [ステータス] セクションで、[作成] を [作成済み] に変更した場合、リソースがデプロイされます。
ECSインスタンスにログインします。
接続方法の詳細については、「接続方法の概要」をご参照ください。
次のコマンドを実行して、セカンダリプライベートIPアドレスと宛先ネットワーク間の接続を確認します。
ping <宛先ネットワーク> -I <セカンダリプライベートIPアドレス>
結果は、セカンダリプライベートIPアドレスが宛先ネットワークにアクセスできることを示しています。これは、セカンダリプライベートIPアドレスがEIPに関連付けられていることを示しています。
よくある質問
私は請求されていますか?EIP 関連付けた後の設定料金EIPセカンダリENIで?
サブスクリプションEIPのEIP設定料金は請求されません。
従量課金EIPをセカンダリENIに関連付けると、EIP設定料金 (パブリックIP保持料金) が課金されます。
EIPをENIに関連付け、ENIをECSインスタンスに関連付けた後、追加の設定を実行する必要がありますか?
Webサイトなどのサービスを提供するアプリケーションがECSインスタンスにデプロイされている場合、ECSインスタンスまたはVPCでルートを設定する必要はありません。 セカンダリENIに関連付けられたEIPを使用して、サービスを提供できます。
ECSインスタンスをインターネットにアクセスする場合は、ECSインスタンスのデフォルトルートを設定するか、ECSインスタンスの特定のルートを作成する必要があります。 デフォルトでは、プライマリENIを使用してパケットをインターネットに転送します。 セカンダリENIを使用してパケットを転送するようにルート優先度を調整できます。 特定のルートを作成して、複数のENIまたはランダムなENIからインターネットにパケットを転送し、負荷分散を実装することもできます。
詳細は、「ルートの設定」をご参照ください。
関連ドキュメント
EIPクォータの管理: 各Alibaba Cloudアカウントは、最大20のEIPを申請できます。 さらにEIPが必要な場合は、EIPクォータを増やすことができます。
AssociateEipAddress: EIPを同じリージョンのインスタンスに関連付けます。