はじめに
AWS Wavelength は、モバイルネットワークを利用したときに、従来のリージョンと比べてより低遅延でアクセスが出来る用になるサービスです。下のイメージ図がわかりやすいと思います。従来、5G や 4G ネットワークを使って AWS リージョンにアクセスすると、いわゆる「the internet」を経由していました。Wavelength で提供される Zone を利用することで、キャリアネットワークに閉じたアクセス経路になるため、より低遅延にアクセスが出来るようになります。
引用 : https://www.slideshare.net/AmazonWebServicesJapan/aws-wavelength20210414
Wavelength のユースケースは、スマートファクトリー、コネクテッドカー、リアルタイムゲームなどが挙げられています。今回の記事では、Wavelength を使って KDDI 網の端末からアクセスを行ってみる内容になります。5G の端末は用意できなかったので、性能測定は行いませんのでご了承下さい。
Wavelength を有効化
デフォルトでは、Wavelength は無効化されているので、有効化をしていきます。以前は事前承認が必要でしたが、オプトイン形式で簡単に有効化が出来るようになりました。
EC2 Dashboard を開き、右側にある Zones を選択します
Wavelength Zones にある Manage を押します
KDDI のものを Enabled を押します
Enable と入力して Ok を押します
自分の環境では、数分後 Enabled となりました
VPC の作成
Wavelength Zone の東京と大阪は、Tokyo Region の VPC に所属する Zone となります。KDDI さんの Slideshare から引用しますが、次の図にある通り、Wavelength Zone は、東京リージョンの VPC の中で、AZ と横並びに存在する Zone となっています。大阪リージョンの Wavelength Zone についても、大阪ではなく東京リージョンの VPC に所属する点は、若干紛らわしいので覚えておきましょう。
VPC 内の AZ と Wavelength Zone は相互通信可能です。KDDI 網に参加している端末が、Wavelength の EC2 インスタンスにアクセスできます。(通常のインターネットの回線からは、ICMP しか通りません)
ということで、まずは VPC を東京リージョン側で作成していきましょう。既に VPC を持っている場合は、既存のものを利用できます。
Create VPC を押します。
名前や CIDR を入力して、Create VPC を押します。
VPC が作成されました
Subnet の作成
Wavelength Zone に紐づく Subnet を作っていきます。通常の AZ で作成するときの手順と同じです。
Create Subnet を押します。
作成した VPC を選択します
パラメータを入れて Create Subnet を押します
- Subnet の名前
- Availability Zone の選択で、Wavelength Zone の東京を選ぶ
- CIDR を入力
Wavelength Zone Tokyo の Subnet が出来ました。
同様に Wavelength Zone の Osaka 側も作成しました
通常の Tokyo Region の AZ も作成しました
Carrier Gateway の作成
Wavelength として必要な Carrier Gateway を作成します。KDDI さんのスライドを借りると、KDDI 網と接続するための Gateway です。通常の AZ だと Internet Gateway を使ってインターネットと通信をしますが、Wavelength の場合は、Carrier Gateway を使います。
それでは、Carrier Gateway を作成していきましょう。VPC のページで、Carrier Gateway の作成をしていきます。
名前と VPC を選択して、Create を押します
作成されました
Route Table を Subnet に紐づける
Carrier Gateway を作成したことで、自動的に 1 個の Route Table が作成されています。この Route Table を Subnet に紐づけます。
東京と大阪の Wavelength Zone に紐づく Subnet を選択します。
Wavelength Zone に EC2 インスタンスを作成
それでは、実際に Wavelengh Zone で EC2 インスタンスを作成していきます。通常の AZ と同様の操作で構築できます。EC2 のページで Launch instances を選択します
Amazon Linux 2 を選びます
次に、EC2 インスタンスタイプを選んでいくのですが、Wavelength Zone で利用可能なインスタンスタイプについてです。次の URL で公開されています。
上記の URL にある通り、次の 4 つを選択できます。
- t3.medium
- t3.xlarge
- g4dn.2xlarge
- r5.2xlarge
なお、上記以外の インスタンスタイプを選択すると、エラーになります。
今回は、t3.medium を選択していきます。
VPC と Subnet を、Wavelength のものを選択します。
ストレージ容量などを選択して Next を押します
Security Group の設定です。一旦、VPC 内部に限定したものを設定します。
Launch を押します
キーペアを選択します。
EC2 Instance が、Wavelength Zone 上で構成されました
同様に Wavelength Zone の大阪と、東京リージョン側の通常 AZ にも、EC2 Instance を作成しました
Wavelength Zone のインスタンスに SSH
Wavelength Zone に作成したインスタンスが正常に稼働しているか SSH をしてみましょう。自宅の PC はインターネットにつながっていますが、KDDI 網には接続していないので、東京リージョンの AZ に立てたインスタンスを踏み台にしてアクセスをしていきます。(記事では省略しますが、AZ 側ではInternet Gateway や Security Group など、SSH 接続をするための設定変更をしています)
東京AZ → Wavelength Zone 東京
Ping が正常に届きます。
[ec2-user@ip-10-10-100-102 ~]$ ping 10.10.0.55
PING 10.10.0.55 (10.10.0.55) 56(84) bytes of data.
64 bytes from 10.10.0.55: icmp_seq=1 ttl=64 time=5.56 ms
64 bytes from 10.10.0.55: icmp_seq=2 ttl=64 time=5.18 ms
64 bytes from 10.10.0.55: icmp_seq=3 ttl=64 time=5.16 ms
64 bytes from 10.10.0.55: icmp_seq=4 ttl=64 time=5.20 ms
^C
--- 10.10.0.55 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 5.161/5.278/5.560/0.178 ms
[ec2-user@ip-10-10-100-102 ~]$
Wavelength Zone 東京で稼働している EC2 インスタンスに、SSH が出来ました
[ec2-user@ip-10-10-100-102 ~]$ ssh ec2-user@10.10.0.55
Last login: Sun Feb 27 05:11:28 2022 from 10.10.100.102
__| __|_ )
_| ( / Amazon Linux 2 AMI
___|\___|___|
https://aws.amazon.com/amazon-linux-2/
東京AZ → Wavelength Zone 大阪
Ping が出来ています
[ec2-user@ip-10-10-100-102 ~]$ ping 10.10.1.248
PING 10.10.1.248 (10.10.1.248) 56(84) bytes of data.
64 bytes from 10.10.1.248: icmp_seq=1 ttl=64 time=11.6 ms
64 bytes from 10.10.1.248: icmp_seq=2 ttl=64 time=11.4 ms
64 bytes from 10.10.1.248: icmp_seq=3 ttl=64 time=11.4 ms
64 bytes from 10.10.1.248: icmp_seq=4 ttl=64 time=11.6 ms
64 bytes from 10.10.1.248: icmp_seq=5 ttl=64 time=11.4 ms
^C
--- 10.10.1.248 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4007ms
rtt min/avg/max/mdev = 11.402/11.536/11.690/0.125 ms
[ec2-user@ip-10-10-100-102 ~]$
Wavelength Zone 大阪で稼働している EC2 インスタンスに、SSH が出来ました
[ec2-user@ip-10-10-100-102 ~]$ ssh ec2-user@10.10.1.248
Last login: Sun Feb 27 05:14:04 2022 from 10.10.100.102
__| __|_ )
_| ( / Amazon Linux 2 AMI
___|\___|___|
https://aws.amazon.com/amazon-linux-2/
[ec2-user@ip-10-10-1-248 ~]$
WZ 大阪 → WZ 東京
なお、Wavelength Zone 東京と Wavelength Zone 大阪間は通信できません
[ec2-user@ip-10-10-1-248 ~]$ ping 10.10.0.55
PING 10.10.0.55 (10.10.0.55) 56(84) bytes of data.
^C
--- 10.10.0.55 ping statistics ---
8 packets transmitted, 0 received, 100% packet loss, time 7172ms
[ec2-user@ip-10-10-1-248 ~]$
Elastic IP の作成
Elastic IP を作成して、Wavelength Zone の EC2 インスタンスに付与していきます。これを付与することで、KDDI 網から直接 Wavelength Zone のインスタンスへ接続が可能です。
Allocate Elastic IP address を選びます
Wavelength Zone 東京の Elastic IP を取得するために、Network Border Group の欄で、 ap-northeast-1-wl1-nrt-wlz-1
を選びます。大阪の場合は ap-northeast-1-wl1-kix-wlz-1
です。
Wavelength Zone の東京と大阪側の両方を取得しました
取得した Elastic IP を選択して、EC2 インスタンスに Associate していきます
Associate をします
同様に、Osaka の Elastic IP も EC2 インスタンスに付与します。
自宅から Ping で疎通確認
Wavelength Zone で稼働している EC2 インスタンスは、インターネットを経由しても ICMPであれば通信可能です。TCP/UDP はダメです。ここまでの設定の確認のため、自宅PC から Ping を行い、正常に通信できるか確認してみましょう
東京と大阪のそれぞれに Ping を打ちます。正常に疎通できれば、ここまでの設定は正しくできています。
ping <elastic IP>
Nginx のインストール
Wavelength Zone でうごかしている 東京と大阪のEC2 インスタンスへ、Nginx を導入します
sudo amazon-linux-extras install nginx1 -y
root ユーザーにスイッチします
sudo su -
Index.html を書き換えます。テストページです from Wavelength 東京
の文字は、大阪のときは書き換えます
cat <<'EOF' > /usr/share/nginx/html/index.html
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<title>テストページです from Wavelength 東京</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<style type="text/css">
/*<![CDATA[*/
body {
background-color: #fff;
color: #000;
font-size: 0.9em;
font-family: sans-serif,helvetica;
margin: 0;
padding: 0;
}
h1 {
text-align: center;
margin: 0;
padding: 0.6em 2em 0.4em;
background-color: #294172;
color: #fff;
font-weight: normal;
font-size: 1.75em;
border-bottom: 2px solid #000;
}
h1 strong {
font-weight: bold;
font-size: 1.5em;
}
/*]]>*/
</style>
</head>
<body>
<h1>テストページです from Wavelength 東京</h1>
</body>
</html>
EOF
root から戻ります
exit
Nginx のサービスを起動します
sudo systemctl restart nginx
sudo systemctl enable nginx
アクセス確認
KDDI 回線を持っている端末から、実際にアクセスしてみましょう。
まず東京です。正常にアクセスできました!環境的に 4G 回線になりますが、これでも正常にアクセスできています。なお、通常のインターネット回線からは接続できません。
次に大阪です。これも同様にアクセスができました!
検証を通じてわかったこと
- Wavelength Zone は、ネットワークキャリア網に参加している端末からアクセス可能
- 5G でも 4G でも接続可能
- the internet からはアクセスできない (ICMP のみ可能)
- Wavelength Zone の東京と大阪は、Tokyo Region の VPC に所属する
- Tokyo Region の AZ と、Wavelength Zone 間は問題なく通信可能
- Wavelength Zone の東京と大阪間は通信できない