【AWS re:Invent2024】ワークショップレポート： Amazon CloudWatch および CloudWatch Internet Monitor を活用した WorkSpaces の監視方法


この記事は [NTTコムウェア AdventCalendar 2024](https://qiita.com/advent-calendar/2024/nttcomware) 13日目の記事です。

# はじめに
NTT コムウェアの東構です。普段は Azure や AWS に関する社内からの問い合わせ対応や技術検証などを行っています。
今回、AWS re:Invent2024に初参加してきました。イベント期間中は、現地でしかできない体験を優先するため
1日に1つはワークショップ形式のセッションに参加することを目標にしていました。
その中でも特に実用的だと感じた Amazon CloudWatch および CloudWatch Internet Monitor を活用した WorkSpaces の監視方法 についてワークショップの内容をご紹介します。

# 参加したセッション
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3940376/f46b825f-58eb-47b3-444b-b2177db16ba7.png)
`出典：AWS「AWS re:Invent」
https://registration.awsevents.com/flow/awsevents/reinvent24/sessioncatalog/page/page?search=EUC201（2024.12.11）`


和訳：
EUC201-R | 強化された可観測性を活用して仮想デスクトップのパフォーマンスを最適化する 

**測定しなければ効果的に管理することはできない。Amazon WorkSpaces ファミリーサービスに含まれる強力な可観測性機能により、フリートの監視、トラブルシューティング、パフォーマンス最大化が可能である。このワークショップでは、しきい値アラーム、自動通知、レイテンシー、CPUパフォーマンス、メモリ使用量などのメトリクスを活用し、エンドユーザー体験とフリート全体のパフォーマンスを最適化するための実践的なスキルを学ぶことができる。参加にはラップトップが必要である。**

このワークショップではまず初めに講義としてAmazon CloudWatch とは何かという内容の説明がありました。そこでは AWSの可観測性ツールでありCPU、メモリ、セッションレイテンシ、パケット損失など多くのメトリクスの監視を行うことができるという内容でした。
そのあとにワークショップの説明が行われ、各々がワークショップを進めていき、何か質問があればスタッフの方を呼ぶようなスタイルでした。

# WorkShop の内容
## **概要**
このワークショップでは、Amazon CloudWatch を使用して Amazon WorkSpaces の可観測性を強化し、エンドユーザーの体験と WorkSpaces フリート全体のパフォーマンスを最適化する方法を学びました。主な活動には、以下の構成や設定が含まれます。

- **5つのウィジェット** と **2つのアラーム** の設定
- **Amazon EventBridge** の構成
- **CloudWatch Internet Monitor** の導入
- **WorkSpaces** のログデータの分析と視覚化

### **前提**

このワークショップでは Amazon WorkSpaces が作成されている前提となります。

---

## **学習目標**
1. **Amazon EventBridge** を使用して、WorkSpaces のログインイベントと API 呼び出しを CloudWatch に記録
2. **CloudWatch Internet Monitor** でインターネットの可用性とパフォーマンスを監視
3. **CloudWatch ダッシュボード** による WorkSpaces の主要メトリクスの視覚化
4. **アラーム設定** により、高CPU使用率や異常な WorkSpaces を自動通知

---

## **主要な実施内容**

### **1. Amazon EventBridge の設定**
- **目的**: WorkSpaces のログインイベントや API 呼び出しを記録し、分析可能にする
- **手順**:
  - EventBridgeコンソールから EventBridge ルールを作成し、ログデータを CloudWatch に送信
  - WAN IP アドレスの追跡やログ分析を実現
- **結果**: WorkSpaces の利用状況に関する包括的な分析基盤を構築


---

### **2. CloudWatch Internet Monitor の構成**
- **目的**: エンドユーザーのインターネット接続パフォーマンスをリアルタイムで把握
- **手順**:
  - CloudWatch Internet Monitor を設定し、WorkSpaces ディレクトリにリンク
  - 地域別や ISP 別のインターネット問題を特定
- **結果**: 問題の特定と迅速な修復が可能な監視環境を構築

---


### **3. CloudWatch ダッシュボードの作成**
- **目的**: WorkSpaces の主要なパフォーマンス指標を視覚化
- **手順**:
  - CloudWatch コンソールからダッシュボードに以下のウィジェットを追加：
    - CPU 使用率、メモリ使用量、稼働時間、ルートボリューム使用量、ユーザーボリューム使用量の上位10
  - 動的変数を利用し、地域ごとに切り替え可能なダッシュボードを構築
- **結果**: WorkSpaces のパフォーマンスデータを多角的に視覚化
---

### **4. CloudWatch Internet Monitor ダッシュボードを確認する**
- **目的**: WorkSpaces に関連するインターネット接続のパフォーマンスを分析
- **手順**:
  - CloudWatch Internet Monitor ダッシュボードを開き、IPアドレスを入力することで、WorkSpaces の接続情報を確認
  - ユーザーのアクセス元地域や ISP 別の問題を特定
- **結果**: WorkSpaces のエンドユーザー接続状況を詳細に把握し、地域ごとの問題を分析する基盤の完成

---

### **5. CloudWatch アラームの設定**
- **目的**: 異常な WorkSpaces や高CPU使用率を検知し、通知
- **手順**:
  - **異常な WorkSpaces**:
    - CloudWatch コンソールで「Unhealthy WorkSpaces」を検知し、メール通知を設定
  - **高CPU使用率**:
    - CloudWatch コンソールで CPU使用率が90%を超えた場合にアラームを発報
- **結果**: 問題発生時の迅速な対応を可能にする通知システムを構築


---
## **Amazon CloudWatch ダッシュボードと CloudWatch Internet Monitor の違い**
- **CloudWatch ダッシュボード**: WorkSpaces のリソース使用状況（CPU、メモリ、ストレージなど）を視覚化し、パフォーマンスデータを多面的に表示
- **CloudWatch Internet Monitor**:
  - IPアドレスの情報をダッシュボードに表示可能
  - ユーザーの所在地を把握し、どこからアクセスしているかを特定可能
  - インターネット接続の問題（地域別、ISP 別）をリアルタイムで監視

---

# さいごに
今回のワークショップでは Amazon CloudWatch および CloudWatch Internet Monitor を活用した WorkSpaces の監視方法を学ぶことができました。
CloudWatch ダッシュボードを活用した各メトリックの監視方法に加え、CloudWatch Internet Monitor を活用したIPごとのアクセスを監視する手法を学習することができ非常に勉強になりました。

---

# **参考資料**
- [Amazon CloudWatch Documentation](https://docs.aws.amazon.com/cloudwatch/)
- [Amazon WorkSpaces 管理ガイド](https://docs.aws.amazon.com/workspaces/latest/adminguide/amazon-workspaces.html)
- [CloudWatch を利用した WorkSpaces の分析](https://aws.amazon.com/blogs/desktop-and-application-streaming/using-cloudwatch-to-understand-how-end-users-are-accessing-workspaces/)
- [AWS CloudFormation Templates](https://docs.aws.amazon.com/workspaces/latest/adminguide/cloudformation-templates.html)

---
記載されている会社名、製品名、サービス名は、各社の商標または登録商標です。