Amazon VPC
概要
AWS VPC(Virtual Private Cloud)はAWSクラウド内にユーザー専用の仮想ネットワークを作成するサービスです。このサービスを使うことでAWSリソースをプライベートなネットワーク内で安全に運用し、インターネットや他のネットワークと接続するための高度な制御が可能になります。具体的には下記のような機能があります。
- ネットワークの分離: VPCを使用すると、AWSクラウド内に独自のネットワークを作成できます。他のAWSアカウントやVPCとは分離されているため、セキュリティが強化されます。
- セキュリティグループとネットワークACL: VPC内では、セキュリティグループやネットワークACL(Access Control Lists)を設定することで、リソースへのアクセス制御を細かく管理できます。これにより、外部からのアクセスや内部ネットワークの通信を厳密に制御できます。
- サブネット: VPC内にサブネットを作成し、異なるサブネットに異なるタイプのリソースを配置することで、アプリケーションの構成を最適化できます。たとえば、プライベートサブネットとパブリックサブネットを分けて、外部からアクセス可能なリソースと内部でのみ使用するリソースを分離できます。
- インターネット接続: VPC内のリソースがインターネットに接続するためには、インターネットゲートウェイやNATゲートウェイを使用します。これにより、インターネットとの通信を管理し、セキュリティを維持できます。
- VPN接続とDirect Connect: VPCはオンプレミスのデータセンターとの接続を容易にするために、VPN接続やAWS Direct Connectをサポートしています。これにより、クラウドとオンプレミス環境間でセキュアな通信が可能になります。
- スケーラビリティと柔軟性: VPCは非常にスケーラブルで、必要に応じてサブネットを追加したり、ネットワーク設定を変更したりできます。これにより、ビジネスの成長に合わせてネットワークを柔軟に管理できます。
VPCを利用することで下記のようなNWの箱を提供することができます。このVPCの中にさまざまなリソース(EC2、ECS、RDSなど)を配置することでAWS上にプライベートのネットワーク環境を構成することができます。
AWS, Amazon VPC とは?
ネットワークの基本用語
IPアドレスとCIDR
VPCの仕組みを理解するうえでIPアドレスとCIDRを理解することが大切です。IPアドレスとCIDRを理解することで、ネットワークのスケーリングや管理が柔軟になり、アドレスの浪費を防ぎながらより効率的なネットワーク設計が可能になります。
IPアドレスはデバイスの一意の識別子で、IPv4では32ビットのアドレスで、通常は4つの10進数(0〜255)で表され、ドットで区切られます(例: 192.168.1.1
)。
一方で、CIDRはネットワークのサイズや範囲を効率的に指定するための方式を表し、IPアドレスとサブネットマスクを組み合わせた表現を使用します。CIDRでは、IPアドレスの後にスラッシュ(/
)とサブネットプレフィックス長(ビット数)を付けてネットワークのサイズを指定します(例: 192.168.1.0/24
)。例えば192.168.1.0/24
の場合、92.168.1.0
から192.168.1.255
までの256個のIPアドレスを含むサブネットを表します。また10.0.0.0/16
の場合、10.0.0.0
から10.0.255.255
までの65,536個のIPアドレスを含むサブネットを表します。
ルートテーブル
ネットワークのルートテーブルとは、ネットワーク内のデータパケットがどの経路を通るべきかを決定するための規則をまとめた表です。ルートテーブルはルータやコンピュータなどのネットワークデバイスに存在し、受信したデータパケットを適切な出力インターフェースや次のネットワークデバイスに転送するための指示を提供します。ここでは詳しくは触れませんが、もしAWSにおけるルートテーブルを理解したいという方がいましたらこちらのブログを参考ください。
VPCの仕組み
VPCとサブネット
まずはサブネットから理解していきましょう。下図をご覧ください(引用元はこちら)。
CIDR ブロック を持つ VPC を作成すると10.0.0.0/24、256 個の IP アドレスを利用することができます。ちなみにVPCのCIDRブロックは172.31.0.0/16のように/16を使うことが多いですがこれは慣習となります。VPCではリソースのカスタムアクセス制御とセキュリティ設定を許可することができ、アベイラビリティゾーンを跨って設定することができます。(リージョンを跨ぐことはできません)
この CIDR ブロックを 分割する単位がサブネットになります。例えば2 つのサブネットに分割すると1 つのサブネットは CIDR ブロック10.0.0.0/25(アドレス 10.0.0.0- 10.0.0.127) を使用し、もう 1 つは CIDR ブロック 10.0.0.128/25(アドレス10.0.0.128- 10.0.0.255) を使用します。つまり、VPCのIPアドレスの範囲の中で、利用したい範囲のIPアドレスを確保する仕組みがサブネットと言えます。
AWS, サブネット CIDR ブロック
パブリックサブネットとインターネットゲートウェイ
パブリックサブネットはインバウンド(=インターネットからVPCに入る)とアウトバウンド(=VPCからインターネットに出る)のインターネットトラフィックを扱うサブネットになり、webサーバーなどを配置します。パブリックサブネットを構成するためにはインターネットゲートウェイ、インターネットゲートウェイを指定したルートテーブル、パブリックIPを設定する必要があります。
下図はインターネットゲートウェイを利用してパブリックサブネットとインターネットの通信を表しています。このときパブリックサブネットからインターネットゲートウェイの通信はプライベートIPを、インターネットゲートウェイからインターネットの通信はパブリックIPが利用されます。
AWS, インターネットアクセスの設定
プライベートサブネットとNATゲートウェイ
プライベートサブネットはプライベートネットワーク内にとどまるトラフィックを扱うサブネットになり、外部後悔したくないもの(例えばDBなど)を配置します。しかしインターネットから修正パッチを当てるなどプライベートサブネットにあるリソースがインターネットへの通信を行いたい場合があります。そのときはNATゲートウェイを利用してインターネットと通信を行います。
下図はプライベートサブネットでNATゲートウェイを利用した場合のアーキテクチャ構成図です。プライベートサブネットからパブリックサブネット上にあるNATゲートウェイに通信し、NATゲートウェイからインターネットゲートウェイを通じてインターネットと通信することになります。
AWS, NAT ゲートウェイのユースケース
ACLとセキュリティグループ
最後にVPCのセキュリティについて下図を元に解説します(引用元はこちら)。VPC内でのセキュリティではネットワークACLとセキュリティグループが重要となります。ネットワークACLは、1つ以上のサブネットに出入りするトラフィックを制御するためのファイアウォールとして機能します。またセキュリティグループはインスタンスに対するファイルとして機能します。これら2つのファイアウォールにより多層防御を実現しています。
AWS, Amazon VPC のインフラストラクチャセキュリティ
まとめ
本記事ではVPCを解説し、AWSでネットワークを構成する上でのポイントをお伝えしました。VPCを利用する上での基本はある程度網羅されていると思いますのでご自身の理解にご活用ください。また実際にNWを構築してみることでさらに理解が深まりますので、基本を押さえた後はぜひハンズオンでNW構築を試してみてくださいね!