はじめに
このページはAWS Solution Architect Professional(SAP)の資格を取得するため、重要ポイントを絞って記載していきます。分かりづらいところ、間違っているところがあれば是非ご指摘ください。
太文字の部分を覚えてくれると嬉しいです。
今回の説明対象
NAT Gateway
サービスの内容
機能説明
インターネットと通信ができないプライベートサブネットに設置してあるEC2インスタンスやAWSサービスがインターネットと通信を行いたい場合に利用されるサービス。
主な利用方法
世の中おっかない攻撃者ばかりのせいで、システムが外部と直接通信が出来る環境にあると攻撃に晒される危険性がある。そのために要件でサーバは外部インターネットと"直接"通信してはいけないという約束事がある場合がある。一方で以下の理由などでどうしても「このときだけはインターネットと通信がしたい」というワガママが往々にして出てくる。
- EC2インスタンスのOS脆弱性対応用のパッチをインターネットから取得したい
- Lambda インターフェイスエンドポイントから外部APIに通信を行いたい
こういった時にプライベートサブネットにシステムを設置してインターネットと隔離しつつ、パブリックサブネットにNAT Gatewayという裏道を作って外部との通信を可能にする。
類似サービス
"サービス"とは言い難いが、NATサーバをEC2インスタンスで自分で作るという方法もある。実はNAT Gateway自体は比較的後発のサービスでそれまでは皆はEC2インスタンスを使って構築していた。
特徴
- 設定が楽。マネージドサービスだから運用も全てAWSが行ってくれる
- 固定のグローバルIPアドレス(ElasticIP)を付与することが可能
- 内部ネットワークからインターネットへの通信の転送が出来る。一方、インターネットから内部ネットワークへの通信転送は行わない。よって攻撃に直接さらされることがなく、セキュリティ的に担保される
注意点
- 特徴にある「NAT Gatewayはインターネットから内部ネットワークへの通信の転送は行わない」が逆にデメリットにも。外部からSSHやRDPなどインスタンスへの接続等でNAT Gatewayを使うことはできない。この場合は自前でNATサーバ(踏み台サーバともいう)を作るか、DirectConnectやVPNを通じて内部ネットワークから通信を行う
- 細かな設定を行うことはできない。テストでよく出る「内部ネットワークから外部サーバにアクセスする際のURLフィルタリングを行いたい」という場合はNAT Gatewayを利用することはできない。その場合は自前でNATサーバを立てる+URLフィルタリングソフトを導入する
- NAT Gatewayを作ったら、プライベートサブネットの通信をNAT Gatewayに向けるためのルートテーブルの設定を変更すること。具体的にはデフォルトゲートウェイ(0.0.0.0/0)をNAT Gatewayに向ける
- テストに出てはこないけど、NAT Gatewayは何気にAZサービス。冗長性など考慮する必要もある
コスト
稼働時間+データ処理量料金
ただし、ここは問題になることはほぼないと思われる