Open5

Amazon VPC

nukopynukopy

Amazon VIrtual Private Cloud(VPC)とは

https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/what-is-amazon-vpc.html

  • Amazon Virtual Private Cloud, VPC
    • ユーザーが自分専用の仮想ネットワークを AWS クラウド内に作成できるサービス。VPCを使用することで、ユーザーは自分の仮想ネットワーク環境を詳細に制御でき、AWSリソースを隔離して安全に運用することができる。

主な機能と特徴

  1. ネットワーク分割
    • ユーザーは複数のサブネットを作成し、それぞれを異なるアベイラビリティゾーン(データセンター)に配置できる。これにより、高可用性と耐障害性を確保できる。
  2. IPアドレス範囲の設定
    • VPCの作成時に、プライベート IP アドレスの範囲(CIDR ブロック)を指定する。これにより、VPC内のリソースに割り当てる IP アドレスを管理できる。
  3. ルートテーブルの設定
    • ルートテーブルを設定して、サブネット間やインターネットへのトラフィックのルーティングを制御する。これにより、通信の経路を細かく設定できる。
  4. インターネットゲートウェイ (IGW)
    • パブリックサブネットに接続することで、VPC 内のリソースをインターネットに接続できる。Web サーバーや公開 API など、インターネットに公開するリソースに利用する。
    • VPC に設定したサブネットの内、IGW に接続されているサブネットのことを「パブリックサブネット」という。反対に、インターネットゲートウェイに接続されていないサブネットのことを「プライベートサブネット」という。プライベートサブネットはインターネットからアクセスできなくなる。
  5. NATゲートウェイとNATインスタンス
    • プライベートサブネットのリソースがインターネットにアクセスする際に使用する。NAT ゲートウェイや NAT インスタンスを使用することで、セキュリティを保ちながらインターネットに接続できる。
  6. セキュリティグループとネットワークACL
    • セキュリティグループはインスタンスレベルのファイアウォールとして機能し、ネットワーク ACL はサブネットレベルでのトラフィック制御を行う。これにより、ネットワークセキュリティを強化できる。
  7. VPN 接続とDirect Connect
    • オンプレミスネットワークと VPC をセキュアに接続するための機能。
    • VPN 接続はインターネット経由で暗号化されたトンネルを提供し、Direct Connect は専用線を使用して高帯域幅の接続を提供する。

VPCの利点

  • 柔軟性と制御: ユーザーはネットワーク設定を細かく制御でき、自分のアプリケーションのニーズに合わせたネットワーク環境を構築できる。
  • セキュリティ: サブネットやルートテーブル、セキュリティグループを利用して、ネットワークトラフィックを厳密に管理できる。
  • スケーラビリティ: 必要に応じてサブネットやリソースを追加できるため、ビジネスの成長に応じてネットワーク環境を拡張できる。
  • コスト効率: 使用するリソースに対してのみ支払うため、コストを効率的に管理できる。
nukopynukopy

次の図表は、VPC の例を示しています。VPC には、リージョンの各アベイラビリティーゾーンに 1 つのサブネット、各サブネットに EC2 インスタンス、VPC 内のリソースとインターネットとの通信を可能にするインターネットゲートウェイがあります。

  • リージョン
    • Amazon VPC
      • AZ 1
        • サブネット 1(private / public)
        • サブネット 2(private / public)
        • ...
      • AZ 2
        • サブネット 3(private / public)
        • サブネット 4(private / public)
        • ...
      • ...

引用元:Amazon VPC とは?

nukopynukopy

パブリックサブネットとプライベートサブネット

  • パブリックサブネット
    • 説明
      • インターネットゲートウェイ (IGW) に接続されているサブネット
      • このサブネットに配置されたリソース(例:EC2 インスタンス)は、インターネットから直接アクセス可能。また、これらのリソースはインターネットにアクセスすることもできる。つまり、インバウンド、アウトバウンドどちらもアクセス可能にすることができる。
      • サブネットのルートテーブルにインターネットゲートウェイへのルートが含まれている場合、そのサブネットはパブリックサブネットと見なされる
    • 用途
      • インターネット上でユーザにアクセスされる Web サーバ
  • プライベートサブネット
    • 説明
      • インターネットゲートウェイに接続されていないサブネット
      • このサブネットに配置されたリソースは、直接インターネットからアクセスできない。また、これらのリソースは NAT ゲートウェイや NAT インスタンスを通じてのみインターネットにアクセスできる。
    • 用途
      • プライベートサブネットのリソースは、通常、データベースサーバーやアプリケーションサーバなど、直接インターネットに公開する必要がない内部リソースを配置するために使用される。

構成例

  1. パブリックサブネットに EC2 インスタンスを配置
    • このインスタンスにはパブリック IP アドレスが割り当てられ、直接インターネットからアクセスできる。
    • 例えば、Web サーバーをここに配置し、インターネットから直接アクセスできるようにする。
  2. プライベートサブネットに EC2 インスタンスを配置
    • このインスタンスにはパブリック IP アドレスが割り当てられない。
    • インターネットにアクセスする場合、NAT ゲートウェイや NAT インスタンスを介してアクセスする。
    • 例えば、データベースサーバーや内部アプリケーションサーバーをここに配置し、セキュリティを確保する。

まとめ

  • パブリックサブネット: インターネットに直接接続できるリソースを配置。インターネットゲートウェイへのルートがある。
  • プライベートサブネット: インターネットに直接接続できないリソースを配置。NATゲートウェイやNATインスタンスを通じてのみインターネットアクセス。

このように、VPC内のサブネットを使い分けることで、セキュリティとアクセス制御を細かく設定できる。

nukopynukopy

IGW、NAT GW、NAT インスタンスの使い分け

まとめ

  • IGW
    • インターネットからの VPC サブネットへの inbound、VPC サブネットからインターネットへの outbound 両方を制御(IGW に接続されたサブネットは「パブリックサブネット」となる)
  • NAT GW、NAT インスタンス
    • VPC プライベートサブネットからインターネットへの outbound を制御
nukopynukopy

インターネットゲートウェイ (IGW)

  • 双方向通信: IGW は VPC 内のリソースがインターネットと双方向に通信できるようにする。
    • インバウンドトラフィック: インターネットから VPC 内のリソースへのアクセスが可能。
    • アウトバウンドトラフィック: VPC 内のリソースがインターネットにアクセスすることも可能。
  • 使用例: パブリックサブネット内のリソース(例:Web サーバ、公開 API サーバ)。

NATゲートウェイ (NAT GW) および NATインスタンス

NAT なので当然「アウトバウンドのみ」に使用される。

  • アウトバウンド通信のみ: NAT GW および NAT インスタンスはプライベートサブネット内のリソースがインターネットにアクセスできるようにするが、インターネットから直接アクセスされることはない。
    • アウトバウンドトラフィック: プライベートサブネット内のリソースがインターネットにアクセスすることができる。例えば、ソフトウェアのアップデートや外部 API の呼び出しなど。
    • インバウンドトラフィック: インターネットから直接アクセスすることはできない。インバウンドトラフィックは NAT GW または NAT インスタンスを経由してプライベートサブネットのリソースに到達することはない
  • 使用例: プライベートサブネット内のリソース(例:アプリケーションサーバ、データベースサーバ)で、インターネットへのアウトバウンドアクセスが必要な場合。

使い分けのガイドライン

  • IGWを使用する場合:
    • インターネットに公開されるリソースが必要。
    • パブリック IP アドレスを持つリソースがあり、外部からアクセス可能である必要がある。
  • NAT GWを使用する場合:
    • 高可用性とスケーラビリティが重要。
    • プライベートサブネット内のリソースがインターネットへのアウトバウンドアクセスを必要とする。
    • 管理負荷を最小限にしたい。
  • NAT インスタンスを使用する場合:
    • 特定のカスタマイズやネットワーク設定が必要。
    • コストを抑えつつ、低トラフィックシナリオで利用する。
    • 手動での管理やスケーリングが許容範囲内。