AWS -VPC-
今回は、前回EC2のないようについて書いてみたので、今回はVPC周りについて書いていこうかと思います。
今回も前回同様、わかりやすく図とかにして説明するというよりかは完全に自分用メモとして残していきます。
VPCとは
まずVPCとは、AWS専用の仮想ネットワークでAWSで提供されているリソースをおくことができます。
【特徴】
・任意のIPアドレス範囲の選択をして仮想ネットワークを構(サブネット)。
・サブネットの作成、ルートテーブルやネットワークゲートウェイの設定など、仮想ネットワーキングの環境を制御可能。
・必要に応じてクラウド内外のネットワーク同士を接続することも可能。
・複数の接続オプションが利用可能(インターネット経由で外部に接続やVPN、専用線を使用しても接続可能)。
・VPCは複数のAZにまたがることもできる。また、AZ内に複数作成可能。
VPC設定手順
① CIDR方式でアドレスレンジを選択。
② AZのサブネットを選択。
③ インターネット経路を選択。
④ VPCへのトラフィック許可の設定。
CIDR
ネットワークを構築する際には、そのネットワークで使用するIPアドレスに範囲を設定する必要があります。
IPアドレスはネットワーク上で重複しない番号で、いわゆる住所に相当します。IPアドレスは32ビットで構成され、「192.168.1.2」のように8ビットずつ10進数に変換したものを「.」(ピリオド)で区切って記述します。
それぞれピリオドで区切られた数字は、[0] ~ [255] までです。つまり、IPアドレスは [0.0.0.0] から [255.255.255.255] までになります。
[192.168.10.0 ~ 192.168.1.255]といった表現は長いため、通常IPアドレス範囲を示すには、CIDR表記などの表記を使用します。
IPアドレスを2進法で表示した時に、「ネットワーク部のビット長」を「/ビット長」で示す方法です。
例えば、[192.168.10.0 ~ 192.168.1.255]の場合、プレフィックスは24ビットです。そこで、[192.168.1.0/24]と記述します。同様に、[192.168.0.0 ~ 192.168.255.255]は、プレフィックスは16ビットなので、「192.168.00/16」と記述します。
IPアドレス範囲をCIDR表記する場合、その範囲は「CIDRブロック」と呼ばれます。
サブネット
サブネットとは、大きなネットワークを複数の小さなネットワークに分割して管理する際の、管理単位となるネットワークのことを指します。
実際のネットワークでは、割り当てられたCIDRブロック(VPC)をそのまま使わず、さらに小さなCIDRブロック(サブネット)に分割して利用することがほどんどです。
サブネットは大きく2つに分けて、パブリックサブネットとプライベートサブネットの2つあります。
パブリックサブネットは、トラフィックがインターネットゲートウェイにルーティングされているサビネットで、インターネットの出入り口がありネットと接続できるサブネットのネットワーク範囲になります。
プライベートサブネットは、インターネットゲートウェイへのルーティングがないサブネットで、インターネットの外の世界とは繋がってないネットワークの範囲になります。つまり、インターネットゲートウェイへのルーティングへのルーティングの有無でサブネットタイプが異なります。
VPCの設計ではこのパブリックサブネット、プライベートサブネットを使い分けて複数設定していきます。(VPC当たりのサブネット作成上限はデフォルト200個)
このサブネット自体はVPC全体のIPアドレスの指定範囲でサブネットのIPアドレスをそれぞれ設定していき、分けることができる。つまり、サブネット内でも使用できるIPアドレスの使える範囲が決まってくる。
サブネットはインターネットアクセス範囲を定義するために利用します。
例えばパブリックサブネットでは、インターネットとの接続が必要なリソースを揃えるために使用します。
プライベートサブネットでは、インターネットから隔離することでセキュリティを高めたい場合に使用する。という用途に応じてサブネットを使い分けてVPCのネットワーク範囲を設計していく。
AWSでは、VPCにCIDR/16を設定し、サブネットには/24の設定が推奨されています。
ルーティングについて
ネットワークにデータを流すためには、ルーティング情報と呼ばれる設定が必要です。
この設定は、ルートテーブルなどと言われ、パケットの行き先を設定します。
VPCでは、サブネットごとにルートテーブルを設定でき、実際に意識する必要はありませんがVPCにおいてサブネットやインターネットゲートウェイの間にルーターの役割をはたすソフトウェアが動いています。
VPC領域を作成した直後はデフォルトのルートテーブルが作成され、そしてサブネットを作成した時にはそのデフォルトのルートテーブルが適用されています。
VPCトラフィック設定
トラフィック設定はセキュリティグループ、またはネットワークACLを利用する。
◯ セキュリティグループ設定
・ステートフル:戻りトラフィックの考慮がいらない。
・サーバー(インスタンス)単位で適用。
・許可のみをINとOUTで指定。
・デフォルトでは同じセキュリティグループ内通信のみ許可。
・必要な通信は許可設定が必要。
・全てのルールを適用。
◯ ネットワークACL
・ステートレス:戻りトラフィックも許可設定が必要。
・サブネット単位で設定。
・許可と否定をINとOUTで設定。
・デフォルトでは全ての送信元IPを許可。
・番号の順序通りに適用。
VPC設計ポイント
・設計時には将来の拡張も見据えたアドレッシングや他のネットワークとの接続も考慮する。
・CIDR(IPアドレス)は既存のVPC、社内DCやオフィスと被らないアドレス帯を設定し、組織構成やシステム構成の将来像も考えながら計画する。
・VPC構成は自社業務にあわせたVPC単体ではなくVPC全体の関係性も視野に入れる。
・組織とシステム境界からVPCをどのように分割するか将来構造も考慮して検討する。
・複数のAZを利用して可用性の高いシステムを構築する。
・サブネットは大きいサブネットを使い、パブリック、プライベートサブネットへのリソースの配置をインターネットアクセス拒否から検討する。
・セキュリティグループを使ってリソース間のトラフィックを適切に制御する。
VPCとオンプレミス接続
VPCとオンプレミスの接続方法としては大きく、VPC接続と専用線接続(Direct connect)を使用して接続する方法があります。
◯ Direct Connect
データセンターやオフィスを専用線などを介してAWSへプライベートに接続するサービスです。
【メリット】
・安価アウトバウンドトラフィック料金で安い金額で利用できる。
・ネットワーク信頼性の向上や、帯域幅の向上。
・かなり信頼性の高い接続ができる。
・Direct Connectロケーションに物理的に自社オンプレ環境を接続することでAWS環境との専用線接続を実現する
・Direct Connect gatewayにより、同一アカウントに所属する複数リージョン、複数AZから複数リージョンの複数VPCに接続することも可能で、これによりリージョン間を跨いだ接続も可能。
◯ VPN
・コスト:安価なベストエフォート回線が利用可能。
・リードタイム:クラウド上での接続設定で可能な為即時に対応可能。
・帯域幅:暗号化のオーバーヘッドにより制限がある。
・品質:インターネット経由のため、ネットワーク状態の影響を受ける。
・障害切り分け:インターネットベースのため、自社で保有している範囲外は確認が難しい。
◯ 専用線
・コスト:キャリアの専用線サービス契約が必要となり、VPNより割高。
・リードタイム:物理対応が必要な為数週間。
・帯域幅:ポートあたり1G/10Gbps
・品質:キャリアにより高い品質が保証される。
・障害切り分け:物理的に経路が確保されているため比較的に簡易・
VPNの方が安く素早く利用できるが、信頼性や品質は専用線が勝る。
VPCエンドポイント
エンドポイントはグローバルIPを持つAWSサービスに対して、VPC内から直接アクセスするための出口です。
まず、VPCサブネット同士は、直接通信することもできますしVPC同士も1つのネットワークのように繋げることができます。しかし、VPCの外にあるサービスとは、インターネットゲートウェイを通り、インターネットを介して接続するのは面倒ですし、セキュリティ的にはあまり良くありません。
そこで、インターネットゲートウェイを通ることなくS3などの非VPCサービスと直結することができるのが、エンドポイントサービスになります。
VPCエンドポイントは2種類の接続方法があります。
◯ ゲートウェイ型
・ゲートウェイエンドポイントは、サービスのリージョン単位でルートテーブルに記載するやり方です。
・一度記載したらそのサービス全体で使用できます。S3やDynamoDBはこの形式をとっています。
【特徴】
・アクセス制限:ルートテーブルからVPCエンドポイントでエンドポイントポリシーを設定。
・料金:無料。
・冗長性:AWS側が対応しているマーネージド型サービス。
◯ プライベートリンク型
・プライベートリンク型はサブネットにエンドポイント用のプライベートIPアドレスを生成し、DNSが名前解決でルーティングする。
・AWS以外の他社サービスでも、プライベートリンクに対応していれば使用できます。
【特徴】
・アクセス制御:セキュリティグループを設定。
・料金:有料。
・冗長性:マルチAZ設計。
NATゲートウェイ
NATゲートウェイによりプリベートサブネットのリソースがインターネットまたはAWSクラウドと通信可能にするためのゲートウェイです。
プライベートサブネットは基本的にインターネットには接続していないので、このNATゲートウェイを設置することによって外との通信が初めて可能になります。
◯ NATゲートウェイ
・プライベートサブネットからインターネットに接続する際にはNATゲートウェイをパブリックサブネット側に設置して、そこに一旦アクセスしてからインターネットに接続する。
・NATゲートウェイは、サブネットからインターネットに接続することができますが、インターネットからサブネットに接続できないようにすることが可能なので、パブリックサブネットに関してはNATゲートウェイを通してインターネットに接続することによってセキュリティが保たれる。
【特徴】
・AWSによるマネージドNATサービス。
・EIPの割り当て可能。
・最大10Gbpsの高パフォーマンス。
・ビルドインで冗長化されている高可用性。
・AZ毎に設定する。
NATゲートウェイは月額 500 円ほどと定額ではありますが、有料サービスになります。
VPC Flow logs
VPC Flow logsはネットワークトラフィックを取得し、CloudWatchでモニタリングできるようにする機能です。
・ネットワークインターフェイスを送信元/送信先とするトラフィックが対象としてログを取ることができる。
・セキュリティーグループとネットワークACLのルールでaccepted/refectされたトラフィックログを取得することが基本的な使い方。
・キャプチャウィンドウと言われる時間枠(10分)で収集・プロセッシング・保存する
VPC Peering
VPC間の接続について、VPC peeringにより2つのVPC間でのトラフィックルーティングが可能。
・異なるAWSアカウントの間のVPC間をピア接続可能。
・一部のリージョン間の異なるVPC間のピア接続も可能。
・単一障害点や帯域幅のボトルネックは存在しない。
このペアリングに関してはマネージド肩で、AWSが冗長性などの対応をしているのでユーザー側で考慮せずとも使用できるサービスになっている。
VPC peeringは、基本的にVPC同士の1対1の仕組みになっているので、直接つないでいくという設定が必要になってくる。
こんな感じでAWSのVPC周りの学習したことを今回はまとめてみました。
ざっといろいろ書いていきましたが、実際は図とかに起こした方がやっぱりわかりやすいので今度時間があるときに修正して行こうかと思います。
この記事が気に入ったらサポートをしてみませんか?