LoginSignup
0
1

More than 1 year has passed since last update.

AWSのVPCについてまとめてみた

Last updated at Posted at 2021-04-29

VPCとは

AWSの仮想ネットワークを作成するサービスです。セキュリティーの設定もここに含まれます。
全てのサービスを作る上で、土台となるネットワークを作成するサービスなので、AWSの勉強をするときには基本的にVPCから学ぶのがおすすめです。

VPCを作成するときに、最初にリージョンの設定を行う必要があります。

リージョン、アベイラビリティゾーン(AZ)について

アベイラビリティゾーンはAZと略されることも多いので、今後はAZと表記します。

アベイラビリティゾーン(AZ)

サーバーを置いているデータセンターが集合している場所のことです。
img01.png

リージョン

AZを束ねた地域のことです。
世界中にリージョンは存在していて、日本には東京リージョン大阪リージョンがあります。
img02.png

東京リージョンを使用する場合は、下記のような表し方をします。
「ap-northeast」が東京リージョンを表し、末尾の「1」はAZを表します。
東京リージョンのAZは現在下記の3つが主に使われています。
VPCを使うとこの3つのAZを使うことができます。
img3.png

サブネットについて

VPCでネットワークを構成するときに、セキュリティーレベルをあげるためにネットワークを細かく区切ることがあります。
その細かく区切るための小さなネットワークをサブネットと呼びます。
サブネットには「Public subnet」「Private subnet」と呼ばれる2種類が存在します。
インターネットゲートウェイに接続できるかどうかの違いがあります。
簡単に説明すると「Public subnet」はインターネットで外部からアクセス可能なサブネットで、「Private subnet」はVPCのネットワーク内でのみアクセス可能なサブネットになっています。
AWSの中にVPCを作成し、更にその中にサブネットを複数作成できます。

img04.png

VPCやサブネットにはIPアドレスを割り当てて使用します。
IPアドレスやサブネット(サブネットマスク・CIDR表記)に関する詳しい説明はこちらにまとめています。
このサブネットの中にEC2などのインスタンスをたてて、サーバーの設置などを行います。
https://qiita.com/a_goto/items/396dee5c6d894392acb3
img06.png

VPCのネットワークコンポーネントについて

ネットワークコンポーネントとはVPCの機能を分解してコンポーネント(部品)として扱えるようにしたものです。
VPCでネットワークを作成し、ネットワーク内でサブネットにIPアドレスをアタッチ(付与)したり、インターネットに繋げれるようにしたり、セキュリティーの設定など様々な機能を追加するのに使います。

ここでは下記について説明します。

ルートテーブル
インターネットゲートウェイ
NATゲートウェイ
ENI
Elastic IPアドレス
セキュリティグループ
ネットワークACL

例えば下記のように、VPCにサブネットを2つ用意し、その中にEC2インスタンスをそれぞれAとBを設置し、様々な機能を追加していくとします。
img07.png
このEC2のAとBを紐付けて通信する場合に必要な機能の説明をします。
ルートテーブル、NetworkACL、セキュリティグループを例に取ります。

ルートテーブルについて

ルートテーブルは、サブネットに関連付けて使用するもので、サブネットから外に出る通信を、どこに向けて発信するのかを定義づけるルールのことです。
ルートと呼ばれる下記のようなルールで構成されます。
img08.png
ターゲットに設定されているLocalというのはVPC内のことを指します。
10.0.0.0/21に向けての通信はVPC内に向けて通信が発信されるようになります。
デフォルトではこの設定がされており、ここにルールを追加していくことが可能です。
基本的にルールは細かく指定したものが優先されるため、細かく通信の制御を設定することで、通信できる範囲を絞ってセキュリティーを高めていくことができます。

例えば下記のようなルールを追加すると、
10.0.0.0/21に向けての通信は上記と同じで、VPC内に向けて通信が発信されて、
それ以外に向けての通信は全て、インターネットに向けての通信が発信されるようになります。
img09.png

インターネットゲートウェイ

インターネットゲートウェイとはVPC内のAWSリソースとインターネットを繋げるための機能です。
VPCのネットワークからインターネットに通信を可能にするためには、下記のようにこのインターネットゲートウェイをVPCにアタッチする必要があります。
img10.png

インターネットゲートウェイの特徴としては、インターネットからアクセスが集中しても、自動でスケールして対応してくれるため高い可用性があります。
そして、下記の図のようにサブネットのルートテーブルの設定を使用します。
img11.png

また、サブネットからインターネットゲートウェイへのルーティングは、Public subnetからのみ可能になっています。
使い分けとしては、インターネットからアクセスしても問題ないリソースなどはPublic subnetに配置し、セキュリティレベルを上げたい、データベースなどのリソースはPrivate subnetに配置します。
img12.png

NATゲートウェイ

NATゲートウェイはプライベートサブネットからインターネット接続を可能にする機能です。
ただし、アウトバウンドはできるが、インバウンドはできません。これにより外部からプライベートサブネットには接続できないのでセキュリティが担保される。
img13.png

ENI(Elastic network interface)

仮想ネットワークインターフェイスの略で、EC2インスタンスなどにIPアドレスをアタッチすることができる機能です。
同じAZ内のインスタンスにアタッチ/デタッチができます。
EC2にはデフォルトでENIが付与されている。
一つのインスタンスに複数のENIを付与することができる。
このENIとインターネットゲートウェイが接続することで、Public subnetとインターネットが接続可能になる。
img14.png

Elastic IPアドレス

外部のネットワーク同士が接続するためには、外部接続用のIPアドレスが必要になります。
AWSにも外部用のIPアドレスを付与する機能が2つ用意されています。

「Public IP アドレス」「Elastic IP アドレス」の2つです。

Public IP アドレス

AWSのIPアドレスプールにより割り当てられる外部接続用のIPアドレスで、インスタンスが再起動、停止、終了したときに開放されます。
開放されることで、確率は低いですが他のネットワークが再度同じIPアドレスをもつ可能性もあります。
設定で有効にしていると、自動で割当されます。
基本的には使わない方が良いと思います。

Elastic IP アドレス

同じく外部接続用のIPアドレスで、インスタンスにアタッチ/デタッチが可能で、
静的なパブリックIPアドレスのため、再起動、停止、終了したときでも同一のIPアドレスになります。
どこにもアタッチしていない場合1時間あたり1円の料金が発生するので注意が必要です。
どこかにアタッチしていれば料金はかかりません。

図が少しややこしいですが、EC2インスタンスはENIを持っており、このENIに外部接続用のElastic IPアドレスがくっついているイメージです。
img15.png

セキュリティグループ

AWSの仮想ファイアーウォールサービスのことです。
ファイアーウォールとは通信を制限するフィルターのようなものです。
インバウンドとアウトバウンド両方の設定を行える。基本的にアウトバウンドの設定をすることはあまりない。
ENIの単位で設定します。

ネットワークACL

サブネット単位で設定するファイアーウォールのことです。
ステートレス・インスペクション型といって、アウトバウンドの通信を許可した場合、インバウンドも明示的に設定する必要があるのが特徴です。

0
1
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
1