社内のAWS勉強会「監視について」のメモ
前回の社内のAWS勉強会(続き)のメモの続き。今回は結構実運用的な話。本日の内容はこちら。
- AWSの監視
- 他の監視サーバとの統合監視について
- 監視に関連するサービスの紹介
- 監視事例の紹介
※以下、価格については東京リージョンのものとします。
AWSの監視
AWSの監視の中核はCloudWatch
AWSの監視サービスの全体像
CloudWatchがAmazon SNS
(通知)やS3
(ログ出力など)やLambda
(バッチなどの処理実行)やCloudTrail
(操作記録)などをキックする。AWAの監視
Cloud Watch
について- できること
- できないこと
料金体系
ちょっと複雑な体系。- 無料枠
- 有料
多くのメトリクスを設定せず、通常の利用範囲なら結構安価。
他の監視サーバとの統合監視について
- AWS側の監視とサーバ側の監視
- 監視の二重化による問題点
- AWSの監視とサーバ内部の監視を別々に行う必要あり
CloudWatch
とzabbix
の2つをそれぞれ監視するのが面倒
- 監視の統合
CloudWatch
側の監視値を外部チェック設定でzabbix
に送信zabbix
は外からの情報は受け付けられる- もし
zabbix
が落ちたらCloudWatch
が通知を送る設定、などが必要
- AWSの監視とサーバ内部の監視を別々に行う必要あり
監視に関連するサービスの紹介
CloudWatchEvent
について
- 2016/1にリリース
- ほぼリアルタイムに監視可能
- イベントは
Lambda
やSNS
トピックなどにふりわけられる - 周期的な実行が可能
- その他利用方法
EC2
の起動・停止時のイベント処理- 決められた時間に
EBS
のスナップショット取得
- つまりバッチサーバ的な動作が可能
- 100万イベント(データ量64KBにつき1イベントとする)で$1
CloudTrail
について
- AWSのAPIの呼び出しの記(ログの記録ではない!)
EC2
の起動・停止も含む- 誰がいつ何をどのように処理したのかを可視化
- コンプライアンス
- 一定の操作を行った場合の
SNS
の通知機能 - 基本的に無料
- 追加証跡情報を利用すると、10万イベントで$2発生
- 7日間以内のイベント参照であれば無料
- 7日以降はS3のストレージ料金が発生
SQS
について
- AWSのメッセージキューサービス
- 個別送信、ブロードキャスト送信に対応
iOS, Android, Java, Python, PHP, Node.js
などに配信可能- キューサービス、Lambda関数, 電子メール, HTTPエントリポイントに配信可能
CloudWatch
と連携し、モバイルへのSNS
通知の成功・失敗率の算出が可能- 料金
- キューの発行 $0.5 / 100万件
- キューの送信 $0.5 / 100万件
Lambda
について
- 今後主流のサービス
- サーバレスでコードを実行可能
- API Gatewayを使用したHTTPリクエストからもコードを実行可能
- APIサーバとしての役割が可能
- 現時点で
Node.js, Python, Java
に対応 - 1秒ごとに数個から数千までのリクエストに対してオートスケール
- サーバレスのマイクロサービスが構築可能
- 制限
- テンポラリの容量は512MBまで
- リクエストの最大実行時間300秒
- リクエスト・レスポンスのデータ容量は6MBまで
- アップロードプログラムサイズは250MBまで
- 料金は $0.2 / 100万リクエスト
- メモリの利用時間じ応じたコスト(コスト単位)
AutoScale
について
- 高負荷を
CloudWatch
が検知し、自動的にEC2をスケールアウト - 指定した最大台数までスケールアウト可能
- 自動でインスタンスを追加・削除の設定が可能
監視事例の紹介
事例の構成
ELB
,EC2
-2台(webサーバ), それぞれのEC2の裏にEC2
(APIサーバ)、RDS
(詳しくは下図参照)
問題点
- APIサーバで障害が発生しても、
ELB
からWEBサーバへのアクセが発生しエラー
- APIサーバで障害が発生しても、
- 解決方法
最後に
駆け足の説明だったので、一部説明が足りない部分があると思うので、確認しつつ更新します。