Amazon VPC (Virtual Private Cloud) · Amazon VPC (Virtual Private Cloud) 2015/04/15 (2016/01/18...
Transcript of Amazon VPC (Virtual Private Cloud) · Amazon VPC (Virtual Private Cloud) 2015/04/15 (2016/01/18...
Amazon VPC (Virtual Private Cloud)
2015/04/15 (2016/01/18 Renewed)
AWS Black Belt Tech Webinar 2015
アマゾン データ サービス ジャパン株式会社
ソリューションアーキテクト 吉田英世
イントロダクション
AWS上でインターネットから
アクセス可能なアプリケーションを動作させたい。
AWS上で社内業務ア
プリケーションを動作させたい。
インターネットからアクセスできる領域を制限
したい。
社内とセキュアに接続させたい。
オンプレミス環境で構築したシステムの例
データセンター オフィス
管理者
管理者
踏み台
インターネットからアクセス可能なパブリック領域
インターネットから直接アクセスできないプライベート領域
エンドユーザ
LB
Web Web VPN
ルータ
VPN
ルータ
オフィスからのVPN接続
踏み台サーバ経由で
各サーバへのリモートログイン
AWS上でもオンプレミス環境に類似した 自社専用の仮想ネットワークを構築可能
データセンター オフィス
管理者
管理者
踏み台
インターネットからアクセス可能なPublic Subnet
インターネットから直接アクセスできないPrivate Subnet
エンドユーザ
LB
Web Web VPN
ルータ
VPN
ルータ
オフィスからのVPN接続
踏み台サーバを経由で
各サーバへのリモートログイン
Amazon VPC
• AWS上にプライベートネットワーク空間を構築 – 社内からVPN接続して閉域網でAWS利用 – 仮想ネットワーキング
• オンプレミスとのハイブリッドが簡単に実現 – AWSが社内インフラの一部に見える 社内システム、ソフトウェアの移行がより容易に 例:業務システム、バッチ処理、ファイルサーバ
• より細やかにネットワーク関連の設定が可能 • 全リージョンで利用可能
AWS上にプライベートのアドレス空間を作成し、 お客様のインフラをAWS上に延長する
リージョン
EC2
VPC イントラ プライベート サブネット
パブリック サブネット
Internet
VPC内に分離したサブネットを
自由に作成
VPN接続 専用線
ゲートウェイ
VPN
DX
VPCを利用するメリット
• AWSアカウント登録をしたらすぐに利用可能
• 簡単に自社専用の仮想ネットワークを構築可能
• 物理的なデータセンターの利用契約やネットワーク機器の配備は不要
• インターネットからアクセスできない、社内ユーザのみアクセス可能な仮想ネットワークの構築が可能
• 仮想ネットワークの構築自体は無料
EC2-ClassicとVPC
EC2-Classic
すべてのインスタンスは インターネット接続を 持ち、プライベートIPと パブリックIPが自動で 割当てられる。
Default VPC
アカウント作成後にすでに設定されているVPC。 VPC上のインスタンスはEC2-Classicと同じようにインターネット接続を持ち、プライベートIPとパブリックIPが自動で割当てられる。 削除するとユーザ側では復元できない。サポートへの問い合わせが必要。 172.31.0.0/16(サブネットは/20)で固定。 http://docs.aws.amazon.com/ja_jp/AmazonVPC/latest/UserGuide/default-vpc.html
VPC ユーザ自身でネットワークの設定を行う。 各種ネットワーク機能を利用可能。 ・ENI ・ルーティングテーブル ・ネットワークACL ・プライベートIPのみの利用
2013年4月12日以降に作成されたアカウントはVPCのみサポート、デフォルトVPCをすべてのリージョンで利用可能
VPCの構成要素
Elastic ネットワーク インタフェース
Customer Gateway
バーチャル プライベート ゲートウェイ
インターネット ゲートウェイ
VPN コネクション
VPC
サブネット ルートテーブル
Elastic IP
VPC Peering
仮想ルータ
VPC
Availability Zone A Availability Zone B
VPC CIDR: 10.1.0.0 /16
■仮想データセンターをAWS上に設定
■VPC内で利用するIPアドレスのブロック
を設定
- 通常であればプライベート
アドレス(RFC1918)を利用
- /28から/16のネットマスクを利用
■複数のアベイラビリティゾーンを利用
可能
作成後はVPCアドレスブロックは変更できないので注意!
サブネット
Subnet
Availability Zone A
Subnet
Availability Zone B
10.1.1.0/24 10.1.10.0/24
VPC CIDR: 10.1.0.0 /16
■VPCのIPアドレス範囲(CIDR)の中で設定
■アベイラビリティゾーン毎に設定
■アクセスコントロールリストにより
ネットワークレベルでのセキュリティ
を設定
■サブネット毎にルーティングを設定
■最小は/28(14IP)
■サブネット内の先頭の4つ、最後の1つの
IP以外をEC2インスタンス用に利用可能
インターネットゲートウェイ
Subnet
Availability Zone A
Subnet
Availability Zone B
10.1.1.0/24 10.1.10.0/24
Internet
Gateway
VPC CIDR: 10.1.0.0 /16
Internet AWS Public
API Endpoints
■IGW=Internet Gateway
■EC2インスタンスにインターネットへの
接続を提供
■VPCにアタッチすることで利用可能
■サブネットでルーティング指定
■単一障害点や帯域幅のボトルネック
は存在しない
バーチャルプライベートゲートウェイ
Subnet
Availability Zone A
Subnet
Availability Zone B
10.1.1.0/24 10.1.10.0/24
VPC CIDR: 10.1.0.0 /16
Virtual Private Gateway
Customer Gateway
VPN over the Internet
Corporate Data Center
■VGW=Virtual private Gateway
■オフィスやデータセンターなどの
オンプレミスとのVPN接続のための
エンドポイントとなる仮想ルータ
■Direct Connect(専用線)のエンド
ポイントとしても利用
■1つのVPCあたり1つのVGWのみ
アタッチ可能
■単一障害点や帯域幅のボトルネック
は存在しない
カスタマゲートウェイ
Subnet
Availability Zone A
Subnet
Availability Zone B
10.1.1.0/24 10.1.10.0/24
VPC CIDR: 10.1.0.0 /16
Virtual Private Gateway
Customer Gateway
Corporate Data Center
VPN over the Internet
■CGW=Customer Gateway
■オンプレミス側のVPN接続エンド
ポイントとなる物理または仮想の
デバイス
■通常はファイアウォールまたはルータ
を利用
http://docs.aws.amazon.com/ja_jp/AmazonVPC/latest/NetworkAdminGuide/Introduction.html
仮想ルータ
Public Subnet
Availability Zone A
Private Subnet
Public Subnet
Availability Zone B
Private Subnet
Instance A
10.1.1.11 /24
Instance C
10.1.3.33 /24
Instance B
10.1.2.22 /24
Instance D
10.1.4.44 /24
VPC CIDR: 10.1.0.0 /16
.1
.1 .1
.1
■デフォルトではVPC内のすべて
のサブネット間は疎通可能
(制御したい場合はNACL利用)
■サブネットのネットワーク
アドレス+1(.1)がすべての
サブネットのゲートウェイと
なる
VPNコネクション
Subnet
Availability Zone A
Subnet
Availability Zone B
10.1.1.0/24 10.1.10.0/24
VPC CIDR: 10.1.0.0 /16
Virtual Private Gateway
Customer Gateway
Corporate Data Center
VPN over the Internet
■VPCとオンプレミス間のVPN接続
■CGWとVGWの間でIPsecトンネル
が設定される
■1つのCGW(1つのパブリックIP)に対し
1つのVPNコネクションが設定される
■1つのVPCに対しては複数のVPN
コネクションが設定可能
ルートテーブル
Subnet
Availability Zone A
Subnet
Availability Zone B
10.1.1.0/24 10.1.10.0/24
Internet
Gateway
VPC CIDR: 10.1.0.0 /16
Internet AWS Public
API Endpoints
Route Table
Destination Target
10.1.0.0/16 local
0.0.0.0/0 igw
■どのネットワークに対する通信が
どこに対して転送されるべきかの
定義を記述
(例:インターネットへの通信はIGW)
■各サブネットに1つ設定
■1つのルーティングテーブルには複数の
サブネットが設定可能
■デフォルトではメインルートテーブルが
設定
Elastic IP
Availability Zone A Availability Zone B
Subnet: 10.1.1.0/24
Internet
Gateway
VPC CIDR: 10.1.0.0 /16
Internet AWS Public
API Endpoints
Route Table
Destination Target
10.1.0.0/16 local
0.0.0.0/0 igw
Subnet: 10.1.10.0/24
EIP EIP
■EIP=Elastic IP
■アカウントに紐付けられる固定の
パブリックIP
■EC2インスタンスに割り当て可能
■EC2インスタンスに関連づけられた
1つめのEIPには課金されない
■課金されるケース
- 追加でEIPを利用する場合
- 起動中のEC2インスタンスに割当て
られていない場合
- アタッチされていないENIに割当て
られている場合
- 1ヶ月間でリマップ(割当て、取り外し)
が100回を超えた場合 http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html
Elastic ネットワークインタフェース
Availability Zone A Availability Zone B
Subnet: 10.1.1.0/24
Internet
Gateway
VPC CIDR: 10.1.0.0 /16
Internet AWS Public
API Endpoints
Subnet: 10.1.10.0/24
ENI (eth0)
ENI (eth0)
Route Table
Destination Target
10.1.0.0/16 local
0.0.0.0/0 igw
■ENI=Elastic Network Interface
■EC2インスンタンス毎に仮想ネット
ワークインタフェースを複数持つ
ことが可能
■以下をENIに紐づけて維持可能
プライベートIP
Elastic IP
MACアドレス
セキュリティグループ
■インスタンスによって割当て数が
異なる http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/using-eni.html
VPC Peering (VPCピア接続)
Availability Zone A
Subnet: 10.1.1.0/24
VPC CIDR: 10.1.0.0 /16
Availability Zone A
Subnet: 10.2.1.0/24
Route Table
Destination Target
10.2.0.0/16 local
0.0.0.0/0 pcx-xxxxxx
VPC CIDR: 10.1.0.0 /16 VPC CIDR: 10.2.0.0 /16
pcx-xxxxxx
■プライベートIPアドレスを利用して
2つのVPC間でトラフィックの
ルーティングが可能
■同一のAWSアカウントはもちろん、
異なるAWSアカウント間(クロス
アカウント)のVPC間をピア接続
することも可能
■単一障害点や帯域幅のボトルネック
は存在しない
■MTUに注意(VPC Peeringは1,500)
Route Table
Destination Target
10.1.0.0/16 local
0.0.0.0/0 pcx-xxxxxx
http://docs.aws.amazon.com/ja_jp/AmazonVPC/latest/UserGuide/vpc-peering.html
ネットワークアクセスコントロールリスト
Availability Zone A Availability Zone B
VPC Subnet with ACL VPC Subnet with ACL
■NACL=Network Access Control
List
■サブネット毎に設定するフィルタ
機能
■インバウンド、アウトバウンドを
サブネット毎に制御
■ステートレス
■デフォルトはすべて許可
http://docs.aws.amazon.com/ja_jp/AmazonVPC/latest/UserGuide/VPC_ACLs.html
セキュリティグループ
Availability Zone A Availability Zone B
Subnet: 10.1.1.0/24
VPC CIDR: 10.1.0.0 /16
Subnet: 10.1.10.0/24
■EC2インスタンスの仮想ファイア
ウォールとして機能
■1つのEC2インスタンスあたり5つの
セキュリティグループを設定可能
■ステートフル
■デフォルトですべての通信は禁止
■複数のEC2インスタンスを
グルーピング可能
http://docs.aws.amazon.com/ja_jp/AmazonVPC/latest/UserGuide/VPC_SecurityGroups.html
VPCセキュリティコントロール
Route Table
Route Table
Internet Gateway
Virtual Private Gateway
Virtual Router
VPC 10.1.0.0/16
Network ACL vs セキュリティグループ
Network ACL セキュリティグループ
サブネットレベルで効果 サーバレベルで効果
Allow/DenyをIN・OUTで指定可能 (ブラックリスト型)
AllowのみをIN・OUTで指定可能 (ホワイトリスト型)
ステートレスなので、戻りのトラフィックも明示的に許可設定する
ステートフルなので、戻りのトラフィックを考慮しなくてよい
番号の順序通りに適用 全てのルールを適用
サブネット内のすべてのインスタンスがACLの管理下に入る
インスタンス管理者がセキュリティグループを適用すればその管理下になる
Webシステムの構成のポイント
• Webサーバなどインターネットと直接通信が必要なリソースはパブリックのサブネットへ配置 – オンプレミスでDMZに置かれていたリソース
– セキュリティグループを利用して必要な通信を許可
• データベースなどインターネットと直接通信が不要なリソースはプライベートのサブネットへ配置 – オンプレミスでセキュアネットワークに置かれていたリソース
– セキュリティグループを利用してパブリックサブネット上のリソースからの通信のみを許可
– パッチの適用などでインターネット通信が必要な場合はNATインスタンスを配置(後述)
アーキテクチャセンター:http://aws.amazon.com/jp/architecture/
シンプルなWeb構成
Availability Zone A
Public Subnet:
10.1.1.0/24
VPC CIDR: 10.1.0.0 /16
PrivateSubnet:
10.1.1.0/24
Internet
Webサーバ
データベースサーバ
ロードバランサ + マルチAZを利用したWeb構成
Availability Zone A Availability Zone B
Public Subnet:
10.1.1.0/24
VPC CIDR: 10.1.0.0 /16
PrivateSubnet:
10.1.1.0/24
Public Subnet:
10.1.2.0/24
PrivateSubnet:
10.1.2.0/24
Internet
Webサーバ
データベースサーバ
VPCとオンプレミスのネットワーク接続方法
• 2通りの接続方法 – インターネットVPN接続(IPsec)
– AWS Direct Connectを使った専用線接続
• EC2インスタンス上にVPNソフトウェアを動作させることでVPN接続も可能
VPN (Virtual Private Network)
• IPsec によるVPNを利用 – トンネルモード
– 暗号化:AES128bit
• ルーティングプロトコルが選択可能 – BGP(Border Gateway Protocol) ※推奨
– スタティックルート
• オンプレミス側はカスタマゲートウェイが必要 – インターネットと直接通信可能なパブリックIPが利用できること
– 暗号化処理前にフラグメント可能であること
– IPsec Dead peer Detectionが利用できること(オプション)
VPN対応機器リスト
■静的ルーティングを使用する場合 Cisco ASA 500シリーズ バーション8.2移行 Cico ISR (IOS 12.4以降) SonicOS5.8以降を実行するDell SonicWALL次世代ファイアウォール(TZ,NSA,SuperMassiveシリーズ) Juniper Jシリーズサービスルーター (JunOS 9.5以降) Juniper SRXシリーズサービスゲートウェイ (JunOS 9.5以降) ScreenOS 6.1もしくは6.2(またはそれ以降)のJuniper SSG/ISG Microsoft Windows Server 2008 R2 以降 ヤマハ RTX1200 ルーター
■動的ルーティングを使用する場合 Astaro Security Gateway/Security Gateway Essential Firewall Edition バージョン8.3以降 Cisco ISR (IOS 12.4以降) SonicOS5.9以降を実行するDell SonicWALL次世代ファイアウォール(TZ,NSA,SuperMassiveシリーズ) Fortinet Fortigate 40+シリーズ (FortiOS 4.0以降) Juniper Jシリーズサービスルーター (JunOS 9.5以降) Juniper SRXシリーズサービスゲートウェイ (JunOS 9.5以降) ScreenOS 6.1もしくは6.2(またはそれ以降)のJuniper SSG/ISG Palo Alto Networks PAシリーズ (PANOS 4.1.2以降) Vyatta network OS 6.5以降 ヤマハ RTX1200 ルーター https://aws.amazon.com/jp/vpc/faqs/#C9
カスタマゲートウェイのコンフィグレーション ! -------------------------------------------------------------------------------- ! IPSec Tunnel #1 ! -------------------------------------------------------------------------------- ! #1: Internet Key Exchange (IKE) Configuration ! ! A policy is established for the supported ISAKMP encryption, ! authentication, Diffie-Hellman, lifetime, and key parameters. ! ! Note that there are a global list of ISAKMP policies, each identified by ! sequence number. This policy is defined as #200, which may conflict with ! an existing policy using the same number. If so, we recommend changing ! the sequence number to avoid conflicts. ! crypto isakmp policy 200 encryption aes 128 authentication pre-share group 2 lifetime 28800 hash sha exit ! The ISAKMP keyring stores the Pre Shared Key used to authenticate the ! tunnel endpoints. !
http://docs.aws.amazon.com/ja_jp/AmazonVPC/latest/NetworkAdminGuide/Introduction.html
VPN構成例(シングル接続)
Virtual Private Cloud
Availability Zone Availability Zone
VPC Subnet VPC Subnet
IPSEC
VPN
Virtual Private Gateway
Router
72.21.209.193 Router
72.21.209.225
Tunnel 1 Tunnel 2
Customer Gateway
xxx.xxx.xxx.xxx
Customer Network
IPSEC
VPN
VPN構成例(カスタマゲートウェイ冗長化)
Virtual Private Cloud
Availability Zone Availability Zone
VPC Subnet VPC Subnet
Tunnel 1
Virtual Private Gateway
Router
72.21.209.193 Router
72.21.209.225
Customer Gateway
xxx.xxx.xxx.xxx
Customer Network
Customer Gateway
xxx.xxx.xxx.yyy
Tunnel 2 Tunnel 2 Tunnel 1
Tunnel 2 Tunnel 2
マルチVPNコネクション
Virtual Private Cloud
Availability Zone Availability Zone
VPC Subnet VPC Subnet
Customer Gateway
Customer Network
New York
VPN
Router Virtual Private Gateway
Customer Gateway
Customer Network
Chicago
VPN
Customer Gateway
Customer Network
Los Angeles
VPN
AWS Direct Connect
お客様
AWS Cloud EC2, S3などの Public サービス
Amazon VPC
相互接続ポイント 専用線 サービス
AWSとお客様設備(データセンター、オフィス、またはコロケーション)
の間に専用線を利用したプライベート接続を提供するサービス
AWS Direct ConnectによるVPC接続
Customer
Data Center
AWS Direct Connect
location
AWS Direct Connect のプライベート 仮想インタフェースはVPC上のVGWに接続 • 1プライベート仮想インタフェースあたり
1VPC • VLANで分割
Public-Facing
Web App
AWS
Region Prod QA Dev
Internal
Company Apps
Internal
Company Apps
Internal
Company Apps
PVI1 PVI2 PVI3 PVI4 PVI5
AWS Public
API Endpoints
キャリア様の専用線でDirect Connectの 相互接続ポイントとお客様拠点を接続
VPNとDirect Connectによる冗長構成
Virtual Private Cloud
Availability Zone Availability Zone
VPC Subnet VPC Subnet
Tunnel 1
Virtual Private Gateway
Router
72.21.209.193 Router
72.21.209.225
Customer Gateway
xxx.xxx.xxx.xxx
Customer Network
Customer Gateway
xxx.xxx.xxx.yyy
Tunnel 2 Tunnel 2 Tunnel 1
Tunnel 2 Tunnel 2
Customer Gateway
xxx.xxx.xxx.AAA
Customer Gateway
xxx.xxx.xxx.BBB
通常時は Direct Connectを
利用
BGPによるルーティングを推奨
VPC内のDHCP
ENI (eth0)
MACアドレス プライベートIP
の割当て
DHCP機能
VPC Subnet
■EC2インスタンスが利用するプライ
ベートIP、MACアドレスはVPC内の
DHCP機能(サブネットのネットワーク
アドレス+2)により割当てられる
■ホスト名を割り当てることはできない
■プライベートIPを固定にした場合
DHCP経由で該当のIPが割当て
られる
(EC2インスタンスのOS上のNIC
設定はDHCP設定とする)
DHCP Option Set
• VPCのDHCP機能の設定変更が可能
http://docs.aws.amazon.com/ja_jp/AmazonVPC/latest/UserGuide/VPC_DHCP_Options.html
パラメータ 内容
domain-name ドメイン名の指定
domain-name-serversDNS DNSサーバの指定
ntp-servers NTPサーバの指定
netbios-name-servers NetBIOSサーバの指定
netbios-node-type NetBIOSノードタイプ
Amazon DNS サーバー
■Amazon Provided DNS
■VPCのネットワーク範囲(CIDR)の アドレスに+2をプラスしたIP (10.0.0.0/16の場合は10.0.0.2) ■VPC内のEC2インスタンスからのみ参照 可能 (VPNなどで接続されているオンプレ ミスからは参照不可)
http://docs.aws.amazon.com/ja_jp/AmazonVPC/latest/UserGuide/VPC_DHCP_Options.html#AmazonDNS
Subnet
Availability Zone A
Subnet
Availability Zone B
10.1.1.0/24 10.1.10.0/24
VPC CIDR: 10.1.0.0 /16
Corporate Data Center
Amazon Provided DNS
10.1.0.2
DNS設定
• VPC内のDNS関連の設定
■Enable DNS resolution.
基本はyesとする
NoにするとVPCのDNS機能が無効となる
■Enable DNS hostname
TrueにするとDNS名が割り当てられる
“Enable DNS resolution”をtrueにしないと有効にならない
インターネット接続:パブリックIPの割当て
サブネットで”Auto-Assign Public IP”を有効にし、EC2インスタンスに パブリックIP(動的)を割り当てる。
Availability Zone A
Internet
Gateway
Internet
Route Table
Destination Target
10.1.0.0/16 local
0.0.0.0/0 igw
Private Subnet:
10.1.10.0/24
10.1.10.100
54.xxx.xxx.xxx
パブリックIPを自動割当て
インターネット接続:Elastic IPの割当て
EC2インスタンスにElastic IP(固定パブリックIP)をを割り当てる。
Availability Zone A
Internet
Gateway
Internet
Route Table
Destination Target
10.1.0.0/16 local
0.0.0.0/0 igw
Private Subnet:
10.1.10.0/24
10.1.10.100
54.xxx.xxx.xxx
パブリックIPを固定で割当て
EIP
インターネット接続:NATインスタンス ■インターネットと直接通信できない
プライベートネットワークに対し、
インターネットへの経路を確保する
■プライベートネットワークの
ルーティングテーブルでデフォルト
ルートをNATインスタンスに向ける
■AWS上にNAT用のEC2 AMIあり
■パッチダウンロードやAWSクラウド
上のサービス(S3など)へのアクセス
確保に利用
■高可用性を別途検討
Availability Zone A Availability Zone B
Public Subnet:
10.1.1.0/24
Internet
Gateway VPC CIDR: 10.1.0.0 /16
Internet AWS Public
API Endpoints
Route Table
Destination Target
10.1.0.0/16 local
0.0.0.0/0 igw
Private Subnet:
10.1.10.0/24
Route Table
Destination Target
10.1.0.0/16 local
0.0.0.0/0 NAT
インターネット接続:オンプレミス経由
専用線(Dicrect Connect)などでお客様のオンプレミス拠点を接続し、 インターネットトラフィックをオンプレミス経由とする。
Availability Zone A Route Table
Destination Target
10.1.0.0/16 local
0.0.0.0/0 vgw
Private Subnet:
10.1.10.0/24
専用線
Direct Connect
お客様拠点
Internet
プライベートサブネットからAWSクラウドへのアクセス
プライベートサブネットから“VPC外”にエンドポイントがあるサービスに アクセスするためにインターネット接続が必要。
virtual private cloud
VPC subnet
RDS DB instance
RDS DB instance standby
(Multi-AZ)
EC2 instances
Elastic Load Balancing
ElastiCache node
Amazon S3
Amazon DynamoDB
Amazon Simple Queue
Service
Internet gateway
VPC内の特定ルートの設定は不可
Availability Zone B
Public Subnet
Availability Zone A
Private Subnet
Public Subnet
Private Subnet
Instance A
10.1.1.11 /24
Instance C
10.1.3.33 /24
Instance B
10.1.2.22 /24
Instance D
10.1.4.44 /24
VPC CIDR: 10.1.0.0 /16
Route Table
Destination Target
10.1.0.0/16 local
10.1.1.0/24 InstanceB
注意すべきネットワーク構成
• VPN、AWS Direct Connect、VPC Peeringでの接続においては以下のように2ホップ以上先のネットワークとの通信はできない。
10.1.0.0/16
10.0.0.0/16
10.2.0.0/16
C
10.1.0.0/16 10.2.0.0/16
C
ENIの便利な利用例
HA構成時のフェイルオーバー メール送信サーバ(SMTPリレー用)
ENI
VPC subnet
VPC subnet ENI
ENI
ENIの付け替え
ENI
VPC subnet
ENI
ENI
ENI
異なるIPからメール送信
※ENIはAZをまたぐことはできないので要注意
VPCのリミット関連
• デフォルトの上限値が増加したものもあり – http://docs.aws.amazon.com/AmazonV
PC/latest/UserGuide/VPC_Appendix_Limits.html
• Webサイトから制限解除申請可能 – http://aws.amazon.com/jp/contact-
us/vpc-request/
• 不明点はAWSサポートや担当営業までお問い合わせください。
ブロードキャストとマルチキャスト
172.31.16.124
172.31.28.164
172.31.47.71
Subnet 172.31.16.0/20 Subnet 172.31.32.0/20
App1,192.168.0.12/24
App1,192.168.0.11/24
App1,192.168.0.10/24
• ブロードキャストとマルチキャストはVPC内で通信できないため、GREまたはL2TPのトンネル等によりオーバーレイで実装する必要がある
共通サービスのVPC Peering利用
以下のような共通サービス用VPC-Aを中心にサービス用VPCをスター型に配置
・ログ収集
・モニタリング
・リモート管理
・スキャニング
AWS
region
Public-facing
web app
Internal
company
app #1
HA pair
VPN
endpoints company data center
Internal
company
app #2
Internal
company
app #3
Internal
company
app #4
Services
VPC
Internal
company
Dev
Internal
company
QA
AD, DNS
Monitoring
Logging
ソフトウェアファイアウォールの利用
Availability Zone A Availability Zone B
Public Subnet:
10.1.1.0/24
Internet
Gateway VPC CIDR: 10.1.0.0 /16
Internet
Route Table
Destination Target
10.1.0.0/16 local
0.0.0.0/0 igw
Private Subnet:
10.1.10.0/24
Route Table
Destination Target
10.1.0.0/16 local
0.0.0.0/0 NAT/F
W
marketplaceから ISVパートナーの 製品を選択可能
リージョン間のVPC間接続例
Public Subnet:
10.1.0.0/24
Availability Zone A
Private Subnet:
10.1.10.0/24
東京リージョン
Public Subnet:
10.2.0.0/24
Availability Zone A
Private Subnet:
10.2.10.0/24
シンガポールリージョン
インターネットVPN
ソフトウェアVPNルータを
EC2で構築し、 インターネット
VPNで接続
EC2-ClassicからVPCへの移行(ClassicLink)
■EC2-ClassicからVPCへのシームレスな
接続環境を提供 ■EC2-Classic上のインスタンスをVPC 上のセキュリティグループへ追加 することが可能 ■EC2-ClassicからVPCへの移行に利用
RDS DB
Instance
Amazon
Route 53
ELB
RDS DB
Instance
EC2-Classic VPC
VPC上の RDSを参照可能
データベース 移行
DNSにより 並行運用or切り替え
VPCの価格
• VPCの利用は無料
• VPNを利用する場合は1時間あたり$0.05/VPN接続(¥4,500/月、1$=120円)
• トラフィックはデータ転送量に応じてVPCからみたアウトバウンドに対して課金
VPC環境の通信費用(東京リージョン)
Availability Zone Availability Zone
Direct Connect
VPN Connection
S3, Glacier,
Dynamo, etc…
In: $0.00 Out: $0.00
In: $0.01
Out: $0.01
In: $0.01
Out: $0.01 In: $0.00
Out: $0.00
Private IP Public IP
In: $0.00
Out: $0.00
Internet
In: $0.00
Out: $0.042
In: $0.00
Out: $0.140~
In: $0.00
Out: $0.140~
ELB
Cloudfront
Other
Region
ELB
In: $0.00
Out: $0.09
新機能:S3のVPCエンドポイント
Availability Zone A
pl-xxxxxxxx
Route Table
Destination Target
10.1.0.0/16 local
pl-xxxxxxxx vpce-xxxxxxxx
Private Subnet:
10.1.10.0/24
vpc endpoint
S3 Prefix ■VPCエンドポイントをVPCに作成し、
プライベートサブネットからAWS
クラウド上のS3バケットにアクセス
が可能
■VPCエンドポイントを作成し、ルート
テーブルの宛先にS3のプレフィックス、
ターゲットにVPCエンドポイントを
指定することでS3への通信がVPC
エンドポイントを経由
■VPCエンドポイントポリシーでアクセス
制御が可能
■追加費用なし(トラフィック課金もなし)
vpce-xxxxxxxx
新しいオブジェクト
宛先のAWSクラウド上のサービスを特定するためのID 該当のサービスで利用されているパブリックIPの集まり ルートテーブルの宛先やセキュリティグループのOutboundの宛先に指定 プレフィックスリスト名は”com.amazonaws.<region>.s3”
サービスのプレフィックスリストID (pl-xxxxxxxxx)
VPCエンドポイントを作成したら生成されるオブジェクト ルートテーブルのターゲットに設定
VPCエンドポイントID (vpce-xxxxxxxxx)
VPCエンドポイントへアクセスを許可するためのポリシー
エンドポイントポリシー
VPCエンドポイントのメリット
• S3アクセスのためのインターネットゲートウェイやNATインスタンスが不要 – NATインスタンスの冗長化も考慮しなくて良い
– NATインスタンスの性能に影響を受けない
• 安全、高い信頼性
• 設定が簡単(2ステップのみ)
• 今後対象サービスの追加予定
注意事項
• ネットワークACLの宛先にプレフィックスリストIDを指定することはできない
• VPCが稼働中のリージョンと異なるリージョンを接続することはできない
• タグは未対応
• VPCエンドポイントは移動できない
• VPN、AWS Direct Connect、VPC Peering、ClassicLinkの接続先からVPCエンドポイントを利用することはできない
• S3のバケットポリシー/IAMポリシーでVPC内のプライベートIPを記述することはできない(エンドポイントの記述は可能)
移行について
Availability Zone A
pl-xxxxxxxx
Private Subnet:
10.1.10.0/24
vpc endpoint
S3 Prefix
vpce-xxxxxxxx
Public Subnet:
10.1.0.0/24
VPC endpointを優先
■既存のVPCにエンドポイントを追加する
だけでOK
■一つのルートテーブルにインターネット
向けとサービスプレフィックス向けの
経路がある場合、サービスプレフィックス
向けを優先(ロンゲストマッチ)
■VPCエンドポイント作成時、S3へ接続中
の通信は一時的に影響を受ける
■NATインスタンスと並用可能
Route Table
Destination Target
10.1.0.0/16 local
0.0.0.0/0 NATインスタンス
pl-xxxxxxxx vpce-xxxxxxxx
VPC Flow Logsとは
■ネットワークトラフィックをキャプチャし、CloudWatch LogsへPublishする機能 ■ネットワークインタフェースを送信元/送信先とするトラフィックが対象 ■セキュリティグループとネットワークACLのルールでaccepted/reject されたトラフィックログを取得 ■キャプチャウインドウと言われる時間枠(約10分間)で収集、プロセッシング、保存 ■RDS, Redshift、ElasticCache、WorkSpacesのネットワークインタフェース トラフィックも取得可能 ■追加料金はなし(CloudWatch Logsの標準料金は課金)
VPC Flow Logsのユースケース
■ネットワークのトラブルシュート 疎通ができないのはネットワーク設定の影響?
■ネットワークトラフィックの監査 いつ、どの通信元からどのようなアクセスがあったか?
■ネットワークトラフィック監視 不正な通信を検知してアラート
■ネットワークトラフィック統計情報 プロトコル別、通信元IP別・・・
構成イメージ
セキュリティ グループ
ネットワーク ACL
Log Group
CloudWatch Logs
ネットワークインタフェース (ENI)
Log Stream
VPC Flow Logs
VPC
Flow Log レコードの項目 フィールド 説明
version VPC flow logsのバージョン
account-id flow logを取得したAWSアカウント
interface-id ログストリームが適用されているネットワークインタフェースのID
srcaddr 送信元アドレス(※)
dsraddr 送信先アドレス(※)
srcport 送信元ポート
dsrport 送信先ポート
protocol IANAで定義されたプロトコル番号
packets キャプチャウインドウの中で取得したパケット数
bytes キャプチャウインドウの中で取得したバイト数
start キャプチャウインドウ開始時のUNIX時間
end キャプチャウインドウ終了時のUNIX時間
action トラフィックのアクション(ACCEPT/REJECT)
log-status ログステータス(OK/NODATA/SKIPDATA)
Flow Log レコード: http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/flow-logs.html#flow-log-records
2 123456789010 eni-abc123de 172.168.1.12 172.168.1.11 49761 3389 6 20 4249 1418530010 1418530070 REJECT OK
実際のレコード
Version account-id interface-id
srcaddr dsraddr
protocol packet bytes
start end action log-status
srcport dstport
その他のレコード
2 123456789010 eni-1a2b3c4d - - - - - - - 1431280876 1431280934 - NODATA
2 123456789010 eni-4b118871 - - - - - - - 1431280876 1431280934 - SKIPDATA
該当のキャプチャウインドウにデータが存在しなかった場合
内部のキャパシティ不足やエラーによりキャプチャをスキップした場合
VPC Flow Logsで取得しないトラフィック
■EC2インスタンスからAmazon DNSサーバへのトラフィック ■WindowsインスタンスからAmazon Windowsライセンス アクティベーションへのトラフィック ■インスタンスメタデータ(169.254.169.254)とのトラフィック ■DHCPトラフィック
VPC Flow Logsの注意事項
■EC2-Classic環境では利用できない (ClassicLinkを利用しているEC2インスタンスも含む) ■Flow Log作成後はIAM Roleなどの設定変更はできない (再作成となる) ■ネットワークインタフェース上のIPアドレスはプライベートIP表示 ■リアルタイムではない(キャプチャからLog Streamへの反映は数分)
利用例:CloudWatchメトリックフィルターとアラート作成
http://docs.aws.amazon.com/ja_jp/AmazonVPC/latest/UserGuide/flow-logs.html#flow-logs-cw-alarm-example
[version, account, eni, source, destination, srcip, destip="22", protocol="6", packets, bytes, windowstart, windowend, action="REJECT", flowlogstatus]
22/tcp(SSH)でREJECTされた通信をフィルタ
CloudWatch Logsの Metric Filterで監視
トラフィック ログ収集
アラート 通知
CloudWatch Logs Metric Filter作成
VPC CloudWatch アラート
利用例:Elasticsearch + kibanaによる可視化
VPC CloudWatch Logs
AWS SDK など
Elasticsearch kibana
APIでイベントを 取り出す
整形して Elasticsearchへ
PUT
よくある質問
Q. セキュリティグループとネットワークACLのどちらで取得された ログか判別できますか? A. できません。 Q. パケットの中身を見ることはできますか? A. ペイロードの中身を見ることはできません。 Q. どれくらいの期間保存しておくことが可能ですか? A. CloudWatch Logsにより永久保存が可能です。
NAT Gatewayとは?
• 高パフォーマンス (最大10Gbpsバースト)
• 高可用性(ビルトインで冗長化)
• AWSによるマネージドNATサービス
• EIPの割当て可能
• Flow Logsによるトラフィックログ取得可能
• TCP,UDP,ICMP通信をサポート
• ネットワークACLによるアクセスコントロール
• CloudTrailのサポート
従来のNATインスタンスのベストプラクティス
Public Subnet 1
VPC
Availability Zone 1
NAT Instance
Private Subnet 1
94
Public Subnet 2
Availability Zone 2
NAT Instance
Private Subnet 2
http://aws.clouddesignpattern.org/index.php/CDP:High_Availability_NAT%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3
・NATインスタンスのモニタリングの仕組みを用意 ・ルートテーブルの書き換えのスクリプト ・NATインスタンスのスケールアウトも考慮
0/0 – NAT-B
0/0 – NAT-A
Monitor monitor
NAT Gatewayのベストプラクティス
Public Subnet 1
VPC
Availability Zone 1
NAT Gateway
Private Subnet 1
95
Public Subnet 2
Availability Zone 2
NAT Gateway
Private Subnet 2
0/0 – NAT-B 0/0 – NAT-A
・NAT Gatewayを各AZのパブリックサブネットに 作成 ・各AZのプライベートサブネットにそれぞれルート テーブルを作成し、同じAZ内のNAT Gatewayに デフォルトルートを設定
AZレベルの障害に対応
価格
Region: IAD PDX SFO DUB SIN SYD NRT FRA
Price per NAT gateway ($/hour): 0.045 0.045 0.048 0.048 0.059 0.059 0.062 0.052
Price per GB data processed ($): 0.045 0.045 0.048 0.048 0.059 0.059 0.062 0.052
NAT Gatewayの 利用時間
Gigaバイト毎の データ処理
データ転送量 + +
NAT Gateway vs NATインスタンス
項目 NAT Gateway NATインスタンス
可用性 各AZのNAT Gatewayは 冗長化されている
スクリプトを利用してNATインスタンス単位で フェールオーバー
帯域 10Gbps(バースト)まで インスタンスタイプによる
メンテナンス AWSのマネージド ユーザにてメンテナンス
コスト 利用時間、NATを経由したデータ量(プロセス)に課金
利用時間
http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-nat-comparison.html
まとめ
• VPCを利用することで、さまざまな要件に合わせた
ネットワークを簡単に作成することが可能
• 複数のAZを利用することで高い可用性を維持することが可能
• VPNやDirect Connect(専用線)とオンプレミスを利用したハイブリッド構成でそれぞれの長所を活かしたシステムを構築することが可能
• 新機能を活用し、負担の少ないネットワーク運用が可能
参考資料
■Amazon VPC http://aws.amazon.com/jp/directconnect/ ■Amazon VPCドキュメント http://aws.amazon.com/jp/documentation/vpc/ ■初心者向けWebinar AWS上でのネットワーク構築 http://www.slideshare.net/AmazonWebServicesJapan/webinar-aws-43351630 ■Amazon VPC VPN接続設定 参考資料 http://adsj-contents.s3.amazonaws.com/misc/VPNConnectionInstruction-20141225.pdf ■AWS Marketplace https://aws.amazon.com/marketplace
Q&A
次回Webinarのお申し込み
http://aws.amazon.com/jp/event_schedule/
AWS Summit Tokyo 2015
参加登録受付中!
http://bit.ly/1CHJg1j
Webinar資料の配置場所
• AWS クラウドサービス活用資料集 – http://aws.amazon.com/jp/aws-jp-introduction/
公式Twitter/Facebook AWSの最新情報をお届けします
@awscloud_jp
検索
最新技術情報、イベント情報、お役立ち情報、お得なキャンペーン情報などを 日々更新しています!
もしくは http://on.fb.me/1vR8yWm
AWS初心者向けWebinar
• AWSをこれからご使用になる向けのソリューションカットのオンラインセミナー
• 今後の配信予定
– 4/23(木) 利用者が実施するAWS上でのセキュリティ対策
※18時~19時15分の時間帯です!
• 申し込みサイト – http://aws.amazon.com/jp/about-aws/events/