はじめに
12/2から12/6にラスベガスでre:Invnet2024が開催されました。re:Invnet2024で発表されたCloud Operations関連のアップデートにおいて、Amazon CloudWatch Network Monitorについて触ってみたところ、たった4ステップで簡単に始められたので共有させていただきます。
re:Invent近辺のCloud Operations関連のアップデート、トピックはAWS SA堀さんが日本語の記事にしてくれていますので、ぜひそちらを参照してください。
それでは早速始めていきましょう。
Step1:CloudWatch Network Flow Monitor 有効化
CloudWatchの画面で以下の流れで設定していきます。
「フローモニター」を選択して、「ネットワークフローモニターを有効にする」をクリック
保留中に変わります。
有効化が完了されるまで数分かかりましたので、この間に次のステップに進みます。
Step2:IAMロールに対象ポリシーをアタッチ
続いて必要となるポリシー「CloudWatchNetworkFlowMonitorAgentPublishPolicy」をアタッチしていきます。
次のステップでエージェントをインストールできるOSとKernel versionに制限があるということですので、ポリシーアタッチの段階からご注意ください。Windowsは対象外な点と、LinuxもKernel versionが5.8以降である必要があります。
以下はEC2インスタンスにアタッチする例です。
EC2にアタッチしているポリシーを選択して、「許可を追加」を選択します。
検索欄に「CloudWatchNetworkFlowMonitorAgentPublishPolicy」を入力して、表示されたポリシーにチェックを入れて「許可を追加」をクリックします。
Step3:Network Flow Monitor agentsをインストール
次にEC2インスタンスにNetwork Flow Monitor agentsをインストールしていきます。
AWS Systems Managerでディストリビューターを選択します。
検索窓に「AmazonCloudWatchNetworkFlowMonitorAgent」を入力して絞り込みます。
表示されたディストリビューターのラジオボタンにチェックして、「1回限りのインストール」をクリックします。
コマンドの実行画面でインスタンスを指定します。他は特にデフォルト値で問題ありません。
Step4:ネットワークフローモニターの作成
いよいよ最後のステップです。
ネットワークフローモニターの画面で「モニター」タブを選択し、「モニターを作成」をクリックします。
モニター名にお好きな名前を入力して、ローカルリソース(今回はVPCを選択)、リモートリソース(今回は全てを選択)を選択して、「次へ」をクリックします。
リモートリソースには、S3やDynamoDBが指定できるようになっています。
プレビューと作成画面で内容を確認して「モニターを作成」をクリックします。
モニターでの監視
最後に作成されたモニターを確認してみましょう。
作成されたばかりのモニターは情報が空の状態です。
時間が経過すると情報が蓄積されていき、ステータス以外にも転送量やラウンドトリップ時間など色々なネットワークの状況が可視化されます。
再送について「Historical Explorer」タブを選択すると詳細を見ることができました。
こちらはEC2にアタッチされたENIとELBにアタッチされたENIとの間で再送が発生していました。
トポロジによる可視化もされており、わかりやすいと感じました。
まとめ
これまでは、障害が発生した際にAWS環境内のネットワークの状況が見づらいと感じていました。(Network Monitoringはインスタンス等に対する疎通確認のため、特定インスタンスを中心としたネットワーク全体の状況は見られない)
今回、Network Flow Monitorが提供されたことで、AWS環境内のネットワークの再送等の情報がマネージメントコンソール上で簡単に見られるようになりました。システムで問題が発生した時、ネットワークの問題か、アプリケーションの問題かを切り分けするための1つの材料になると考えています。
以上、今回はCloudWatch Network Flow Monitorをお試ししてみました。
どなたかの参考になれば幸いです。
他にもCloudWatchの機能拡張がリリースされていますので、引き続きチェックしていきたいと思います。