✂️

【サブネット】AWS VPCのサブネットについてわかりやすく解説

2024/08/07に公開

おはこんばんにちは!

今日はAWSのVPC(Virtual Private Cloud)の 「サブネット」 についてお話ししようと思います。
サブネットって少し難しそうに聞こえるかもしれませんが、心配しないでくださいね。
初心者の方にもわかりやすく丁寧に説明しますので、一緒に学んでいきましょう!


サブネットとは?

サブネットの基本

サブネットというのは、VPC内でネットワークをさらに細かく分けるための 「小さなネットワーク」 のことです。
VPCは、AWS内で自分専用のネットワーク環境を作るためのサービスですが、その中に複数のサブネットを作成して、異なる目的に合わせてネットワークを分割することができます。

例えば、家の中で異なる部屋を作って、キッチン、リビング、寝室など、それぞれの部屋で用途を分けるようなイメージです。
サブネットもこれと同じで、VPC内で 「パブリック用」「プライベート用」 といった具合に分けて使います。

サブネットの主な目的

  • ネットワークの分割 : 大きなVPCを小さな部分に分けて、より効率的なネットワーク設計を実現します。

  • セキュリティの強化 : セキュリティグループやネットワークACL(アクセス制御リスト)を使って、サブネットごとに異なるセキュリティポリシーを設定できます。

  • トラフィックの制御 : トラフィックのルートを制御して、外部との通信や内部通信を管理します。


サブネットの作成

1. サブネットの設計

サブネットを作成する前に、どのようなサブネットが必要かを考えましょう。
一般的には、以下のようなサブネットがよく使われます:

  • パブリックサブネット : インターネットからアクセスできるリソース(例えば、ウェブサーバー)を配置します。

  • プライベートサブネット : インターネットから直接アクセスできないリソース(例えば、データベースサーバー)を配置します。

2. AWS管理コンソールでのサブネット作成

サブネットを作成するためには、AWS管理コンソールを使います。
以下の手順でサブネットを作成できます:

  1. AWS管理コンソールにログイン : AWSの管理コンソールにログインします。

  2. VPCダッシュボードにアクセス : 「VPC」を選択し、「VPCダッシュボード」に移動します。

  3. サブネットの作成 : 「サブネット」を選択し、「サブネットの作成」ボタンをクリックします。

  4. サブネットの設定 :

  • 名前タグ : サブネットの名前を付けます(例: Public-Subnet-1)。

  • VPC : サブネットを作成するVPCを選択します。

  • CIDRブロック : サブネットに割り当てるIPアドレスの範囲を指定します(例: 10.0.1.0/24)。これにより、サブネット内のIPアドレスの範囲が決まります。

  • アベイラビリティゾーン : サブネットを作成するアベイラビリティゾーン(AZ)を選択します。これは、AWSのデータセンターの地域を示します。

3. サブネットの設定確認

サブネットを作成したら、以下の点を確認してみましょう:

  • IPアドレスの範囲 : サブネット内で使用するIPアドレスの範囲が正しいか確認します。

  • アベイラビリティゾーン : サブネットが期待するAZに作成されているか確認します。


サブネットの種類 と 使い方

パブリックサブネット

パブリックサブネットは、インターネットに接続するリソースを配置するためのサブネットです。
ウェブサーバーロードバランサーなど、インターネットからアクセスが必要なリソースをここに配置します。

  • インターネットゲートウェイ : パブリックサブネットにインターネットからアクセスするためには、VPCにインターネットゲートウェイを接続し、サブネットのルートテーブルに適切なルートを設定する必要があります。

  • セキュリティグループ : パブリックサブネットに配置するインスタンスには、適切なセキュリティグループを設定して、外部からの不正アクセスを防ぎます。

プライベートサブネット

プライベートサブネットは、インターネットから直接アクセスできないリソースを配置するためのサブネットです。
データベースサーバー内部システムなど、外部と直接やり取りする必要のないリソースをここに配置します。

  • NATゲートウェイ : プライベートサブネット内のリソースがインターネットにアクセスする必要がある場合、NATゲートウェイを使用して、外部通信を可能にします。

  • セキュリティグループとネットワークACL : プライベートサブネットのリソースには、セキュリティグループとネットワークACLを使って、内部通信を制御します。


サブネットのルーティング

ルートテーブルの基本

サブネットには、トラフィックの行き先を決定する「ルートテーブル」が関連付けられています。
ルートテーブルには、IPアドレスの範囲(CIDRブロック)とそれに対応するルート(経路)が定義されています。

  • ルート : どのトラフィックをどこに送るかを決定します。例えば、パブリックサブネットからインターネットへトラフィックを送るためには、インターネットゲートウェイへのルートを追加します。

  • デフォルトルート : サブネットから出るトラフィックのデフォルト経路を設定します。通常、0.0.0.0/0は全てのIPアドレスを示し、これを使ってインターネットへのルートを設定します。

ルートテーブルの設定方法

  1. ルートテーブルの作成 : 「ルートテーブル」を選択し、「ルートテーブルの作成」ボタンをクリックします。

  2. ルートの追加 : ルートテーブルに新しいルートを追加します。例えば、インターネットゲートウェイへのルートや、NATゲートウェイへのルートを設定します。

  3. サブネットへの関連付け : 作成したルートテーブルを、使用するサブネットに関連付けます。これにより、そのサブネット内のリソースが指定したルートを使用するようになります。

そもそもIPアドレスとは? と思った方はこちら👇

https://zenn.dev/yukun369/articles/385408ad790754


サブネット と セキュリティ

セキュリティグループ

セキュリティグループは、サブネット内のインスタンスに対するトラフィックの制御を行う重要な要素です。
セキュリティグループは、ファイアウォールのようなもので、インスタンスに対する「入出力のルール」を設定することができます。
具体的には、どのIPアドレスからの接続を許可するか、どのポートへの接続を許可するかを設定します。

セキュリティグループの設定

  1. セキュリティグループの作成 : AWS管理コンソールの「セキュリティグループ」から、「セキュリティグループの作成」をクリックします。

  2. ルールの設定 :

  • インバウンドルール : 外部からインスタンスに対して許可する接続のルールを設定します。例えば、HTTPポート(80番ポート)やHTTPSポート(443番ポート)へのアクセスを許可するルールを追加します。

  • アウトバウンドルール : インスタンスから外部への接続のルールを設定します。特定のサーバーやサービスへの接続を許可するために設定します。

  1. インスタンスへの関連付け : 作成したセキュリティグループをインスタンスに関連付けます。これにより、そのインスタンスがセキュリティグループのルールに基づいてトラフィックを制御します。

ネットワークACL(アクセス制御リスト)

ネットワークACLは、サブネットに対するトラフィックの制御を行うもう一つのセキュリティ機能です。
セキュリティグループがインスタンスレベルでの制御を行うのに対して、ネットワークACLはサブネット全体のトラフィックに対する制御を行います。

ネットワークACLの設定

  1. ネットワークACLの作成 : AWS管理コンソールの「ネットワークACL」から、「ネットワークACLの作成」をクリックします。

  2. ルールの設定 :

  • インバウンドルール : サブネットへの外部からのトラフィックを許可または拒否するルールを設定します。

  • アウトバウンドルール : サブネットから外部へのトラフィックを許可または拒否するルールを設定します。

  1. サブネットへの関連付け : 作成したネットワークACLをサブネットに関連付けます。これにより、そのサブネット内の全インスタンスに対してネットワークACLのルールが適用されます。

サブネットの設計 と ベストプラクティス

サブネット設計の考慮点

サブネットを設計する際には、いくつかの考慮点があります。
これらを意識することで、より効率的で安全なネットワーク設計が可能になります。

  1. IPアドレスの計画 : サブネットのCIDRブロック(IPアドレス範囲)を決定する際には、将来の拡張を見越して適切なサイズを選ぶことが重要です。例えば、将来的に追加のインスタンスが必要になるかもしれない場合は、少し大きめのCIDRブロックを設定しておくと良いでしょう。

  2. セキュリティ要件 : サブネット内のリソースがどのようなセキュリティ要件を持っているかを考慮し、それに応じてセキュリティグループやネットワークACLを設定します。例えば、外部からのアクセスが必要なリソースと、内部でのみ通信するリソースを分けることで、セキュリティを強化できます。

  3. トラフィックの流れ : トラフィックの流れを考え、どのサブネットがインターネットと通信するのか、どのサブネットが内部のリソースと通信するのかを設計します。これにより、ネットワークの効率セキュリティが向上します。

ベストプラクティス

  • サブネットの冗長性 : 複数のアベイラビリティゾーンにサブネットを作成することで、障害時の冗長性を確保します。これにより、一つのAZに障害が発生しても、他のAZでサービスを継続することができます。

  • 最小権限の原則 : サブネット内のリソースには、必要最低限のアクセス権だけを付与するように心がけます。これにより、不正アクセスのリスクを低減できます。

  • モニタリングとログ管理 : サブネットのトラフィックやセキュリティイベントをモニタリングし、ログを適切に管理することで、問題の早期発見と対処が可能になります。


まとめ

今日はAWSのVPCの 「サブネット」 について、基本から応用まで幅広くお話ししました。
サブネットは、VPC内でネットワークを細かく分けるための重要なコンポーネントであり、効率的で安全なネットワーク設計に欠かせない要素です。

  • サブネットとは : VPC内でネットワークを細かく分けるための小さなネットワーク。

  • サブネットの種類 : パブリックサブネット(インターネットに接続するリソース用)とプライベートサブネット(インターネットから直接アクセスできないリソース用)。

  • ルートテーブル : トラフィックの行き先を決定するためのルールを設定する。

  • セキュリティ : セキュリティグループやネットワークACLを使って、トラフィックを制御する。

  • 設計の考慮点 : IPアドレスの計画、セキュリティ要件、トラフィックの流れを意識する。

  • ベストプラクティス : 冗長性の確保、最小権限の原則、モニタリングとログ管理を心がける。

これでVPCのサブネットについての理解が深まったと思います。
ネットワーク設計は最初は難しく感じるかもしれませんが、一つ一つ学んでいけば必ずマスターできますよ!
もし何か質問があれば、気軽に聞いてくださいね。😊

それでは、楽しいAWSライフをお過ごしください!


お気軽に コメント(↓) していただければとても嬉しいです!
" ❤️ " や、フォローバッジなどもお待ちしています!


Discussion