【ハンズオン】入門チュートリアルをもとにVPC ルート サーバーを触ってみよう！！

いつも記事を読んでいただきありがとうございます！
モブエンジニア（[@mob-engineer](https://qiita.com/mob_engineer))です！

AWSネットワーク界隈でVPCルートサーバーがバズっていたので検証もかねてVPCルートサーバーに関するハンズオン記事を執筆してみました。

初見の方でもサクッと読めるように平易な表現で執筆しておりますので、お気軽に読んでいただければ幸いです。

:::note info
ハンズオン内容はAWS入門チュートリアルから抜粋しております。

https://docs.aws.amazon.com/vpc/latest/userguide/route-server-tutorial.html
:::

# 目次
- 対象読者
- アップデート
- ハンズオン
    - その１：必要なIAMロールの権限を設定する
    - その２：ルートサーバーを作成する
    - その３：ルートサーバーをVPCに関連付ける
    - その４：ルートサーバーエンドポイントを作成する
    - その５：ルートサーバーの伝播を有効にする
    - その６：ルートサーバーピアを作成する
    - その７：デバイスからBGPセッションを開始する
    - お片付け
- 所感

## 対象読者

次のような課題を抱えている方に本記事をお役立ていただければ幸いです。

- VPCルートサーバーについてキャッチアップしたいと思っている方
- いまいちどんなことができるのか知りたいと思っている方

## アップデート

04/02のWhat NewでVPCルートサーバーについて紹介されました。

https://aws.amazon.com/jp/about-aws/whats-new/2025/04/amazon-vpc-route-server/

>AWS announces the general availability of VPC Route Server to simplify dynamic routing between virtual appliances in your Amazon VPC. Route Server allows you to advertise routing information through Border Gateway Protocol (BGP) from virtual appliances and dynamically update the VPC route tables associated with subnets and internet gateway.
Prior to this feature, you had to create custom scripts or use virtual routers with overlay network to dynamically update VPC route tables. VPC Route Server removes the operational overhead of creating and maintaining overlay networks or custom scripts and offers a managed solution for dynamically updating routes in route tables. With VPC Route Server, you can deploy endpoints in your VPC and peer them with your virtual appliances to advertise routes using BGP. The Route Server filters these received routes using standard BGP attributes and propagates the selected routes to the specified route tables. This makes it easy for you to dynamically update routes and quickly mitigate appliance failure or other issues.
VPC Route Server is available in US East (Virginia), US East (Ohio), US West (Oregon), Europe (Ireland), Europe (Frankfurt) and Asia Pacific (Tokyo) AWS Regions.
For more information, see the VPC Route Server documentation.

- 日本語訳
>AWS は、Amazon VPC 内の仮想アプライアンス間の動的ルーティングを簡素化する VPC ルートサーバーの一般提供を発表しました。ルートサーバーを使用すると、仮想アプライアンスからボーダーゲートウェイプロトコル (BGP) を介してルーティング情報をアドバタイズし、サブネットとインターネットゲートウェイに関連付けられた VPC ルートテーブルを動的に更新できます。
この機能が導入される前は、VPC ルートテーブルを動的に更新するには、カスタムスクリプトを作成するか、オーバーレイネットワークを備えた仮想ルーターを使用する必要がありました。VPC ルートサーバーは、オーバーレイネットワークまたはカスタムスクリプトの作成と維持の運用オーバーヘッドを排除し、ルートテーブル内のルートを動的に更新するためのマネージドソリューションを提供します。VPC ルートサーバーを使用すると、VPC にエンドポイントをデプロイし、それらを仮想アプライアンスとピアリングして、BGP を使用してルートをアドバタイズできます。ルートサーバーは、標準の BGP 属性を使用してこれらの受信したルートをフィルタリングし、選択したルートを指定されたルートテーブルに伝播します。これにより、ルートを動的に更新し、アプライアンスの障害やその他の問題を迅速に軽減することが容易になります。
VPC ルートサーバーは、米国東部 (バージニア)、米国東部 (オハイオ)、米国西部 (オレゴン)、欧州 (アイルランド)、欧州 (フランクフルト)、アジアパシフィック (東京) の AWS リージョンで利用できます。

すごくざっくり言えば、**仮想アプライアンスからBGPを用いたルーティングをいい感じで処理してくれる機能**と思ってもらえればわかりやすいかと思います。

とはいえ、触ってみないとイメージが付かないのでハンズオンを行ってみたいと思います。

:::note warn
東京リージョンで利用する場合１時間あたり1.03ドルかかるのでお高い印象がありますね。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3846878/573e9268-500c-41bf-8abb-9e9aae3fb0fa.png)
:::

:::note info
VPCルートサーバーを利用するうえで登場する機能を先にお伝えしておきます。

- ルート サーバー
    - ルート サーバー コンポーネントは、転送情報ベース (FIB) 内の IPv4 または IPv6 ルートを使用して、VPC およびインターネット ゲートウェイのルート テーブルを更新します。ルート サーバーは、単一の FIB とルーティング情報ベース (RIB) を表します。
- ルートサーバーエンドポイント
    - ルートサーバーエンドポイントは、サブネット内の AWS 管理コンポーネントであり、BGP (Border Gateway Protocol)を促進します。ルート サーバーと BGP ピア間の接続。
- ルート サーバー ピア
    - ルート サーバー ピアは、ルート サーバー エンドポイントと AWS にデプロイされたデバイス (EC2 インスタンスで実行されているファイアウォール アプライアンスやその他のネットワーク セキュリティ機能など) 間のセッションです。デバイスは次の要件を満たしている必要があります。
:::

## ハンズオン

### その１：必要なIAMロールの権限を設定する

:::note info
Administrator権限のIAMロールが付いていれば設定不要です。
:::

なお、公式ドキュメントでは以下権限を持つロールを作成することを示しています。

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "CreateRouteServer",
            "Effect": "Allow",
            "Action": [
                "sns:CreateTopic"
            ],
            "Resource": "*"
        },
        {
            "Sid": "DeleteRouteServer",
            "Effect": "Allow",
            "Action": [
                "sns:DeleteTopic"
            ],
            "Resource": "*"
        },
        {
            "Sid": "CreateRouteServerEndpoint",
            "Effect": "Allow",
            "Action": [
                "ec2:CreateNetworkInterface",
                "ec2:CreateNetworkInterfacePermission",
                "ec2:CreateSecurityGroup",
                "ec2:DescribeSecurityGroups",
                "ec2:AuthorizeSecurityGroupIngress",
                "ec2:CreateTags",
                "ec2:DeleteTags"
            ],
            "Resource": "*"
        },
        {
            "Sid": "DeleteRouteServerEndpoint",
            "Effect": "Allow",
            "Action": [
                "ec2:DeleteNetworkInterface",
                "ec2:DeleteSecurityGroup",
                "ec2:RevokeSecurityGroupIngress",
                "ec2:CreateTags",
                "ec2:DeleteTags"
            ],
            "Resource": "*"
        },
        {
            "Sid": "CreateRouteServerPeer",
            "Effect": "Allow",
            "Action": [
                "ec2:AuthorizeSecurityGroupIngress"
            ],
            "Resource": "*"
        },
        {
            "Sid": "DeleteRouteServerPeer",
            "Effect": "Allow",
            "Action": [
                "ec2:RevokeSecurityGroupIngress"
            ],
            "Resource": "*"
        }
    ]
}                
            
```

### その２：ルートサーバーを作成する

- 画面上部の検索ボックスに**VPC**を入力し検索結果をクリック

![000001.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3846878/7f844ad7-9c80-412b-b9dd-ce24032fe580.jpeg)

- 左側ペインの**ルートサーバー**をクリックします

![000002.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3846878/6f4f4454-0ce5-4c8c-855a-152cd2f16d67.jpeg)

- クリック後、画面右上の**ルートサーバーの作成**ボタンをクリック

![000003.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3846878/36a94938-ceca-4506-b9c1-dde05d2de8a6.jpeg)

- ルートサーバー作成画面が表示されるため次の通り設定します
    - 名前：任意の名前 ※今回はDemoと入力
    - Amazon側のASN：任意の番号　※今回は64512
        - 公式サイトでは、64512～65534または4200000000～4294967294を推奨
    - 保持期間：1～5の間
    - SNS通知を有効にする：有効
        - オプション設定のため無効でも問題ありません
- 設定後、下部の**ルートサーバーを作成**ボタンをクリック

![000004.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3846878/fe0a9efc-c8fc-4e67-8104-631ace56f698.jpeg)

- ルートサーバーの設定一覧が表示されます

![000005.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3846878/ba63be3c-62ff-42b7-abf5-6f4a2e9b9307.jpeg)

## その３：ルートサーバーをVPCに関連付ける

- 画面中央右側の**ルートサーバーを関連付ける**ボタンをクリック

![000006.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3846878/a06efbb1-113c-4100-8a59-bfac6810ff6e.jpeg)

- ポップアップが表示されるため紐づけたいVPCを選択
    - 検証なのでデフォルトのVPCを選んでいます

![000007.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3846878/1b803603-d138-4f1a-99f4-fb409c1ab352.jpeg)

- 指定したVPCが選択されていることを確認後、**ルートサーバーを関連付ける**ボタンをクリック

![000008.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3846878/d065b76a-a7be-4dac-8e3f-74672d61c311.jpeg)

- VPCの関連付けが追加されていることを確認します

![000009.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3846878/15cd6d58-9511-4257-afb9-05b3171cd1da.jpeg)

### その４：ルートサーバーエンドポイントを作成する

- 画面中央の**ルートサーバーエンドポイント**タブをクリック

![000010.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3846878/6b426edf-5331-464d-afe4-a12f3e49af95.jpeg)

- 画面中央右側の**ルートサーバーエンドポイントを作成**ボタンをクリック

![000011.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3846878/796b1ec6-512c-494d-9fac-b0fdf16b3e6b.jpeg)

- ルートサーバーエンドポイント作成画面が表示されるため次の通り設定する
    - 名前：任意の名前　※今回はDemoと入力
    - ルートサーバ：作成したルートサーバID
        - 今回は一つしか作成していないためデフォルトで設定されています
    - サブネット：任意のサブネットID
        - 3個作成されているので任意のサブネットを選べば問題ないです
- 設定完了後、**ルートサーバーエンドポイントを作成**ボタンをクリック

![000012.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3846878/4a644a5a-8860-478c-89c1-973e674d5651.jpeg)

- 次の画面へ遷移するため、画面左上部の**ルートサーバーエンドポイント**のリンクをクリック

![000013.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3846878/85d08363-d646-4a7c-bd5e-324509f12d7a.jpeg)

- ルートサーバーエンドポイント一覧画面へ遷移します
- 先ほど作成したルートサーバーエンドポイントが表示されていることを確認します

![000014.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3846878/5990028b-425f-4c5d-b3fa-ece35fffb032.jpeg)

:::note info
ハンズオン手順によると、各サブネットごとに2個のエンドポイントを作成するように示されています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3846878/e9f27a04-c297-4ea3-91d8-3958ab000aa8.png)
:::

- 各サブネット（3個）ごとにエンドポイントを作成した結果は次の通りです

![000015.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3846878/e1469ada-d56c-45f5-9618-56a106976486.jpeg)

### その５：ルートサーバーの伝播を有効にする

- 画面上部の**ルートサーバー**タブをクリック

![000016.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3846878/d9a1a1f2-5024-4e47-8880-f3e84255d39b.jpeg)

- 作成したルートサーバの**ルートサーバーID**をクリック

![000017.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3846878/2265d9a6-8128-42e1-b8ed-e6fd97484a68.jpeg)

- ルートサーバー設定一覧画面が表示されるため、画面中央の**伝播**タブをクリック

![000018.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3846878/b4d874cd-910a-4109-a214-2187683d0bfb.jpeg)

- 画面中央右側の**伝播を有効にする**ボタンをクリック

![000019.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3846878/4e7b7ebc-23b8-4194-b53e-00973f1909ef.jpeg)

- ポップアップが表示されるため任意のルートテーブルを選択
    - 今回は1つしか表示されなかったため表示されたものを選択

![000020.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3846878/86d5c5b5-1a47-4cbb-b38a-5b3aaf6b99e5.jpeg)

- ルートテーブルが選択されていることを確認後、**伝播を有効にする**ボタンをクリック

![000021.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3846878/32c06405-3ede-48df-84e3-3c1da3410eef.jpeg)

- 伝播リストにルートテーブルが追加されていることを確認します

![000022.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3846878/a339c85e-eb1e-459e-a58a-031337951699.jpeg)

### その６：ルートサーバーピアを作成する

- 画面上部の**ルートサーバー**リンクをクリック

![000023.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3846878/7f6b9c95-c38d-4399-91c0-3aa49292c08c.jpeg)

- ルートサーバー一覧画面へ遷移するため、**ルートサーバーピア**タブをクリック

![000024.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3846878/3f5dd5da-b58e-4757-a039-ebed60eeb913.jpeg)

- 画面上部右側の**ルートサーバーピアを作成**ボタンをクリック

![000025.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3846878/d3e5b2ec-483a-4ff3-9345-0c6fa25ec699.jpeg)

- ルートサーバーピア作成画面が表示されるため次の通り設定する
    - 名前：任意の名前　※今回はDemoと入力
    - ルートサーバーエンドポイントID：任意のルートサーバーエンドポイントID
    - ピアアドレス：任意のIPアドレス
        - 今回は10.0.0.0を入力
    - ピアASN：任意のASN番号
        - 今回は64513を入力
- 入力後、**ルートサーバーピアを作成**ボタンをクリック

![000027.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3846878/e1d2c1e7-2bd6-453b-b26c-090b47dab850.jpeg)

:::note warn
ピアASN番号に関してですが**その２：ルートサーバーを作成する**で設定したASN番号と同じ番号ですとエラーが表示されます。
![000028.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3846878/8289e68a-9cbf-407b-bfad-3b807ccd02a3.jpeg)
:::

- 作成したルートサーバーピアが表示されていることを確認します

![000029.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3846878/6f33458f-a486-49b4-b363-0bbb32719806.jpeg)

### その７：デバイスからBGPセッションを開始する

手順を行おうと思いましたがドキュメントには以下の通り示されています。

![000031.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3846878/dcd90d20-19e4-4239-8b0a-5a31f5fe095f.jpeg)

ざっくり言えば、**宅内にBGPとおしゃべりできる機器を使ってくださいね**といった内容が書かれていると推察します。

残念ながら、私は宅内にBGPとおしゃべりできる機器を持っている誤家庭ではないためハンズオンはここまでですね。（FortiGate、Cisco Catalystと組み合わせれば行けそうな印象ですかね）

### お片付け

本サービスは従量課金サービスのためハンズオン後はお片付けをする必要があります。
今まで作成したリソース群を削除すれば問題ありません。

:::note info
削除時のポップアップですが**delete**と入力されていますが、**削除**と入力するのが正しいようです。

![000032.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3846878/4fc8273f-d6ef-4bc4-98af-5c57ffde7f2e.jpeg)
:::

## 所感

VPCルートサーバーを触ってみた感想として、

- 仮想アプライアンスからBGPを動的に通信できる機能がAWSに実装されたのはうれしい
    - SD-WANなどのソリューションと組み合わせて利用するユーザが増える印象
- コスト感として他ネットワークサービスと比較して高めな印象はぬぐえない
    - リリースしたてのサービスなので仕方ないといえどうーんといった印象
- 作業数自体は少ないがクラウド初心者が触るにはちょっと高度な機能といった印象を持った
    - SIerなどの技術を有している企業であれば問題ないがユーザー系企業だと運用工数が
    - そこそこネットワーク設計ができるエンジニア向けのサービスって印象ですね


そのうえで、今後多くのリージョンで利用可能になると思われますので期待のサービスであることは間違いないと思います。

最後まで記事を読んでいただきありがとうございました！！

#### 参考サイト（主にネットワーク設計関連ですが）

https://ops-today.com/topics-9698/

https://pages.awscloud.com/rs/112-TZM-766/images/AWS-08_AWS_Summit_Online_2020_NET01.pdf

https://business.ntt-east.co.jp/content/cloudsolution/ih_column-137.html

PS:

infra365さんがVCPルートサーバのルート検証記事を書いてくださいました！！
本当にありがとうございます🙇‍♂️

https://qiita.com/infra365/items/0256a5786895ad51e409