2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWS Cloud WAN ハンズオンで Cloud WAN を紐解いていく!

2
Posted at

はじめに

案件で Cloud WAN という言葉が出てきて、ネットワークに弱い自分なので、勉強してみようと思ったのがきっかけです。(個人じゃ絶対 Cloud WAN なんか扱わないからね!:sweat_smile:

良い教材ないかなと探していたら Cloud WAN のハンズオンがあるじゃないですか!:eyes:

よし! ハンズオンをしながら Cloud WAN を紐解いていこう!:sparkles:

目的

ハンズオンの目的は以下となります。

ハンズオンを通して、AWS Cloud WAN と、Amazon VPC、AWS Site-to-Site VPN、AWS Transit Gatway、Connect Attachment を介した SD-WAN(相当) との接続の方法を理解します。また、VPC と複数のセグメントを介したルーティング制御について理解をすることを目的としています。

構成

ハンズオンの構成は以下となります。

image.png

ap-northeast-1 リージョンと us-east-1 リージョンをまたぐ Cloud WAN の構成。
Transit GW との接続もあれば、Site-to-Site VPN との接続もある。
いろんな要素が盛り込まれていて、とてもやりがいがありそうです:fire:

シナリオは以下となります。

:white_check_mark: Lab1(basic): AWS Cloud WAN を介して、インターネットと通信する
:white_check_mark: Lab2(basic): 異なるリージョン間の VPC を AWS Cloud WAN を介して通信する
:white_check_mark: Lab3(basic): AWS Transit Gateway を介して AWS Cloud WAN にアタッチされた VPC と通信する
:white_check_mark: Lab4(advanced): AWS Site-to-Site VPN を介して AWS Cloud WAN にアタッチされた VPC と通信する
:white_check_mark: Lab5(advanced): Connect Attachment を介して AWS Cloud WAN にアタッチされた VPC と通信する
:white_check_mark: Lab6(option): AWS Cloud WAN service insertion を使用してトラフィックを監査する

ハンズオンをやってみる!

:white_check_mark: Lab1(basic): AWS Cloud WAN を介して、インターネットと通信する

Lab1 でのスコープは以下となります。

image.png

...
...
...

ちょっと STOP!!
わからない単語・用語が出てくるので解説 Please!!

AWS Cloud WAN とは、AWSが提供するマネージド型の広域ネットワーク(WAN)サービスで、クラウドとオンプレミス環境をグローバルに接続・管理・監視できる仕組み。
概要はこちらの記事がとてもわかりやすいです!
https://qiita.com/tonkatsu_oishi/items/63a003731202668c82b6

グローバルネットワークとは、AWSのバックボーンネットワークを活用して、世界中の拠点やVPCを一元的に接続・管理できる広域ネットワークのこと。

コアネットワークとは、グローバルネットワークの中核を成す構成要素であり、ネットワークポリシー・ルーティング・セグメント管理を一元的に制御する。

セグメントとは、ネットワーク内のトラフィックを論理的に分離するための単位。

ネットワークポリシーとは、Cloud WANの構成・ルーティング・セグメント・アタッチメントの動作を定義する宣言型の設定ファイル。

アタッチメントとは、VPC や Transit GW 、VPN をコアネットワークに接続すること。

つまり、

 
Cloud WAN では グローバルネットワーク という広域ネットワークを構築する。そのネットワークのトラフィックを分離するのが セグメント である。

どの セグメント で通信するかを決定するのが ネットワークポリシー である。

VPC や Transit GW 、VPN を セグメント に接続することを アタッチメント という。

これら ネットワークポリシーアタッチメント を管理するのが コアネットワーク である。

 

ネットワークポリシーでは、どのセグメントにアタッチするかは tag-value によって決定されます。

image.png

(えっ、タグってリソースのフィルタやコストのフィルタに使うけど、どのセグメントに接続するかを決定するのにも利用するの? かなり重要な項目だな...。)

ネットワークポリシーを変更(接続先の追加、更新、削除など)したら、ネットワークポリシーのバージョンを上げます。どのバージョンのネットワークポリシーを適用するかを選択します。

image.png
 
 
では、話をハンズオンに戻します。

image.png

Lab1 では何をしようとしている?

Lab1 では、プライベートサブネットにある EC2 から Cloud WAN を介してインターネットにアクセスできることを確認します。

  • Boundary VPC(インターネットにアクセスできるVPC)を Cloud WAN の share セグメントにアタッチ
  • Boundary VPC のルートテーブルに Cloud WAN のルートを追加
    ➡︎ Boundary VPC のトラフィックは share セグメントにのみ流れる。
     
  • Private VPC(外部公開されていないVPC)を Cloud WAN の prod セグメントにアタッチ
  • Private VPC のルートテーブルに Cloud WAN のルートを追加
    ➡︎ Private VPC のトラフィックは prod セグメントにのみ流れる。

:speech_left: Tips
アタッチメントは VPC 単位ですが、アタッチメントの作成にサブネットの指定が必要。
サブネットを指定することで Cloud WAN の ENI が作られる(ようだ)。
サブネットを指定すると、そのサブネットが属する AZ すべてに通信可能となる。
(構成図ではアタッチメントの作成で指定したサブネットとは違うサブネットに EC2 が存在するが、同じ AZ のため Cloud WAN と通信可能。)
マルチ AZ 構成の場合は、アタッチメントの作成で複数のサブネットを指定することになる。

  • prod セグメントと share セグメントを route leak (通信の転送)するために、ネットワークポリシーでセグメントルートを作成
    ➡︎ prod セグメントの「0.0.0.0/0」の送信先を、 share セグメントにアタッチしているアタッチメントに向ける。

image.png

こうすることで、Private VPC 内の EC2 からインターネットへのアクセスが可能になります。

 Private VPC
   :arrow_down:
 Cloud WAN
 (prod セグメント :arrow_right: share セグメント) 
   :arrow_down:
 Baundary VPC
   :arrow_down:
 インターネット

:white_check_mark: Lab2(basic): 異なるリージョン間の VPC を AWS Cloud WAN を介して通信する

Lab2 でのスコープは以下となります。

image.png

Lab2 では何をしようとしている?

Lab2 では ap-northeast-1 リージョンから us-east-1 リージョンへ Cloud WAN を介して通信できることを確認します。

us-east-1 リージョンで

  • Boundary VPC(インターネットにアクセスできるVPC)を Cloud WAN の share セグメントにアタッチ
  • Boundary VPC のルートテーブルに Cloud WAN のルートを追加
    ➡︎ Boundary VPC のトラフィックは share セグメントにのみ流れる。
     
  • Private VPC(外部公開されていないVPC)を Cloud WAN の prod セグメントにアタッチ
  • Private VPC のルートテーブルに Cloud WAN のルートを追加
    ➡︎ Private VPC のトラフィックは prod セグメントにのみ流れる。
    ➡︎ ap-northeast-1 リージョンからの通信は us-east-1 リージョンへ流れる。

こうすることで、ap-northeast-1 リージョンから us-east-1 リージョンへのアクセスが可能になります。

 [ us-east-1 ] Private VPC
   :arrow_down:
 Cloud WAN(prod セグメント) 
   :arrow_down:
 [ ap-northeast-1 ] Private VPC

※ Lab2 には、us-east-1 リージョンの Private VPC 内の EC2 からインターネットへのアクセスする手順もあります。

:white_check_mark: Lab3(basic): AWS Transit Gateway を介して AWS Cloud WAN にアタッチされた VPC と通信する

Lab3 のスコープは以下の通りです。

image.png

Lab3 では何をしようとしている?

Transit GW から Cloud WAN を介して Cloud WAN にアタッチしている VPC 内の EC2 にアクセスできることを確認する。

  • Cloud WAN と Transit GW をピアリングを作成
  • Transit GW のルートテーブルを Cloud WAN の prod セグメントにアタッチ

image.png

これだけ!
こうすることで、Transit GW から Cloud WAN の prod セグメントを介して ap-northeast-1 リージョン、 us-east-1 リージョンへのアクセスが可能になります。

 Transit GW
   :arrow_down:
 Cloud WAN(prod セグメント) 
   :arrow_down:
 [ ap-northeast-1 ] Private VPC
 [ us-east-1 ] Private VPC

:white_check_mark: Lab4(advanced): AWS Site-to-Site VPN を介して AWS Cloud WAN にアタッチされた VPC と通信する

Lab4 のスコープは以下となります。

image.png

Lab4 は何をしようとしている?

Site-to-Site VPN から Cloud WAN を介して Cloud WAN にアタッチしている VPC 内の EC2 にアクセスできることを確認する。

  • Cloud WAN の prod セグメントに Site-to-Site VPN をアタッチ

これだけ!
こうすることで、Site-to-Site VPN から Cloud WAN の prod セグメントを介して ap-northeast-1 リージョン、 us-east-1 リージョンへのアクセスが可能になります。

 Site-to-Site VPN
   :arrow_down:
 Cloud WAN(prod セグメント) 
   :arrow_down:
 [ ap-northeast-1 ] Private VPC
 [ us-east-1 ] Private VPC

※ ハンズオンでは Site-to-Site VPN を実装するために VPN ルータの役割をもつ EC2 を用意しています。

:speech_left: Tips
us-east-1 リージョンの VPN VPC からは、 Cloud WAN (prod セグメント)に通信が流れた後、us-east-1 リージョンからも ap-northeast-1 リージョンからもインターネットにアクセスできる。でもデフォルトでは近いリージョン(この場合は、us-east-1)が選択される(ようだ)。
この仕組みがあるからリージョン障害が発生しても別ルートからインターネットにアクセスできるのかな。

:white_check_mark: Lab5(advanced): Connect Attachment を介して AWS Cloud WAN にアタッチされた VPC と通信する

Lab5 のスコープは以下となります。

image.png

Lab5 は何をしようとしている?

オンプレミスや SD-WAN アプライアンスと AWS Transit Gateway を動的ルーティングで接続して、 Cloud WAN を介してインターネットにアクセスできることを確認する。

  • Connect VPC を Cloud WAN の dev セグメントにアタッチ
  • Transit Gateway Connect Attachment を作成
  • GREトンネル(Connect Peer)を構築
  • Connect VPC のルートテーブルに Cloud WAN のルートを追加

Transit Gateway Connect Attachment とは、AWS Transit Gateway に外部の仮想アプライアンス(例:SD-WAN ルーター)を接続するための仕組み。
GRE トンネルと BGP を利用して高性能かつ動的なルーティングを実現するアタッチメント。

GRE(Generic Routing Encapsulation)トンネルとは、あるネットワークのパケットを別のIPパケットにカプセル化して送信する「トンネリング技術」の一種。異なるネットワーク間を仮想的に接続する仕組み。
元のデータパケットを「 GRE ヘッダ+新しい IP ヘッダ」で包み込み、別のネットワークを経由して送信する。

BGP(Border Gateway Protocol) とは、インターネットや大規模ネットワークで使われる「経路制御プロトコル」。異なる組織やネットワーク(自律システム:AS)間でルーティング情報を交換するための標準的な仕組み。
ポリシーや属性に基づいて柔軟に経路を選択する。

  • BGP ルータを追加

※ BGP(FRR) が install された EC2 をルータとして設定し、Cloud WAN と BGP を接続します。

自分は BGP の設定の手順で、/etc/frr/frr.conf が存在しかった(?)で先に進めませんでした。。

:white_check_mark: Lab6(option): AWS Cloud WAN service insertion を使用してトラフィックを監査する

Lab6 のスコープは以下となります。

image.png

Lab6 は何をしようとしている?

AWS Cloud WAN の Service Insertion を使って、Cloud WAN の経路上にセキュリティサービス(例:AWS Network Firewall やサードパーティのファイアウォールアプライアンス)を組み込み、VPC間やオンプレミスとの通信を必ずその検査ポイントを経由させることで、トラフィックを監査・検査する。

  • Security VPC を Cloud WAN の security セグメントにアタッチ
  • Security VPC のルートテーブルに Cloud WAN のルートを追加
  • Cloud WAN のネットワークポリシーを変更
    ➡︎ Cloud WAN の prod セグメントにアタッチされた VPC からのトラフィックが Security VPC にデプロイされた Network FireWall へ転送されるようになる。

ハンズオンでは実際に Network FireWall でトラフィックを監視するところまではしていないです。

 
ハンズオンはこれで以上となります。

おわりに

  • ハンズオン全体を通して 4 時間くらいかかりました。調べながらやるともっとかかるかも。
    アタッチメントを作成してから処理が完了するまで時間がかかるのもあり、待ち時間もそれなりにありました。
     
  • 今回のハンズオンを通じて、Cloud WAN の基本概念から Transit Gateway・VPN・Connect Attachment・Service Insertion まで一通り体験できました。
    ドキュメントを読むだけよりは、実際に構築してみることで理解が深まったかなと。
     
  • ハンズオンではリソース削除の手順もあるので、コストをかけないためにも必ず実施しましょう!

ハンズオン4時間くらいでの実績コスト
AWS Cloud WAN $4.18
AWS Network Firewall $1.38
Amazon Virtual Private Cloud $0.94

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?