今回は「AWSAdvanced Networking」の勉強を備忘録として残してます。まだ途中なのでこれからも更新する予定です。
AWSAdvanced NetworkingとはAWSのネットワークに特化した資格です。
なぜ、試験を受けようかと思ったかというと単純にネットワークが好きだからという理由です。
あと別の試験を受けるときの参考にもなると思うので。
AWSの勉強中ですが個人からや小規模の会社さんからの相談に乗ります!
想定読者
この記事では以下の読者を想定して書いています。
- AWSAdvanced Networkingの資格を取得しようと思っている人
AWSAdvanced Networkingとは
AWSAdvanced Networkingとはそのままなのですが、Amazonが提供しているクラウドサービスAWSのネットワークに特化した資格です。
この資格を取得することでAWSに関するセキュリティの知識(以下の知識)があることの証明になります。
- AWS テクノロジー、AWS セキュリティのベストプラクティス、AWS ストレージオプションとその基礎となる整合性モデルの活用と、AWS ネットワークのニュアンスや AWS のサービスの統合への関連性についての、専門的な経験。
- 高度なネットワークアーキテクチャと相互接続オプション [例: IP VPN、マルチプロトコルラベルスイッチング (MPLS)、VPLS (Virtual Private LAN Service)] に関する知識。
- オートメーションスクリプトとツールの開発に精通していること。これには、以下の設計、実装、および最適化が含まれます。ルーティングアーキテクチャ (静的および動的を含む)、グローバルエンタープライズ向けのマルチリージョンソリューション、可用性の高い接続ソリューション (例: AWS Direct Connect、VPN)。
- CIDR とサブネット (IPv4 と IPv6)、IPv6 移行の課題、AWS WAF、侵入検知システム (IDS)、侵入防止システム (IPS)、DDoS 保護、EDoS (Economic Denial of Service/Sustainability) などのネットワークセキュリティ機能の一般的なソリューションに関する知識。
詳細を知りたい方は以下サイトを参照ください。
AWSAdvanced Networkingの試験範囲
勉強する内容(試験範囲)は次のようなことです。
分野 | 試験の出題比率 | |
分野1 | ハイブリッド IT ネットワークアーキテクチャの大規な設計および実装 | 24% |
分野2 | AWS ネットワークの設計と実装 | 28% |
分野3 | AWS タスクのオートメーション | 8% |
分野4 | アプリケーションサービスとのネットワーク統合の構成 | 14% |
分野5 | セキュリティとコンプライアンスの設計と実装 | 12% |
分野6 | ネットワークの管理、最適化、トラブルシューティング | 14% |
合計 | 100% |
それぞれの詳細を知りたい場合は、以下の試験ガイドから確認してください。
勉強内容
ここから勉強内容をドンドン書いていきたいと思います。
用語集
とりあえず、気になった用語を集めました。
用語 | 意味 |
AWSDirect Connect | オンプレミス(社内)の環境AWSを接続するための専用線を利用するサービス 例えるなら、糸電話のようにお互いを繋げるサービス |
Transit Gateway | 中央ハブ(Transit Gateway)を介して VPC とオンプレミスネットワークを接続することができるサービス。 例えるなら、羽田空港のようなHUBの役割をするサービス |
VGW | Virtual Gatewayのこと。 VGWとはオンプレ環境とVPCをVPNで接続するためのルータのこと。 |
Private virtual interface | VPCへプライベートアドレスを介した接続を提供するインタフェース 例えるなら、同じ地域の会社内だけで使える内線電話 |
Public virtual interface | VPC外のサービス(S3)とかに接続するためのインタフェース 例えるなら、同じ会社なんだけど別の地域へ連絡する時の外線電話 |
Direct Connect Gateway | Direct Connectの機能の一つ。VIFとVGWの間に追加するコンポーネント。 Direct Connect Gatewayを使うと、一つのリージョンでその他のリージョンに接続できる。 例えるなら、Transit Gatewayと同じ羽田空港のようなHUBの役割をするサービス Transit Gatewayとの違いは以下のサイトが参考になります。 https://www.fujitsu.com/jp/solutions/infrastructure/construction/multi-cloud/aws/event-column/aws-transit-gateway.html |
Transit Gateway inter-Region Peering | リージョン間をTransit Gatewayで接続する機能 リージョン外のVPCへも接続ができる 例えるなら、日本以外の国にも行けるようになった |
トランジットVIF | Direct Connect Gateway経由でTransit Gateway への接続を提供するインタフェース 例えるなら、Direct Connect GatewayとTransit Gatewayの恋のキューピット |
拡張ネットワーキング | EC2で利用できる高い帯域幅、1 秒あたりのパケット (PPS) の高いパフォーマンス、常に低いインスタンス間レイテンシーが実現可能。 |
シングルルート I/O 仮想化 (SR-IOV) | 拡張ネットワーキングで利用する。従来の仮想化ネットワークインターフェイスと比較し、I/O パフォーマンスが高く、CPU 利用率が低いデバイス仮想化の手法 例えるなら、普通のサイヤ人からスーパーサイヤ人になったインターフェース |
ELB Connection Draining | ELBから切り離してもリクエスト中のインスタンスへ指定秒数の間は通信は切れない機能 |
ALIASレコード | Route53のDNSのAレコードに別名をつける仕組み。CNAMEと機能同じ。 メリットはAWSサービスをDNS名として登録できるため、CNAMEより解決する手間が少なくなり、早く呼び出せるのが特徴。 |
VPCエンドポイント | VPC上のサービスからインターネットを経由せずに、直接AWSのサービス(S3とか)にアクセスできる機能。 例えるなら、自分の部屋からお風呂場までは廊下を歩く必要があるが、VPCエンドポイントを使うと、どこでもドアみたいに直接部屋が繋がるイメージ。 |
Route 53 Resolver | オンプレミスの環境からVPCの名前解決ができる機能 通常Direct ConnectしていてもVPCの名前解決が利用できない。 |
DHCPオプション | DHCP オプションはVPCのインスタンスに独自のドメイン名やNTPサーバ、netbiosを割り当てしたい時に使う設定 |
EC2インスタンスメタデータ | EC2インスタンスに関するデータで、実行中のインスタンスを設定または管理するために使用するもの。 http://169.254.169.254/latest/meta-data/ |
X-Forwarded-For | HTTPヘッダフィールドの1つで、ロードバランサなどの機器を経由して Webサーバに接続するクライアントの送信元IPアドレスを特定する際のデファクトスタンダード |
ProxyProtocol | TCPでロードバランスをした時でも、クライアントの送信元IPが取得できる機能(HTTP,HTTPS以外は取得できなかったけどこれなら取得できる) |
VPCエンドポイントゲートウェイ型 | VPCエンドポイントのゲートウェイ型、対象サービスはS3とDynamoDBの2つのみ。送信元IPがグローバルIPになる |
VPCエンドポイントインターフェース型 | AWS PrivateLinkとも呼ばれる。プライベートIPでやり取りができる。 |
Lambda@Edge | CloudFrontのエッジロケーションからコードを実行するLambda関数。 メリットはユーザから近い距離で関数を実行できるので、処理が早くなる。 |
Amazon AppStream 2.0 | AWS上でアプリケーションのみを実行するサービス。 ワークスペースとの違いは、端末かアプリかという違い。 |
AWS Global Accelerator | AWS内グローバルネットワークから通信することで、アプリケーションのグローバルな可用性とパフォーマンスを向上させるサービス。 |
NATGateway | プライベートサブネットにあるインスタンスがインターネットに接続するためのサービス |
気になった動作や用語を調べる
以下サイトで気になった動作や用語を調べてみました。
セキュリティグループに拒否設定はない
結構勘違いしがちな内容ですが、NACLには拒否設定はありますが、セキュリティグループには拒否設定はありません。
connection drainingとは?
connection drainingとは既存の接続を開いたまま、Classic Load Balancerが登録解除中または異常なインスタンスへのリクエストの送信を停止するようにする機能
Site to Site VPNおよびDirectConnectのルート優先順位
「Site to Site VPN」と「DirectConnect」で、重複するルートが存在する場合にはVirtual Private Gateway(VGW)は以下の優先順位でルートを決定します。
- ロンゲストマッチ(宛先ネットワークがより詳細に絞り込まれているルート)
- DirectConnectとSite to Site VPNではDirectConnectが優先
- Site-to-Site VPN接続用に手動で設定したStaticルート
- Site-to-Site VPN 接続から BGP で伝播されたルート
- BGPルートの中ではAS PATHが最短のものが優先
- AS PATHが同じ場合はMEDが最小のものが優先
BGPのルート制御、AS PATH,MEDは小さいほうがルート優先する
https://docs.aws.amazon.com/ja_jp/vpn/latest/s2svpn/VPNRoutingTypes.html
DHCP オプションの変更
DHCP オプションセットを作成後に変更することはできない。
VPCで異なるDHCPオプションセットが必要な場合は、別途作成してVPCに関連付ける必要があります。
複数セットのDHCP オプションを使用できるが、一度にVPCに関連付けることができる DHCP オプションセットは1つだけ。
1VPC=1DHCPオプション
Amazon VPC IPアドレス
VPCとサブネットのCIDRは「/16~/28」の範囲で指定する。
※AWSの仕様で決められている。
最低でも「/28」以上が必要。
サブネットのCIDRブロックのうち、5つは利用出来ない。
なぜなら、ネットワークアドレス、ブロードキャストアドレス、AWSの予約(ルーター、DNSサーバ、将来の利用)に使われるため。
例えば、「/28」の場合ホスト部は4ビットのため、利用できるIPは「16-5=11」IPしか利用できます。
Direct Connectの接続要件
AWS Direct Connect を使用するには、ネットワークが以下のいずれかの条件を満たしている必要がある。
- 1ギガビットイーサネットの場合は 1000BASE-LX (1310 nm) トランシーバー、10ギガビットイーサネットの場合は 10GBASE-LR (1310 nm) トランシーバー、100 ギガビットイーサネットの場合は 100GBASE-LR4 トランシーバーでシングルモードファイバーを使用する必要がある
- ポートのオートネゴシエーションが無効になっている必要がある
オートネゴシエーションがサポートされるのは、ポート速度が 1 Gbps の場合のみ
ポート速度および全二重モードは手動で設定する必要がある - 802.1Q VLAN のカプセル化が、中間デバイスを含む接続全体でサポートされている必要がある
- デバイスがボーダーゲートウェイプロトコル (BGP) と BGP MD5 認証をサポートしている必要がある
ネットワークにおける各種上限値
- NACL
名前 | デフォルト上限値 |
VPC 当たりのネットワーク ACL の数 | 200 |
ネットワーク ACL 当たりのルールの数 | 20 |
- BGP接続
名前 | デフォルト上限値 |
プライベート仮想インターフェイスまたはトランジット仮想インターフェイスBGPのルート数 | 100(制限超えるとBGPがDownする) |
パブリック仮想インターフェイスBGPルート数 | 1000 |
https://docs.aws.amazon.com/ja_jp/directconnect/latest/UserGuide/limits.html
ロードバランサーの比較
柔軟なアプリケーション管理が必要な場合は、Application Load Balancer の使用を推奨
非常に高度なパフォーマンスと静的 IP がアプリケーションで必要な場合は、Network Load Balancer の使用を推奨
ALBの色々なリクエストの振り分け
Application Load Balancerでは次のようなルールで振り分けが可能です。
- HTTPヘッダ
- HTTPリクエストメソッド
- host-header
- path-pattern
- 文字列のクエリ
- 送信元IP
使い分け方
ルール | 動作 |
host-header | ホスト名で振り分けが可能 複数のホストがいる時に利用する |
path-pattern | パス名で振り分けが可能 |
Direct Connectとサイト間 VPNの違い
項目 | Direct Connect | サイト間 VPN |
接続 | 専用線 | インターネット |
料金 | 高い | 安い |
速度 | 最大100Gbps | 最大1.25Gbpsのスループット |
Direct Connect GatewayとTransit Gatewayの違い
Direct Connect GatewayとTransit Gatewayの使い分けが全然分からないと思ってましたが、ようやく理解できました。
そもそも、どちらのやり方でもオンプレと接続できるし、Transit GatewayはVPC間での通信もできるからTransit Gatewayだけでいいんじゃね?って思ってました。
よくよく構成を見てみると、どうやらオンプレとの接続部分が専用線かVPNかで違うんですね。
なので要件としては、次のような感じですかね?
要件 | 選択肢 |
オンプレと1つのVPCを安定した通信をしたい | Direct Connect |
オンプレと複数のVPCを安定した通信をしたい | Direct Connect + Direct Connect Gateway |
オンプレと複数VPCを安定した接続をして、VPC間でも通信したい | Direct Connect + Direct Connect Gateway +Transit Gateway |
VPC peeringはトランジット接続できない
VPC peeringはトランジット接続できない為、例えば、3つのVPC(A、B、C)があってVPC_AはVPC_B、VPC_CとVPC peering接続されている場合、接続できるVPCは次のようになる。
通信元 | 通信先 | 通信可否 |
VPC_A | VPC_B | 通信可 |
VPC_A | VPC_C | 通信可 |
VPC_B | VPC_C | 通信不可 |
EC2のifconfig/ipconfigをしてもElasticIPは見れない
AWSコンソールからはEC2に関連付けられているElasticIPは見れるが、ifconfig (Linux) または ipconfig (Windows) からはElasticアドレスは表示されない仕様。
EC2からインスタンスのElasticアドレスを確認したい場合は、インスタンスメタデータを使用する。
Route53のプライベートホストゾーンを使用する時の考慮事項
VPC設定:enableDnsHostnamesとenableDnsSupportを「True」にする
サブドメインの責任の委任:サブドメインの責任を委任する NS レコードをプライベートホストゾーンに作成することはできない
カスタム DNS サーバー:VPC 内のEC2インスタンスでカスタム DNS サーバーを設定した場合、プライベートDNSクエリをVPC用にAmazon が提供する DNS サーバーの IP アドレスにルーティングするようにDNS サーバーを設定する。IP アドレスは、VPC ネットワーク範囲のベースに「プラス 2」した IP アドレスです。例えば、VPC の CIDR 範囲が 10.0.0.0/16 である場合、DNS サーバーの IP アドレスは 10.0.0.2になる。
Route 53 ヘルスチェック
Route53のヘルスチェックはグローバルIPには使えるが、プライベートIPには利用できない。
DPD (Dead Peer Detection)とBFD(Bi-directional Forwarding Detection)の違い
DPDはIPSecの死活監視用。
「3回keepalive送ったけど応答がないからSAを消そう!!」って動きをする。
BFDは通信経路の障害を素早く検知して経路に切り替え用。
「あれ?いつものルートで障害が発生しているな。よし、別のルートに切り替えよう」って動きをする。
NAT Gatewayの特徴
- 通信プロトコルとして TCP、UDP、ICMP をサポートする
- IPv4 トラフィックしかサポートしていない
- 5 Gbps の帯域幅をサポート。45 Gbps まで自動的に拡張する
- 送信先別に最大 55,000 の同時接続をサポート
- NACLは適用されるが、セキュリティグループは使えない
- NAT ゲートウェイは、TCP または ICMP の IP フラグメンテーションをサポートしない
- 350 秒以上アイドル状態のままになっていると、その接続はタイムアウトする
回避策は350 秒未満の値で TCP キープアライブを有効にする
以上が気になった動作や用語でした。
まとめ
まだ、途中のため後ほど書きます。
以上です。ありがとうございました。
コメント