Even though I work and work...

AWSメインのメモ。基本的に22:00に予約投稿

AWS Wavelengthの検証

はじめに

まず、AWS Wavelengthとは

AWS Wavelength は、AWS コンピューティングおよびストレージサービスを 5G ネットワーク内に組み込んで、超低レイテンシーアプリケーションの開発、デプロイおよびスケーリングのためのモバイルエッジコンピューティングインフラストラクチャを提供します。

とのこと。日本ではKDDIのネットワークエッジにて提供されています。

biz.kddi.com

主にネットワークの通信可否と監視周りで少し気になったため検証してみます。

検証のために構築した環境

検証環境構成図

構築の手順は下記を参照してください。
ドキュメント:Get started Wavelength
Qiita:AWS Wavelength を構築してみた

確認事項はこちら

  1. インスタンス間の通信可否
  2. Wavelength上のリソース情報をAPIで取得できるか
  3. System Managerが利用できるか
  4. New Relicを利用してEC2のメトリクスを収集できるか
  5. バックアップ(AMI、EBSスナップショット)

インスタンス間の通信可否

基本的な通信可否の把握、Carrier IPへの通信がどうなるのかの確認です。

結果

No. source dest TCP(http) ICMP(ping)
ローカル wl-tokyo-1(Carrier IP) ×
public-instance(Private IP) wl-tokyo-1(Private IP)
public-instance(Public IP) wl-tokyo-1(Carrier IP) ×
wl-tokyo-1(Private IP) public-instance(Private IP)
wl-tokyo-1(Carrier IP) public-instance(Public IP)
wl-tokyo-2(Private IP) wl-tokyo-1(Private IP)
wl-tokyo-2(Carrier IP) wl-tokyo-1(Carrier IP)
wl-osaka-1(Private IP) wl-tokyo-1(Private IP) × ×
wl-osaka-1(Carrier IP) wl-tokyo-1(Carrier IP) ×

通信確認

詳細

インスタンスにElastic IP、Carrier IPを割りあて、セキュリティグループは各IPに対してすべてのトラフィックを許可しました。
ICMPはpingで確認しています。
TCPwl-publicwl-tokyo-wにはningxをインストールし、wgetでデフォルトページが取得できるかを確認しました。

基本的に公開されている資料通りの結果でした。

Networking considerations AWS Wavelength最新情報(2020/12) p.9

想定外だったのは⑧のWZ間ではprivate IPでの通信ができないこと。 WZ間で通信したいとなるとCarrier IPを利用することになり、結果⑨を見るとInternetを経由しているようなのでTCPが利用できません。 上記のNetworking considerationsにも記載あり。

Multiple Wavelength Zone considerations
EC2 instances that are in two different Wavelength Zones in the same VPC are not allowed to communicate with each other. If you need communication from one Wavelength Zone to another Wavelength Zone, we recommends that you use multiple VPCs, one for each Wavelength Zone. You can use a transit gateway to connect the VPCs. This configuration enables communication between instances in the Wavelength Zones. For information about how to configure multiple Wavelength Zones, see Extend your VPC resources to Local Zones in theAmazon VPC User Guide.

VPCにしてtransit gatewayでつないで〜とのこと。
複数の Wavelength Zone に関する考慮事項

おなじWZ内であればCarrier IP間の通信でもKDDI網を出ることはなく、HTTP通信が可能のようです。

Wavelength上のリソース情報をAPIで取得できるか

ネットワーク的に到達できないインスタンスの情報もAPIで取得できるのかの確認です。

結果

取得できました。 apiaws cli、boto3のドキュメントにもWavelengthのリソースに対する操作について記載があります。

例:CarrierGatewayの一覧取得
API Reference
aws cli
boto3

詳細

aws cliによるWavelength Zone(WZ)上のリソース操作は問題なく行えました。 リソース自体はWZに作成されるけれどもEC2などのコントロールプレーンはAWS側にあると理解しています。 スライド p.25にも「コントロールプレーンはリージョン側」と記載あり。(なんのコントロールプレーンかはわからないので当てにならないかもしれないけど)

例:WZに作成したinstanceをdiscribe

[cloudshell-user@ip-10-0-101-101 ~]$ aws ec2 describe-instances --instance-ids i-0123456789abcdef0
{
    "Reservations": [
        {
            "Groups": [],
            "Instances": [
                {
                    "AmiLaunchIndex": 0,
                    "ImageId": "ami-0de5311b2a443fb89",
                    "InstanceId": "i-0123456789abcdef0",
                    "InstanceType": "t3.medium",
                    "KeyName": "wl-test-key",
                    "LaunchTime": "2022-11-17T01:52:04+00:00",
                    "Monitoring": {
                        "State": "disabled"
                    },
                    "Placement": {
                        "AvailabilityZone": "ap-northeast-1-wl1-nrt-wlz-1",
                        "GroupName": "",
                        "Tenancy": "default"
                    },
                    "PrivateDnsName": "ip-10-0-1-101.ap-northeast-1.compute.internal",
                    "PrivateIpAddress": "10.0.1.101",
                    "ProductCodes": [],
                    "State": {
                        "Code": 16,
                        "Name": "running"
                    },
    ... 以下略

System Managerが利用できるか

EC2を利用するなら必須なので!

結果

利用できました。

ドキュメントの対応サービスにも記載があります。

AWS resources on Wavelength

You can create Amazon EC2 instances, Amazon EBS volumes, and Amazon VPC subnets and carrier gateways in Wavelength Zones. You can also use the following:

The services in Wavelength are part of a VPC that is connected over a reliable connection to an AWS Region for easy access to services running in Regional subnets.

詳細

WZに作成したインスタンスにSSM Agentをインストールし、

  • フリートマネージャーに表示されるか
  • SessionManagerによる接続ができるか
  • Run Commandを実行してagent updateを実行できるか

を確認しました。いずれも問題なく実行完了。
Private subnetの場合はVPCエンドポインを設定できますが、WZに作成したサブネットはエンドポイントの対象に出てきません。 なのでCarrier IPを割り当てる必要があります。

フリートマネージャーでの表示

バックアップ(AMI、EBSスナップショット)

これは以前にどこかでエラーが出ると聞いたことがあったので...

結果

WZに作成したインスタンスのAMIとEBSスナップショットを手動で作成したところ、 AMI、EBSスナップショットのいずれも問題なく実行でき、ステータスも利用可能でした!

New Relicを利用してEC2のメトリクスを収集できるか

問題なく収集できるはずですが、念の為。

結果

インフラストラクチャモニタリングにおいて、AWSインテグレーションによるメトリクスの取得やAgentからのメトリクス送信は可能でした。 外形監視はネットワーク構成上不可能であるため検証していません。

詳細

WZ上に作成したインスタンスにNew Relic Agentをインストールし、 インフラストラクチャモニタリングのHostに出力されるか、各種メトリクスが取得されているかを確認しました。 ログも問題なく収集できています。

NewRelic Logs

外形監視について

New Relicの外形監視は基本的にHTTPなので、ネットワークの制約上利用不可です。 DataDogはICMPを利用する設定があるので、それならば利用できる可能性があります。
また、New Relic、DataDogともにプライベートロケーションからの監視機能があるので、動作確認はしていませんが、WZに接続可能なAWS側のsubnetでこれらを利用すればPrivate IP経由での外形監視はできそうです。

New Relic プライベートロケーションの概要
DataDog Synthetic テストをプライベートロケーションから実行する

おわりに

簡単ではありますが動作検証でした。
なかなか情報をえられないサービスであるため良い勉強になりました。

参考

サービスページ:AWS Wavelength
ドキュメント:AWS Wavelength ドキュメント
YoutubeIoT@Loft#18 大阪リージョンとAWS Wavelengthの紹介
スライド:IoT@Loft#18 大阪リージョンとAWS Wavelengthの紹介
スライド:AWS Wavelength最新情報(2020/12)