第 1 分野: モニタリング、ロギング、修復、パフォーマンスの最適化
Amazon ElastiCache for Memcached
高速なインメモリキャッシュシステムであり、データベースクエリの結果やアプリケーションデータをメモリに保存して高速なアクセスを提供
特徴
- インメモリストレージ: 全てのデータがメモリ上に保存される
- 分散アーキテクチャ: 複数のノードにデータが分散される
- キー・バリューストア: シンプルなデータ構造
- 揮発性: インスタンス再起動時にデータは失われる
パフォーマンス監視
重要なメトリクス
- Evictions: データ削除回数
- CacheHits: キャッシュヒット数
- CacheMisses: キャッシュミス数
- CPUUtilization: CPU使用率
- NetworkBytesIn/Out: ネットワークトラフィック
ベストプラクティス
- Evictions率の定期的な確認
- キャッシュヒット率の最適化
- メモリ使用率の監視
- アプリケーションレベルでの性能測定
例えば以下の流れでEvictions率が高くなりUXが悪化する。
- Evictions率(データ削除回数)が高い
- => キャッシュ容量が不足している
- => 古いキャッシュから削除してメモリを確保
- => 削除されたデータへのアクセス時にキャッシュミスが発生
- => DBへのクエリ増加による応答時間の悪化
- => 古いキャッシュから削除してメモリを確保
- => キャッシュ容量が不足している
対策としてはキャッシュ容量増加が必要であり、垂直スケーリング(ノードサイズ拡張) か 水平スケーリング(ノード数の増加) の両方が有効
プロアクティブ監視とリアクティブ監視
プロアクティブ監視
ユーザーが問題を経験する前に潜在的な問題を検出するアプローチ
リアクティブ監視
実際のユーザーからのデータやフィードバックに基づいて問題を検出するアプローチ
CloudWatch Synthetics vs CloudWatch RUM
| 項目 | CloudWatch Synthetics | CloudWatch RUM |
|---|---|---|
| 監視タイプ | プロアクティブ | リアクティブ |
| 主な目的 | ユーザーの行動をシミュレートし、事前に問題を検出 | 実際のユーザーの体験を測定し、問題を後から検出 |
| 監視の開始タイミング | 事前にスケジュールされた定期テスト | ユーザーがアクセスしてからのみデータ収集開始 |
| 代表的な利用例 | サイトのアクセスやAPIの正常性、フローの自動検証 | ページの読み込み時間やJavaScriptエラーの収集 |
| 検出対象 | アプリケーションのエンドツーエンド動作、静的・動的コンテンツ | 実ユーザーの実際の行動やエラー、パフォーマンス |
| 監視の情報源 | Canaryスクリプト(シミュレートされたリクエスト) | 実際のブラウザやアプリからのテレメトリデータ |
| 運用コスト | 監視頻度に応じてコストがかかる(頻繁に実行可能) | ユーザーベースのため、アクセス速度やユーザ数に依存 |
| 利点 | 事前に問題を検出でき、潜在的な障害を早期に把握できる | 実際のユーザ体験を把握し、ユーザ視点の改善に役立つ |
| 適用例 | 静的コンテンツやAPIのエンドツーエンド検証 | ユーザーが問題を報告する前の監視やパフォーマンス分析 |
第 2 分野: 信頼性とビジネス継続性
CloudWatchLogs
代表的な標準メトリクス
- EC2インスタンス
- CPUUtilization:CPU使用率
- DiskReadOps / DiskWriteOps:ディスクの読み書き操作
- NetworkIn / NetworkOut:ネットワークの入力/出力
- StatusCheckFailed:健康状態のチェック結果
- RDS
- CPUUtilization:CPU使用率
- FreeStorage space:空きストレージ容量
- ReadIOPS / WriteIOPS:読み書きのI/O操作
- DatabaseConnections:接続数
- DynamoDB
- ConsumedReadCapacityUnits / ConsumedWriteCapacityUnits:消費された容量
- ReadThrottleEvents / WriteThrottleEvents:スロットルイベント
- UserErrors:エラー発生数
- S3
- NumberOfObjects:オブジェクト数
- BucketSizeBytes:バケットサイズ
- AllRequests:リクエスト数
- 4xxErrors / 5xxErrors:エラー数
- ALB
- RequestCount:処理されたリクエストの総数
- TargetResponseTime:ターゲットからの平均応答時間
- HTTPCode_Target_2XX_Count:成功レスポンス数
- HTTPCode_Target_4XX_Count:クライアントエラー数
- HTTPCode_Target_5XX_Count:サーバーエラー数
- ActiveConnectionCount:アクティブな接続数
RDS
運用オーバーヘッドを抑えたDBクラスターの作成方法
以下AWSのマネージド機能を使った方法が追加設定不要で簡単に作成できる。
- 自動スナップショットを指定した復元
- リードレプリカの作成と昇格
| スナップショット復元 | リードレプリカ昇格 | |
|---|---|---|
| 復元速度 | データサイズに依存 | ポイントインタイムでの完全な整合性 |
| データ整合性 | 即座に利用可能 | レプリケーション時点での整合性 |
AWS Control Tower
マルチアカウント環境の設定とガバナンスを自動化するサービス
特徴
- 自動化されたセットアップ:
- ベストプラクティスに基づいたマルチアカウント環境の自動構築
- 継続的なガバナンス:
- ガードレールによる予防的・検出的コントロール
- 一元化された可視性:
- ダッシュボードによる統合管理
主要機能
- ランディングゾーン
- Control Towerが自動的に構築するマルチアカウント環境の基盤
- セットアップ時に、Control Towerは管理アカウント内で以下の処理を実行する
- SecurityとSandbox(オプション)の組織単位(OU)を作成
- Security OU内にLog ArchiveアカウントとAuditアカウントの2つの共有アカウントを作成
| コンポーネント | 機能 | 目的 |
|---|---|---|
| Security OU | セキュリティ管理用アカウント群 | ログ集約、監査機能の提供 |
| Sandbox OU | 開発・検証用アカウント群 | 実験環境の提供 |
| Log Archive アカウント | ログの一元管理 | CloudTrail、Config情報の集約 |
| Audit アカウント | 監査機能 | クロスアカウント監査の実行 |
-
Account Factory
- 新しいAWSアカウントの作成を自動化し、標準化された設定を適用する機能
-
Guardrails
- 組織のポリシーを自動的に実装し、監視する仕組み
-
予防的ガードレール
- 不適切な設定や操作を事前に防止
-AWS Configルールによる実装
-例:特定のAWSリージョンでのリソース作成制限
- 不適切な設定や操作を事前に防止
-
検出的ガードレール
- ポリシー違反を検出し、アラートを生成
- CloudTrailログの監視による実装
- 例:ルートユーザーでのアクセス検出
ポリシー違反を検出し、アラートを生成
CloudTrailログの監視による実装
例:ルートユーザーでのアクセス検出
- Dashboard機能
- アカウントの健全性、ガードレールの準拠状況、ドリフト(設定変更)の検出などの情報が視覚的に表示
第 3 分野: デプロイ、プロビジョニング、およびオートメーション
Amazon Secrets ManagerとAWS Key Management Service (KMS)
| 項目 | Secrets Manager | AWS KMS |
|---|---|---|
| 主な役割 | 機密情報の安全な保存と自動ローテーション | 暗号化キーの生成・管理とデータ暗号化 |
| 対象 | パスワード、APIキーなどのシークレット | データの暗号化キー(対称・非対称) |
| ユースケース例 | DB認証情報のローテーション、APIキーの管理 | S3のデータ暗号化、アプリケーション内のデータ暗号化 |
第 4 分野: セキュリティとコンプライアンス
AWS Security Hub
複数のセキュリティサービスからの検出結果を統合するセキュリティ管理サービス
主要機能
-
複数AWSアカウントからのセキュリティデータ統合
-
セキュリティ標準(CIS、PCI DSS、AWS Foundational等)への準拠評価
- Center for Internet Security(CIS)が策定したAWSの設定基準
- AWSアカウントのセキュリティ設定に関するベストプラクティス集
- 自動化された評価による準拠状況の定期チェックが推奨
- Center for Internet Security(CIS)が策定したAWSの設定基準
-
セキュリティスコアによる全体的なセキュリティ状況の可視化
-
カスタムインサイトによる高度な分析機能
-
CIS AWS Foundations Benchmark統合
-
AWS Organizations統合
新規作成アカウントは自動でSecurity Hubに参加されるようになるため、手動管理が不要になる。またアカウント間での一貫したセキュリティ評価が可能になる。
実装のベストプラクティス
- 管理者アカウントの選定:セキュリティ専用アカウントの使用
- Organizations統合の有効化:自動メンバー登録機能の活用
- 標準の有効化:CIS AWS Foundations Benchmarkの有効化
- 監視設定:重要な検出結果に対するアラート設定
- 修復プロセス:検出された問題への対応ワークフロー
第 5 分野: ネットワークとコンテンツ配信
Amazon Route 53 Resolver
ハイブリッド環境でのDNS解決を橋渡しするマネージドサービス
- アウトバウンドエンドポイント
- VPC -> オンプレミスDNSサーバーへのクエリ転送
- 指定されたサブネットにENIを配置
-
転送ルールと組み合わせてドメイン別のクエリ制御が可能
- 特定のドメインに対するDNSクエリの転送先を定義する機能
- Site to Site VPNやDirect Connect経由での通信をサポート
- インバウンドエンドポイント
- オンプレミス -> VPCのRoute53プライベートホストゾーンへのクエリ受信
- VPC内リソースに対する名前解決をオンプレミスから実行可能
- 双方向DNS統合の一部として機能
アウトバウンドエンドポイントの図解
---------------------- VPC ----------------------
| |
| +-------------------------------+ |
| | EC2 アプリサーバー | |
| | example.com 解決要求 | |
| +---------------+---------------+ |
| | DNS問い合わせ |
| v |
| +-------------------------------+ |
| | Route53 Resolver | |
| | VPC DNS解決器(標準クエリ) | |
| +---------------+---------------+ |
| | 条件一致 |
| v |
| +-------------------------------+ |
| | Forwarding Rule | |
| | example.com → オンプレDNS | |
| +---------------+---------------+ |
| | クエリ転送 |
| v |
| +-------------------------------+ |
| | Outbound Endpoint | |
| | AZ冗長ENI / VPN経路 | |
| +---------------+---------------+ |
| | VPN送信 |
------------------------------------------------
|
v
-------------------- OnPrem --------------------
| |
| +-------------------------------+ |
| | Site-to-Site VPN | |
| | 暗号化トンネル(双方向) | |
| +---------------+---------------+ |
| | プライベート経路 |
| v |
| +-------------------------------+ |
| | オンプレDNSサーバー | |
| | 権威ゾーン example.com | |
| | UDP 53 応答 | |
| +---------------+---------------+ |
| ^ 解決応答 |
| | |
| +---------------+---------------+ |
| | Site-to-Site VPN | |
| +---------------+---------------+ |
------------------------------------------------
^
| 応答転送
|
---------------------- VPC ----------------------
| | |
| v |
| +-------------------------------+ |
| | Outbound Endpoint | |
| +---------------+---------------+ |
| | VPC戻り |
| v |
| +-------------------------------+ |
| | Route53 Resolver | |
| +---------------+---------------+ |
| | 結果返却 |
| v |
| +-------------------------------+ |
| | EC2 アプリサーバー | |
| +-------------------------------+ |
------------------------------------------------
Amazon Route 53プライベートホストゾーン
VPC内でのみアクセス可能なDNSゾーン
- VPC内のリソースに対してプライベートIPアドレスでの名前解決を提供
- インターネットからはアクセスできない内部DNSサービス
- 複数のVPCに関連付け可能
- デフォルトではVPC外部からのクエリは受け付けない