NAT Gateway を使ってみた -SNAT編-

こんにちは。
ネクストスケープの開發@mamikaihatsu)です。

ECSを管理している時、パブリックIPが必要な場合があります。
ECS1つ1つにEIPをバインドさせる必要もなかったり、
Outbound パブリックIP や Inbound パブリックIPのみだったり、それぞれ別IPで管理したい時ってありますよね。
そんな時に NAT Gateway を活用できます。

Alibaba Cloud NAT Gatewayには、SNAT と DNAT の機能が提供されております。
まずは今回、SNATを紹介したいと思います。

そもそも、NAT Gateway とは・・?


NAT Gateway とは

NAT プロキシサービス (SNAT & DNAT) を提供するエンタープライズクラスのインターネットゲートウェイです。
VPCは1つのNAT Gatewayのみ利用可能。
EIPにバインドさせて利用し、EIPは最大10個までバインド可能。
1つのEIPを、SNAT エントリと DNAT エントリの両方にバインドする事は不可。

SNAT(送信元 NAT)

インターネットプロキシサービスを提供し、
vSwitch内のECSが割り当てられたパブリックIPを介してインターネットへのアクセスが可能になる。
利用用途として、InboundのパブリックIPを持たせたくない場合や、SLBバックエンドのECSがサードパーティ製品利用やライセンスサーバーアクセスでインターネットアクセスが必要時等

ECSにすでにパブリックIP(EIPなど)を設定済みの場合は、この設定済みのパブリックIPが使用され、SNAT経由でのアクセスにはなりません。(今回の検証でもチェックしてみます!)

DNAT(宛先NAT)

パブリックIPをプライベートIPにマッピングする事により、
インターネットからvSwitch内のECSにアクセスできるようになる。
ポート/IP マッピングをサポート。
利用用途として、サービスをインターネットに公開する場合など


※DNATは次回やります。

では、NAT Gateway のSNATを試してみましょう。
プライベートIPのみのECS2つをNATGateway経由でインターネットにアクセスし
OutboundのパブリックIPを調べてみようかと思います。


今回の環境

  • VPC [日本(Tokyo)] – 10.17.0.0/16
    • Vswitch – 10.17.0.0/24
      • ECS – 10.17.0.224
      • ECS – 10.17.0.225

手順

1.NATGatewayの作成

2.EIPの作成とバインド

3.SNATエントリ作成

4.OutboundのパブリックIPを確認


1.NATGatewayの作成


AlibabaCloud管理コンソールのVPCから 
NAT Gateways > NAT Gateway の作成


利用するリージョンとVPC、仕様を指定します。
※1つのVPCにつきNATGatewayは1つのみになります。


作成されました。


2.EIPの作成とバインド

NATGatewayにバインドさせるEIPを作成します。


AlibabaCloud管理コンソールのVPCから 
Elastic IP アドレス > EIP の作成


利用するリージョンと最大帯域幅、購入数量を指定し、EIPが作成します。

では、NAT Gatewayにバインドします。


先程作成したEIP の バインドをクリック。


インスタンスタイプ:NAT Gateway インスタンス
NAT Gateway インスタンス:作成したNAT Gatewayを指定

これでバインドは完了です。


3.SNATエントリの作成

バインドしたEIPに対して、ルーティング設定を行います。

NAT Gateway から設定を行います。


作成したNAT Gateway のインスタンスから、
SNATテーブル > SNAT エントリの作成


[VSwitch Granularity]タブで、VSwitchと先ほど作成したパブリックIP(EIP)を指定します。


これで設定が完了しました。


4.OutboundのパブリックIPを確認

確認を行う前に、NAT GatewayでSNATエントリ設定したVSwitch内に
EIPに直接バインド済みのECS(図のC)を1つ追加しました。
この場合に、OutboundのパブリックIPがどうなるのかも見てみましょう。


各、ECSからGIPを表示させるサイトにアクセスしてみました。

結果、AとBはNATGateway経由でインターネットにアクセスし、
Cは直接バインドしたEIPでアクセスしていることが分かります。


最後に

今回は、1つのVSwitch-EIPのみで行いましたが、
冗長化構成を行った別ZoneのVSwitchにもバインドが可能です(SNATエントリは別)
複数のECSを管理する場合は、導入を視野に入れるべきサービスですね。

次回はその逆バージョンのDNAT編をやります。