VPC

IPアドレス

  • ICANNという非営利団体が管理

  • IPアドレスは重複が許されない

  • IPアドレスは32bit。10進法表記では、0.0.0.0~255.255.255.255の範囲。

  • IPアドレスはNIC(Network Interface Card)に割り当てられる。

グローバルIPアドレスの枯渇

  • IPv4は枯渇しかけている。

  • IPv6が使われているが、主要なのはまだIPv4で、IPv6は補助的。

  • 移行が順次行われいている。

globalとprivate

  • global

    • Internetでのやり取りに使用される。

    • ICANNが管理する。

    • 世界中で一意である必要があり、重複不可。

  • private

    • オフィスや家庭内など限定的なエリアだけで利用されるアドレス。

    • エリア内では重複不可だが、globalでは重複可。

    • 設定できる範囲は以下のように決まっている。

      • 10.0.0.0~10.255.255.255

      • 172.16.0.0~172.31.255.255

      • 192.168.0.0~192.168.255.255

サブネットマスクとサブネット

  • IPアドレスの利用可能な範囲を決めることが可能。

  • 以下の/16の部分がサブネットマスクである。

    • 左側から16bitまでが固定値という意味である。

10.0.1.0/16
  • CIDR(Classless Inter-Domain Routing)とは

    • 同じサブネットとして扱うIPアドレスの個数を調整できるIPアドレスの設定方法

    • 以下であれば、10.0.{数字}.{数字}が同じサブネット内のIPアドレスとみなされる。

    • この場合、同じネットワーク内には、65536個存在しうる。

10.0.1.0/16
  • 固定されている部分をネットワーク部、設定可能な部分をホスト部という。

  • /16/24がよく使われる。

    • 単に使う場合は/16、その中でサブネットを分ける場合は/24を使うケースが多い。

    • もっと多く使いたい場合は、サブネットを/20にする場合もある。

  • サブネットにするメリット

    • サブネットに分割することによって、分割することにより宛先を発見しやすくなる。

    • サブネット毎にグループを分ける。

      • publicはインターネット接続あり、privateはセキュアなネットワークにする、など。

  • サブネットマスクは、サブネットにしか使わないわけではない。

    • privateネットワーク全体にもサブネットマスクがある。

    • そしてもちろんその中のサブネットにも、サブネットマスクを設定できる。

VPCとは

  • Virtual Private Cloud

  • 仮想ネットワークを作るサービス

  • 最初のAWSアカウントを作成と同時に、AWSクラウドのネットワークから、ユーザー専用の領域を切り出してくれるのもVPC。

    • これがデフォルトのVPCのことである。

  • 以下が可能

    • 任意のIPアドレス範囲を選択して仮想ネットワークを構築

    • サブネットの作成、ルートテーブルやネットワークゲートウェイの設定など仮想ネットワークを完全に制御可能。

    • 必要に応じてクラウド内外のネットワーク同士の接続が可能。

    • その中でオンプレと接続する際、様々な接続オプションが利用可能

      • インターネット経由

      • VPN/専用線(Direct Connect)

デフォルトVPC

  • デフォルトVPC全リージョンに作成され、各AZに一つのサブネットを伴って生成される。

    • たとえばus-east-1はAZが6つあるため、6つのサブネットが生成されます。

    • 東京リージョンは3つのAZのため、3つのサブネットとなります。

  • VPCのCIDRは/16であり、65,536個IPv4アドレスを提供する。

  • サブネットは/20であり、4,096個IPv4アドレスを提供する。

  • このサブネットの中のいくつかはAmazonが使用するために予約される。

  • Internet GWを作成し、デフォルトVPCに接続する。

    • Internet Gatewayは、通常VPCにつき一つ構成されます。

    • Internet Gatewayは、マネージド型サービスのため特に冗長構成などにしなくともダウンタイムなどはほとんどないものとなっています。

  • デフォルトのSecurity Groupを作成し、デフォルトVPCに関連付ける。

  • デフォルトのACLを作成し、デフォルトVPCに関連付ける。

  • デフォルトVPCを備えたAWSアカウントには、デフォルトのDHCPオプションセットを関連付ける。

  • PublicとPrivateのDNSホスト名が付与される。

VPCとサブネット

  • サブネットは一つのAZに紐づける必要がある。複数AZにまたがることはできない。

  • 同じリージョン内のVPCであれば、サブネットを複数作成し、複数のAZにそれぞれ紐づけることで、AZをまたがったVPCを構成することができる。

  • VPCは必ず一つ以上のサブネットと同時に存在する。

  • VPCのCIDRを/16とした場合、使えるサブネットは、/18~/26となる。

    • subnet内でつかえるIPv4アドレスが多くなるほど、subnetの数は小さくなることがわかる。

    • アドレスは、AWS管理IPの5個を差し引いている。 |subnet mask|subnet数|IPv4アドレス数| |:---|:---|:--- |/18|4|16379| |/20|16|4091| |/22|64|1019| |/24|256|251| |/26|1024|59| |/28|4096|11|

    • ただしVPCあたりのサブネット上限数は、デフォルト200個である。

  • 予約されているアドレス

    • .0 : ネットワークアドレス

    • .1 : VPCルータ

    • .2 : Amazonが提供するDNSサービス

    • .3 : AWSで予約されているアドレス

    • .4 : ブロードキャストアドレス

publicとprivate

  • サブネットには、publicとprivateの2種類がある。

  • 実際には、ルートテーブルにInternetへのルートがあるかどうかでpublicかどうかが決まる。

  • 送信先を0.0.0.0/0、ターゲットをlgw-xxxxxxxxとすればサブネット内のすべてがインターネット接続できる。

  • アクセスできるIPを限定したい場合は、送信先を編集する。

  • privateをInternet接続させるためには、NATゲートウェイなどを使用する。

    • NATゲートウェイをpublic側に設置

    • privateはそのNATゲートウェイ経由でアクセスする。

  • NATゲートウェイは、privateアドレスをglobalアドレスに変換することにより、Internet側に通信を返すことができるようになる。

  • NATゲートウェイは1か月くらい使用すると1000円オーダーの料金は発生する。

NATゲートウェイとインスタンスの違い

  • NATゲートウェイ

    • Elastic IPとパブリックサブネットを指定するだけですぐ使えてメンテしなくていい(楽)

    • 1時間単位の利用料とイン・アウト関係なく転送量によって課金される(高い)

  • NATインスタンス

    • NATとして動作させるただのEC2(楽じゃない)

    • インスタンスの利用料に加えてアウトバウンドの時のみデータ転送料金がかかる(安い)

VPC外への接続

  • 2津種類がある。

    • publicのAWSネットワーク

    • エンドポイント(S3など)

ルートテーブル

  • パケットの行き先を設定できる。

  • VPC作成時にデフォルトで一つのルートテーブルが作成されている。

  • VPC内はCIDRアドレスでルーティングする。

VPC設計のポイント

  • 将来の拡張性を見据えたアドレスや他ネットワークとの接続を考慮する。

    • CIDRは既存の利用中のVPCや社内のデータセンター、オフィスと重複しないアドレス帯を設定する。

    • 将来の組織構成、必要なアドレス数などを計画する。

  • VPC単体ではなく、いくつのVPCを構成するか、VPC全体の関係性を考慮する。

  • 組織とシステム境界からVPCをどのように分割するか検討する。

  • 複数AZを利用して可用性の高いシステムを構築

  • サブネットは大きいサブネットを使用し、publicやprivateを分割する。

  • Security Groupを使いリソース間のトラフィックを適切に制御する。

  • 実装や運用を補助するツールも有効利用し、VPC Flow Logsなどを使ってモニタリングする。

Egress Only Internet Gateway

  • IPv6用のサービスで、IPv4用のNAT Gatewayのようなもの。

Carrer Gateway

  • 新しいサービスで5G関連。

  • AWS wavelengthという新しいZoneがある。5G用の専用のWavelength Zoneと呼ばれる。

  • wavelength内に作ったリソースとのやり取りをするために使用されます。

DHCPオプションセット

  • TCP/IPネットワークのホストに設定情報を渡す標準的な規格

  • DomainやDomain名などの情報を渡す役割

  • global IP Addressとprivate IP Addressのやり取り

  • DNSの名前解決をVPC内でするためにはこれが必要不可欠

Elastic IP

  • 通常インスタンスを起動すると、public IPアドレスが動的に割り当てられる。

  • それを避けるために固定IPを使用する仕組み。

Managed Prefix List

  • IPアドレス範囲をリストとして設定することができる機能。

  • 基本的にはAWSが作成したリストが設定されている状態となっている。

  • ユーザー側で特定のリストを作成することも可能。

Endpoint

  • VPC外のAWSサービスと接続するためのもの

Endpointのサービス

  • Endpointを使って、他のAWSアカウントから自身のVPCに接続させるためのサービス。

NATゲートウェイ

  • Internetからの直接的なアクセスを防ぎながらInternet側のトラフィックを戻すことができる。

  • privateからinternetに接続するために必要。

ピアリング接続

  • VPCとVPCをつなげる際に利用する

セキュリティ

ネットワークACL

  • VPCやsubnetに設定するファイヤーウォールのようなもの。

  • IPアドレスに基づいた制御、プロトコル単位でのトラフィック制御などが可能。

Security Group

  • Instance間のトラフィックを制御するもの。

  • EC2インスタンスやRDSやELBに設定し、トラフィック制御をsshやhttpに設定することができる。

  • Security Groupは、使いまわすことが可能だが、VPC内でしか使いまわせない。

  • 作成したはずのSGが見つからない場合は、VPCの設定を見直す必要がある。

Network Analysis

Reachability Analyzer

  • 到達可能性アナライザ。

  • VPC内の任意のリソース間の到達可能性を調べることができる。

Network Access Analyzer

  • 新しい仕組み

  • ネットワークのセキュリティをチェックする仕組み。

  • スコープという形でセキュリティを定義し、そのスコープにあっているかを評価することができる。

DNS Firewall

  • Route53を使ったFirewallであり、Route53の機能。

  • VPCにある理由としては、Resolverを介してVPCから送信されるDNSクエリに対してDNSレベルの虚偽を防ぐことができる機能を提供しているため。

  • Domain名をフィルタリングしてドメイン名からセキュリティを強化する。

Rule Group

  • フィルタリングのルールをグループ化しては前を付けたものをRule Groupという。

  • 一つ一つはFirewallルールという。

Domain List

  • Firewallルールでは、ドメイン名を指定して許可・拒否を設定する。

  • そのドメイン名をリスト化するための機能。

Network Firewall

  • 新しいFirewallであり、VPCに直接付与するFirewall。

  • 今までは、Security Group、ACLがあったが、IPやプロトコルを指定するシンプルなFirewallであった。

  • WAFはCloudFrontやRoute53に設定するものであり、VPCを直接Firewallする機能がなかった。

  • Firewall PolicyやFirewall Roule Groupを設定して、フィルタリングを作成し、IPS(侵入防止システム)として機能する。

VPN(Virtual Private Network)

  • VPN接続をオンプレのデータセンターなどと接続する際に設定するもの。

  • Customer gateway

    • オンプレ側の接続点

  • 仮想 Private gateway

    • VPC側の接続点

  • サイト間VPN接続

    • 実際の接続設定はこちらから行う。

  • Client VPN Endpoint

    • ネットワークにVPN接続する際のエンドポイントの設定。

AWS Cloud WAN

  • オンプレミスの複数事業拠点とAWSを接続管理するためのサービス。

  • Network Managerを用いて実際に管理する。

Transit Gateway

  • 多数のVPCを利用している場合に、ハブ・アンド・スポークのように関連付けて管理することができる機能。

トラフィックのミラーリング

  • ネットワークトラフィックを補足して検査する機能

Settings

  • AZとWavelengthゾーンを設定することなどができる。

S3の接続

  • S3はVPC内ではなく、Region内に作成されるため、VPC向けのEndpointが必要であり、VPCウィザードでもそのように作成することができる。

  • これはprivate subnetにendpointが設定されている。

  • 使わない場合はこのgatewayを削除する。

DNS設定

  • VPC作成時にDNS解決を有効化するとRoute53を用いて名前解決をすることができる。

  • DNSホスト名を有効化すると、VPC内でホスト名でアクセスすることができる。

ルートテーブルの設定

  • サブネット内のルータをインタネットゲートウェイ(これはVPCにある)にルーティングすることで、インターネット接続が可能となる。

  • これによりサブネットをpublicにすることができる。

Elastic IP

  • NATゲートウェイはElastic IPが割り振られる。

  • Elastic IPは割り当て垂れてない未使用なものは費用がかかるため、NATゲートウェイを消す場合は、Elastic IPを消すことを忘れないようにする。

global/private IPアドレス

  • private IP addressは、DHCPサーバーにより自動的に割り当てられる。

  • private IP addressはInternetでは使えない。

  • 接続する際は、private ipをglobal ipにNATが変換することで接続が可能となる。NATソフトウェアが入っているルーターも多い。

  • 複数を共通してglobal ipに変換する場合は、ip mascaradeという。(NATは1対1)

  • DHCP, NAT, IPマスカレードは、一つのルーターで実行されることも多い。

privateサブネット内のリソースへのアクセス

  • サブネット内に向かってくる方向の通信は、internet gatewayをpublic subnet内の踏み台サーバーを経由して、接続する。

  • この時も返信側にはNATゲートウェイが使われる。

NATゲートウェイ

  • サブネットの指定でpublic subnetをする。

  • 2タイプある。(public/private)

    • 基本publicで使うようだ。

    • privateなNATゲートウェイって?

      • Transit Gatewayなどで使うようだ

  • Elastic IPを割り当てる(必須?)。

  • private gatewayのRoute tableにNAT gatewayを0.0.0.0/0にして設定する。

Protocol と OSI Reference Model

  • 住所(アドレス)だけでは通信できない。

  • メールでは、SMTP(Simple Mail Transfer Protocol), POP(Post Office Protocol)

  • Webでは、HTTP(Hypter text transfer protocol)

  • OSI

    • 7つのlayer

      • Application ... HTTP, HTTPS, POP, SMTP

      • Presentation ... 文字コード、圧縮、暗号復号(コンピュータ間の表現の違いも吸収)

      • Session ... 認証状態、アクセス権限

      • Transport ... ポート番号の割り当て、TCP/UDP、パケット制御

      • Network ... IPアドレスのルーティング

      • Datalink ... MACアドレス

      • Phisical ... ビット単位(header, payloadの形式)

  • TCP/IPモデル

    • OSIが細かいのでまとめたもの

      • Application ... HTTP, SSH, DNS, SMPT, POP3, FTPなど

      • Transport ... TCP, UDPなど

      • Network ... IP, ICMP, ARP, BGPなど

      • Phisical ... Ethernet, PPPなど

  • PORTはOSがデータを受け取るためのEndpoint

    • デフォルトのポート番号はいろいろ決まっている。

Security GroupとACL

SG(Security Group)

  • EC2などのinstanceのトラフィック制御をする。

    • アクセス権限はIAMで管理するので、それとは少し違う。

  • defaultはすべて拒否。

    • sshは設定されているが、自身のIPだけに許可されている。

  • 例えば、HTTPは拒否してSSH(22)だけ許可している、など。

  • 複数のSGをインスタンスで共有することもできる

ACL

  • subnetに対してトラフィック制御を実施する。

  • デフォルトはすべてALLOWだが、カスタムで作成すると、すべてDENYされたACLとなっている。

  • subnetに割り当てできるのは、1つのACLのみっぽい。

  • 実際にクライアントからアクセスするためにはアウトバウンドルールに以下を追加

    • カスタムTCPルール

    • port: 1024-65535

    • yumに失敗する場合は、インバウンドにもこれを追加する?

    • ephemeral portsというらしい。

      • https://e-words.jp/w/%E3%82%A8%E3%83%95%E3%82%A7%E3%83%A1%E3%83%A9%E3%83%AB%E3%83%9D%E3%83%BC%E3%83%88.html

    • サーバーは固定でも、クライアント側のポート番号は定めがないためと思われる。

    • これに対してwell-known portsというものがある。

      • 主な用途やプロトコルが決まっており、一時的な利用のために動的に占有することが推奨されないポート番号群のこと

      • 一般的には0番から1023番までの範囲を指す。

比較

SG
ACL

サーバー単位

VPC/subnet単位

ステートフル(インバウンドを許可すればアウトバウンドも許可)

ステートレス

許可のみをIn/Outで設定(拒否する場合は設定しない)

許可と拒否をIn/Outで設定

デフォルトは同じSG内のみのインバウンドが許可。アウトバウンドはすべてのトラフィックが許可されている。

デフォルトはすべて許可

すべてのルールが適用

番号の順番通りに適用(デフォルトのすべて許可は100番になっている)

  • subnet内ではprivate ipでアクセスできる。

  • NATゲートウェイはsubnetに割り当てる。

  • private NATゲートウェイとは?

    • NATゲートウェイはpublicの場合必ずElastic IPが必要

    • privateはElastic IPが不要

    • 他のVPCやオンプレNWに接続するために必要になる。(Transit Gateway, 仮想Private Gateway)

  • private subnetのルートテーブルを編集し、NATゲートウェイを割り当てる。

  • NATが割り当てられてて消された場合は、blackhole statusになっている。

Direct Connect

  • DCやOfficeと専用線を介してAWSに接続するサービス

  • メリット

    • 安価なアウトバウンドトラフィック料金

    • ネットワークの信頼性向上

    • ネットワークの帯域幅向上

  • Direct ConnectロケーションにあるDirect Connectデバイスと、自社の危機を物理的に接続する。

    • ロケーションはAZよりも細かい場所にある

Direct Connect Gateway

  • 複数のリージョンの複数AZから複数リージョンの複数VPCに接続可能となる。

VPNとDirect Connectの比較

  • VPN

    • 安価なベストエフォート回線。

    • 即時の導入が可能。

    • 帯域幅に制限があり、ネットワーク品質低下や障害発生時の切り分けの難しさなどがある。

  • Direct Connect

    • キャリアとの専用線サービス契約が必要となり割高

    • 物理対応のため導入に数週間かかる。

    • 帯域幅やネットワーク品質、障害発生時の切り分けも比較的容易。

VPCエンドポイント

  • S3などグローバルIPをもつAWSサービスに対してアクセスするための出口

  • 2種類の接続方式がある。

    • Gateway型

      • サブネットに特殊なルーティングを設定(ルートテーブル)を実施

        • Internet Gatewayと同じような感じで、サブネットのルートテーブルに設定する。

      • アクセス制御はエンドポイントポリシーで行う。

      • 料金が無料

      • 冗長性をAWS側が担保するマネージド型サービス

      • Gateway型は、S3かDynamoDBでしか使えない。

    • Interface型

      • サブネットにエンドポイント用のPrivate IPを持ったものを作成し、DNSの名前解決でルーティングする。

      • アクセス制御はSG(Security Group)で行う。

      • 料金が有料

      • 冗長性はマルチAZ設計となっている。

    • 使い分けは...?

  • public subnetはエンドポイントを使わなくてもインターネットを通してS3に接続できてしまう。

  • private subnetもNATゲートウェイがあれば接続できてしまう。

  • これはトラフィックがインターネットに出ていくのか微妙な気がするが?

  • ACLとの兼ね合いはありそう

    • https://dev.classmethod.jp/articles/vpc-endpoint-gateway-type/

VPC Flow Logs

  • ネットワークトラフィックを取得し、CloudWatchでモニタリングできるようにする機能

  • SGやACLのルールでaccepted/rejectされたトラフィックログを取得

  • キャプチャウィンドウと言われる時間枠で収集・Processing・保存する。

  • RDS, Redshift ElasticCache WorkSpacesのネットワークインタフェースのトラフィックも取得可能

  • 追加料金なし。

  • CloudWatchでCloudWatch Logsのロググループを作成しておく必要がある。

  • Flow Logsを作成し、送信先をCloudWatchで作成したロググループにする。

  • CloudWatchに送信するためのIAMロールが必要。

    • EC2のIAMポリシーロールになるが、他の権限のついてしまうため、手動でlogs系のアクションのカスタムポリシーを作成する。

VPC設定の上限

|VPC数|5 per 1リージョン| |サブネット数|200 per 1VPC| |Elastic IP数|5 per 1AWSアカウント, 1リージョン| |ルート数|100 per 1ルートテーブル| |SG数|500 per 1VPC| |SGルール数|50 per 1SG|

VPC分割方法

  • アプリケーション単位

  • 監査

  • リスクレベル

  • 組織(部署)

  • 本番・検証・開発フェーズ

VPC Peering

  • VPC間でトラフィックルーティングすることが可能

  • 異なるAWSアカウントや異なるリージョン間での接続も可能

  • マネージド型のため、単一障害点や帯域などのボトルネックもない

  • 1対1の仕組みなので、例えばVPC3つ全部を接続するためには全結合させる必要がある。

private subnetのEC2からS3へのアクセス

  • EC2のIAMロールとしてS3へのアクセスポリシーを設定

  • public EC2からprivate EC2にssh接続

  • aws s3 lsで確認

  • VPCエンドポイント作成

    • VPCを指定

    • ルートテーブルも指定

    • Internet Gatewayと同じような感じで、サブネットのルートテーブルに設定する。

    • ポリシーはすべて許可とする。

  • aws s3 ls --region ap-northeast-1で確認

    • エンドポイントとしてリージョンを指定する必要がある?

Transit Gateway

  • VPC Peeringは1対1でしか構成できなかったが、数が多い場合に大変。

  • それを解決するためのサービスとして作られ、ハブのように機能する。

  • VPC以外のサイト間VPNなども中継し、オンプレミスのオフィスとVPCを中継するという使い方も可能。

  • 手順

    • Trainsit Gatewayをまず作成

    • Transit Gateway AttachmentをVPCの数分作成する。

  • マルチキャストドメインとは?

    • 単一のデータストリームを複数の受信PCに同時に配信するためのプロトコル

    • それをTransit Gatewayのルーティングで提供する。

Last updated