0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

🌐 NATインスタンスでプライベートサブネットをネットに繋げよう

Last updated at Posted at 2025-01-26

🌟 NATインスタンスってなに?簡単に説明するよ!

NAT(ナット)インスタンスは、家の「Wi-Fiルーター」みたいなものだよ🏠✨

家の中にあるいろんなデバイス(スマホやパソコン)が、外のインターネットとやり取りできるのは、このWi-Fiルーターのおかげ。

NATインスタンスも同じように、内部のコンピュータが外の世界(インターネット)と通信できるよう手助けしているんだ🤖

🌐 Internet Gateway との関係

似たような概念で、Internet Gateway とは何が違うんでしょうか?

AWSでは、サブネットごとにインターネット接続の方法が異なります:

接続方法 対象サブネット 特徴
Internet Gateway パブリックサブネット パブリックIPを持つインスタンスが直接インターネットにアクセスします。
NAT Gateway/NAT Instance プライベートサブネット プライベートIPのみのインスタンスが、NATを通してインターネットにアクセスします。

🌍 NAT Gatewayとの違い

似たような概念で、NAT GatewayとNAT Instanceは何が違うんでしょうか?

AWSでプライベートサブネットからインターネットに接続する場合、NAT Gateway または NAT Instance を使用します。

どちらを選ぶべきか、それぞれの特徴を見てみましょう。

NAT Gateway

大規模で安定したインフラが必要な場合

  • マネージドサービス
  • 高可用性と自動スケーリング
  • 帯域幅の自動調整
  • メンテナンスが不要
  • 設定が比較的簡単
  • やや高コスト
NAT Instance

コスト重視で、カスタマイズ性を求める場合

  • EC2インスタンスベース
  • 手動で管理が必要
  • インスタンスタイプによる性能制限
  • カスタマイズ性が高い
  • コスト効率が良い
  • セキュリティグループの設定が柔軟

個人開発や検証用環境ならNAT Instanceで十分かもね☺️

🔧 インスタンスをNAT化してみよう

Amazon Linux 2023を使ってNATインスタンスを作ってみよう💪

1️⃣ インターネットを通す「道」を作る

NATインスタンスが、データを中継できるように設定するよ。

sudo sysctl -w net.ipv4.ip_forward=1 | sudo tee -a /etc/sysctl.conf

💡 簡単に言うと
これで、「データを通してもいいよ!」とNATインスタンスに許可するんだ。

2️⃣ 「箱」を作る(テーブルの作成)

次に、データを整理する「箱」を用意するよ。これを テーブル って呼ぶんだ。

sudo nft add table nat

3️⃣ 入ってくるデータを処理する「入り口」を作る

NATインスタンスに届くデータを整理するための「入り口」を用意するよ。

sudo nft -- add chain nat prerouting { type nat hook prerouting priority -100 \; }

4️⃣ 出ていくデータを処理する「出口」を作る

データを外に送り出すための「出口」を作るよ。

sudo nft add chain nat postrouting { type nat hook postrouting priority 100 \; }

5️⃣ データを外に送るための「ルール」を作る

ここがとっても大事!「マスカレード」という設定をして、内部のコンピュータが一つのIPアドレスを使って外部と通信できるようにするよ。

sudo nft add rule nat postrouting oifname "$(ip -o link show | awk -F': ' '/device-number-0/{print $2}')" masquerade

6️⃣ 今の設定を保存する

ここまでの設定を忘れないようにファイルに保存しよう!

sudo nft list table nat | sudo tee /etc/nftables/al2023-nat.nft

7️⃣ システムに設定を教える

さっき保存した設定をシステムが読み込むように教えてあげるよ。

echo 'include "/etc/nftables/al2023-nat.nft"' | sudo tee -a /etc/sysconfig/nftables.conf

8️⃣ NATインスタンスを「動かす」

設定が終わったら、NATインスタンスをスタートしよう!

sudo systemctl start nftables

9️⃣ システム起動時に自動スタート!

最後に、この設定がコンピュータを再起動しても動くようにするよ。

sudo systemctl enable nftables

🎉 お疲れさま

これで、NATインスタンスが「Wi-Fiルーター」のように働いて、内部のコンピュータが外のインターネットと安全に通信できるようになったよ😊✨

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?