NATインスタンスとNATゲートウェイの違いで混乱したのでまとめます。
まずそれぞれについてとても軽く説明
#NATインスタンス
プライベートサブネットはインターネットからのアクセスを受け付けないため
パッチのダウンロードやS3やDynamoDBのようなリージョンサービスへのアクセスができません。
それを可能にするのがNATインスタンスで、実体はそのEC2インスタンス。
AWSからNATインスタンス用のAMIも提供されています。
プライベートサブネット内からのトラフィックを受け付け、
プライベートIPをNATインスタンスのグローバルIPに変換して外との通信を可能にします。
ポイントとして、
・NATインスタンスの送信元/送信先チェック(Change Source/Dest.Check)を無効化する必要がある
・NATインスタンスにグローバルIPの割り当てが必要(EIPでもPublic IPでもOK)
グローバルIPは構成とか運用とか用途とか考えると別にEIPを割り振らなくていいパターンもあるのでしょうか。
AWSを実業務で使ったことないので想像の域を出ないです。誰かこのド素人に教えてください。
#NATゲートウェイ
2015年12月より登場したサービス。
目的はNATインスタンスと同じですが、AWSのマネージドサービスなので運用管理が必要ありません。
その点NATインスタンスはEC2インスタンスなので冗長性を持たせないと単一障害点になってしまうんだそう。
作成もNATインスタンスを作るよりも簡単です。
ポイントとして、
・EIPの割り当てが必須(割り当てできるEIPがなく、EIPの数が上限に達していると作れません)
・一般的には費用がNATインスタンスより高い(使用状況にもよる?)
#NATインスタンスとNATゲートウェイの違い
以下を参考にさせて頂きました。
・NAT インスタンスと NAT ゲートウェイの比較
・AWS NAT構成の作り方(NATインスタンス編)
・AWS NAT構成の作り方(NATゲートウェイ編)
・AWS NATゲートウェイのメリット・デメリットをまとめてみる
・NATインスタンスとNAT ゲートウェイの料金比較
一部上でも書きましたが、個人的に大事かなと思う異なるポイントは
【グローバルIP】
NATインスタンス:パブリックIPまたはEIP
NATゲートウェイ:EIPのみ
【冗長化や障害対策などの運用管理】
NATインスタンス:必要
NATゲートウェイ:マネージドサービスなので不要
【帯域幅】
NATインスタンス:選択したインスタンスタイプに依存
NATゲートウェイ:10Gbps
【セキュリティグループ】
NATインスタンス:使える(実体がEC2なので)
NATゲートウェイ:使えない(ネットワークACLで制御する)
【料金】
NATインスタンス:EC2の料金体系に従う
NATゲートウェイ:NATゲートウェイの料金体系に従う
NATゲートウェイのほうが作るのが簡単そうだなという印象なんですが
制約事項もあるしどっちがいいというのはなさそうですね。
メリット・デメリットを踏まえた上で正しく選択する必要がありそうです。
あと、NATゲートウェイはインスタンスではないので停止できません。
ある限り料金が発生するのでいらなくなったら削除しないといけないですね。