EC2 - Amazon Web Services

基本から理解する、AWS運用監視
初心者向けWebinarシリーズ
アマゾン データ サービスジャパン株式会社
パートナー ソリューション アーキテクト
酒徳 知明
2015.05.12
1
ご質問を受け付け致します!
質問を投稿することができます!
• Adobe Connectのチャット機能を使って、質問を書き込んでく
ださい。(書き込んだ質問は、主催者にしか見えません)
• Webinarの最後に、可能な限り回答させていただきます。
• 終了時刻となった際は、割愛させていただく場合がございます。
①画面右下のチャッ
トボックスに質問を
書き込んでください
2
②吹き出しマークで
送信してください
初心者向けWebinarのご紹介
• AWSについてこれから学ぶ方向けのWebinarです。
• 過去のWebinar資料
– AWSクラウドサービス活用資料集ページにて公開
http://aws.amazon.com/jp/aws-jp-introduction/
• イベントの告知
– 国内のイベント・セミナースケジュールページにて告知
http://aws.amazon.com/jp/about-aws/events/
(オンラインセミナー枠)
3
Introduction
• 今回のAWS初心者向けWebinarでは、AWS上に
構築されたシステムの運用監視についてご紹介
します。
• 運用監視に必要となるAWSサービスを中心に基
本設定方法含めみていきます。
4
AWSの運用監視
• 今までのシステム監視とそれほど変わらない
– オンプレミス時の運用ノウハウを最大限活用
– 多くの監視ツールがAWSに対応
• クラウドならではの監視
– AWSサービスをうまく活用したシンプルな監視
– コスト監視
– コンプライアンス
5
基本となる運用監視
性能監視
状態監視
死活監視
キャパシティ
監視
オンプレミスでもクラウドでも基本的には同じ
6
Amazon
CloudWatch
7
Amazon CloudWatchとは
• AWSの各種リソースを監視するサービス
– AWSリソースの状態・死活、性能、ログ監視 (監視)
– 取得メトリックスのグラフ化 (可視化)
– 各メトリックスをベースとしたアラーム(通知)、アクションの設定が可能
• 多くのAWSサービスの監視が可能
–
–
–
–
Amazon EC2(クラウド内の仮想サーバ)
Amazon EBS(EC2用ブロックストレージ)
Amazon RDS(マネージド リレーショナルデータベース)
Elastic Load Balancing(マネージド ロードバランサー)など
http://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/DeveloperGuide/supported_services.html
8
ログインが成功すると以下のサービスの一覧画面が表示される
9
CloudWatch利用イメージ 標準メトリックス監視
対象インスタンス検索ウィンドウ
標準メトリックス一覧
グラフ表示期間設定
10
Amazon CloudWatchのメトリックス(EC2)
標準メトリックス
CPUUtilization
CPUCreditBalance
CPUCreditUsage
DiskReadBytes
DiskWriteBytes
DiskWriteOps
NetworkOut
NetworkIn
StatusCheckFailed_Instance
StatusCheckFailed
StatusCheckFailed_System
カスタムメトリックス
標準メトリックスでは
取得できないメトリックス
・メモリの空き容量
・ファイスシステム容量など
http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html
11
Amazon CloudWatch カスタムメトリックス
• 標準メトリックス以外の独自メトリックスも監視可能
– AWS CLIの”put-metric-data”を使いデータを登録
– サイズ制限として、HTTP GETは8KB、HTTP POSTは40KB、1つ
のPutMetricDataリクエストに20データ
$ aws cloudwatch put-metric-data –metric-name RequestLatency\
--namespace "GetStarted“\
--timestamp 2014-10-28T12:30:00Z\
--value 87 \
--unit Milliseconds\
$ aws cloudwatch put-metric-data --metric-name RequestLatency¥
--namespace "GetStarted“¥
--timestamp 2014-10-28T12:30:00Z\
--statistic-value Sum=60,Minimum=15,Maximum=105,SampleCount=5
http://aws.amazon.com/jp/cli/
12
Amazon EC2のモニタリングタイプ
13
基本モニタリング
詳細モニタリング
無料
追加料金が必要
データは 5分間隔で
自動的に取得
データは 1 分間隔で
取得
Amazon CloudWatchのメトリックス値
• CloudWatchで取得される情報は統計情報
– メトリックスデータを指定した期間で集約したもの
統計
説明
Minimum
指定された期間に認められた最小値です。この値を用いて、アプリケーションの低ボリュームのアクティビ
ティを判断できます。
Maximum
指定された期間に認められた最大値です。この値を用いて、アプリケーションの高ボリュームのアクティビ
ティを判断できます。
Sum
該当するメトリックスで加算されたすべての合計値です。この統計は、メトリックスの合計ボリュームを判断
するのに役立ちます。
Average
指定した期間の Sum/SampleCount の値です。この統計を Minimum および Maximum と比較することで、メト
リックスの全容、および平均使用量がどれくらい Minimum と Maximum に近いかを判断できます。この比較は、
必要に応じていつリソースを増減させるべきかを知るのに役立ちます。
SampleCount
統計計算で使用するデータポイントのカウント(数)です。
http://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/DeveloperGuide/cloudwatch_concepts.html
14
Amazon CloudWatchの料金
• 初期費用無しの従量課金
• 標準の監視は無料
– EC2インスタンスの標準監視(5分間隔)
– Amazon EBS、ELB、Amazon RDSは1分間隔が無料
• アラームやカスタムメトリックスは一定数まで無料
– 10メトリックス、10 アラーム、および100万APIリクエスト
– 1 か月あたり5GBのデータの取り込みおよび5GBのアーカイブされたストレージ
• 課金対象及び料金(2015年5月現在 Tokyoリージョン)
–
–
–
–
Amazon EC2詳細モニタリング1インスタンスにつき$3.50/月
カスタムメトリックス1つにつき$0.50/月
アラーム1つにつき$0.10/月
APIリクエスト1000回につき$0.01(Get, List, Putごとに)
http://aws.amazon.com/jp/cloudwatch/pricing/
15
Amazon CloudWatchを使った性能監視
• AWSサービスの性能監視
– Amazon EC2の性能監視
•
CPUUtilization/CPUCreditBalance/CPUCreditUsage(バースト性能監視)
•
•
DiskReadBytes/DiskWriteBytes/DiskWriteOps
NetworkOut/NetworkIn
– Amazon EBSの性能監視
•
•
•
•
•
•
•
VolumeReadBytes/VolumeWriteBytes
VolumeReadOps/VolumeWriteOps
VolumeTotalReadTime/VolumeTotalWriteTime
VolumeIdleTime
VolumeQueueLength
VolumeThroughputPercentage
VolumeConsumedReadWriteOps
https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/DeveloperGuide/ebs-metricscollected.html
16
補足:Amazon EC2 T2インスタンス
•
ベースライン性能
–
•
CPUクレジット
–
•
•
17
インスタンスに割り当てられたベースとなる物理CPUのシングルコアの性能の割合を示しています。
インスタンスがCPUのベースラインの割当を使用していない場合蓄積し、インスタンスがアクティブなときに消
費されます。 CPUクレジット使い切ると、性能は徐々にベースラインレベルに戻ります。
vCPUの利用時間に応じてクレジットを消費。1vCPU/1minで1クレジットが
消費される。
ベースライン性能以下の使用率だった場合は、クレジットが蓄積。最大で24
時間分のクレジットを蓄積。
Type
vCPUs
ベースライン
性能
RAM(GiB)
初期Credit
1時間当りの
Credit
最大Credit
T2.micro
1
10%
1.0
30
6
144
T2.small
1
20%
2.0
30
12
288
T2.medium
2
40%
4.0
60
24
576
補足:Amazon EC2 T2インスタンス
T2.medium
CPUクレジット
(576)
CPU使用率
T2.small
CPUクレジット
(288)
T2.micro
CPUクレジット
(144)
18
補足:Amazon EBS(3つのボリュームタイプ)
Volume Type
General Purpose(SSD)
Provisioned IOPS(SSD)
Magnetic
ユースケース
•
•
•
•
•
•
起動ボリューム
仮想デスクトップ環境用のディス
ク
開発およびテスト環境用のディス
ク
中小規模のデータベース
ボリュームサイズ
•
1GBから16TBまで
4GiBから16TBまで
IOPS
•
1GBあたり3IOPSのベースパフォー
マンス。最大値は10,000IOPS
1,000GB以下のボリュームでは、
3,000IOPSまでバーストが可能
1,000GB以上のボリュームではバー
ストの概念はなく、常にベースパ
フォーマンスを発揮する
•
•
•
•
•
•
•
3000IOPSよりも高いI/Oパフォーマ
ンスを要求するミッションクリ
ティカルなアプリケーション
大規模なデータベース
各種NoSQL
各種RDB
1GiBから1TiBまで
プロビジョニングしたIOPS値のパ
フォーマンスを発揮する
最大IOPSは20,000IOPS
容量とIOPS値の比率に制限があり、
容量の30倍のIOPS値が上限
平均100IOPS。数百IOPSまでバー
スト可能。
スループット
•
160MB/s
•
320MB/s
•
40~90MB/s
料金
(東京リージョン)
•
1GBあたり1ヶ月0.12ドル
•
•
1GBあたり1ヶ月0.142ドル
プロビジョニングしたIOPS値に応
じて1IOPSあたり1ヶ月0.114ドル
•
•
1GBあたり1ヶ月0.08ドル
100万I/Oリクエストあたり
0.08ドル
http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/EBSVolumeTypes.html
19
アクセス頻度の低いデータ
コストを最重要視する場合
補足:General Purpose(SSD)ボリューム
ボリュームあたりのスループットは160MB/s
ベースパフォーマンス
容量が3,334GBを超えると、
常時10,000IOPSを発揮する
1,000GB以下のボリュームでは最大3,000IOPS
までバースト性能を発揮する
20
AWSでの状態・死活監視
• AWS Service Health Dashboard
– AWSサービス全体の利用可能確認
– 各リージョン毎、サービス毎にサービス提供状態
– RSSフィードを使ったモニタリング
http://status.aws.amazon.com/
21
Amazon CloudWatchを使った状態・死活監視
• Amazon EC2 Auto Recovery
– EC2インスタンスが稼働しているAWSシステムに障害が発生し
た場合に、自動的にEC2インスタンス復旧する機能。
• ネットワーク接続喪失
• システム電源喪失
• 物理ホストの障害
• 対応するインスタンスタイプ
– C3, C4, M3, R3, T2インスタンス
• VPC内のインスタンス
– EC2クラシックは未対応
– ハードウェア専有インスタンスは未対応
• EBS-Backedインスタンスのみ
http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2-instance-recover.html
22
Amazon CloudWatchを使った状態・死活監視
• EC2の状態・死活監視
– CloudWatch標準メトリックスを利用可能
• StatusCheckFailed_System
– ネットワーク接続の喪失
– システム電源の喪失
– 物理ホストのハードウェアの問題
• StatusCheckFailed_Instance
–
–
–
–
–
失敗したシステムステータスチェック
誤って設定されたネットワークまたは起動設定
メモリの枯渇
破損したファイルシステム
互換性のないカーネル
• StatusCheckFailed
– StatusCheckFailed_Instance と StatusCheckFailed_System の組み合わ
せで評価を行い、どちらかのステータスチェックが失敗したら報告
23
Amazon CloudWatchを使ったキャパシティ監視
• 各AWSサービスのキャパシティ監視
– Amazon EC2のキャパシティ容量監視
• 標準メトリックスとしては準備が無いため、カスタムスクリプトを利用すると簡単に
データを取得可能
• カスタムスクリプトで取得できるメトリックス(Linux)
– メモリ情報:MemoryUtilization/MemoryUsed/MemoryAvailable
– スワップ情報:SwapUtilization/SwapUsed
– ディスク情報:DiskSpaceUtilization/DiskSpaceUsed/DiskSpaceAvailable
• Windowsの場合、EC2Configを使い取得
– CloudWatchで対応しているマネージドサービスも多々あり
• Elastic Load Balancing(ELB)
• Amazon RDS
https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/DeveloperGuide/mon-scripts-perl.html
24
Amazon CloudWatchを使ったマネージドサービスの
監視
• AWSマネージドサービスの監視
ELB
•
•
•
•
•
•
•
Latency
BackendConnectionErrors
HealthyHostCount
UnHealthyHostCount
RequestCount
HTTPCode_ELB_5XX
HTTPCode_Backend_4XX
Amazon
RDS
•
•
•
•
•
•
•
•
•
•
•
CPUUtilization
• WriteThroughput
FreeableMemory • WriteLatency
SwapUsage
• DatabaseConnections
FreeStorageSpace • BinLogDiskUsage
DiskQueueDepth
ReadIOPS
ReadThroughput
ReadLatency
NetworkReceiveThroughput
NetworkTransmitThroughput
WriteIOPS
http://docs.aws.amazon.com/ja_jp/ElasticLoadBalancing/latest/DeveloperGuide/US_MonitoringLoadBalancerWithCW.html
http://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/DeveloperGuide/rds-metricscollected.html
25
ELBは負荷に応じて自動スケール
• ELB自体は負荷増減に応じて自動でスケールする
(キャパシティが自動で増加する)
– ELBへの接続・リクエストが瞬間的に急増し、ELBのスケーリン
グが間に合わない場合はHTTP 503を返す
– ELBがスケールするときには、ELBのIPアドレスが変化
• ELBへアクセスするときには必ずDNS名で登録
• 独自ドメインに割り当てる際はCNAMEにて
26
Amazon CloudWatchを使ったELB監視
• 各種メトリックスを60秒間隔で監視
•
•
•
•
•
•
•
•
•
正常なバックエンドのホスト数 (HealthyHostCount)
異常なバックエンドのホスト数 (UnHealthyHostCount)
リクエスト数 (RequestCount)
監視
遅延時間 (Lantency)
ELBが返した4xx,5xxのレスポンス数 (HTTPCode_ELB_4xx)
バックエンドが返した2xx,3xx,4xx,5xxレスポンス数 (HTTPCode_Backend_2xxx)
バックエンドへの接続エラー回数 (BackendConnectionError)
バックエンドへの送信保留中の件数 (SurgeQueueLength)
キュー溢れのため拒否した件数 (SpilloverCount) など
http://docs.aws.amazon.com/ja_jp/ElasticLoadBalancing/latest/DeveloperGuide/US_MonitoringLoadBalancerWithCW.html
27
Amazon CloudWatchを使ったRDS監視
• 各種メトリクスを60秒間隔で取得・確認可能
– データベース インスタンスレイヤーの監視
– DBエンジン・データベースレイヤーの監視は別途実装が必要
•
•
•
•
•
•
•
•
•
•
•
CPUUtilization
• WriteThroughput
FreeableMemory • WriteLatency
SwapUsage
• DatabaseConnections
FreeStorageSpace • BinLogDiskUsage
DiskQueueDepth
ReadIOPS
ReadThroughput
ReadLatency
NetworkReceiveThroughput
NetworkTransmitThroughput
WriteIOPS
http://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/DeveloperGuide/rds-metricscollected.html
28
Amazon CloudWatchアラームの状態
OK
アラーム
(Alarm)
定義された閾値を
下回っている
(正常値)
定義された閾値を
上回っている
(異常値)
不足
(INSUFFICIENT)
データが不足のため、
状態を判定できない
(判定不能)
CloudWatch特有のステータス
29
INSUFFICIENT_DATAの考え方
• CloudWatchはデータポイントを基準にステータスを判断
– データポイントとはCloudWatchに送信される値(CPU値など)
– OK / アラーム時は入力されたデータポイントを基準に状態評価
– INSUFFIENT時はCloudWatchにテータポイントの入力が無い状態
→ “INSUFFICIENT”は必ずしも障害を表すステータスではない
OK / ALARM
INSUFFICIENT
データポイント
自体が存在しない
データポイント
EC2
30
CloudWatch
EC2
CloudWatch
CloudWatch利用イメージ 標準メトリックス監視
31
Amazon CloudWatchのアクション機能
モニタリング
アクション
Custom Metric
Memory Free / Filesystem Free
Notification
StatusCheckFailed_Instance
StatusCheckFailed_System
EC2
CPUUtilization
DiskReadBytes / DiskReadOps
DiskWriteBytes / DiskWriteOps
NetworkIn / NetworkOut
EC2 Action
CloudWatch
AutoScaling
32
Amazon CloudWatchのアクション機能
• 各アラーム状態に対してアクションを定義可能
– 通知(Notification)
• Amazon Simple Notification Service(SNS)を使って通知
• メール送信やHTTP(S)送信、Amazon Simple Queue Service
(SQS)への送信が可能
– EC2アクション
• EC2インスタンスの復旧、停止および終了が実行可能
– Auto Scalingアクション
• Auto Scaling GroupのScaling Policyを指定し、インスタンスの
スケールアウト/インが可能
33
Amazon CloudWatchアクション機能の設定
34
Amazon CloudWatchアラームの設定
• CPU使用率を監視対象
• CPU使用率80%以上が3期間(ここでは1期間=5分)以上
35
Amazon Simple Notification Service
• 柔軟で高速なフルマネージドメッセージングサービス
• マルチプロトコルで簡単にメッセージを通知
• 安価な従量課金制
HTTP(S)
Amazon SNS
EMAIL
SQS
Mobile Push
36
Auto Scaling
• トリガーを受けてEC2の数を自動的に増減させる仕組み
AutoScaling Group
CloudWatch
①性能監視
Amazon
EC2
Amazon
EC2
Amazon
EC2
④新規にサーバがデプロイ
②閾値の監視
③ASアクションを起動 Alarm
37
Amazon CloudWatchによるリソース管理
• AutoScaling連携したリソース監視
• メトリックス = 監視項目(例:CPU使用率)
• CPU使用率が80%が5分間続いたらサーバを2台増やす
• CPU使用率が30%が15分間続いたらサーバを1台減らす
Amazon
EC2
Amazon
EC2
AutoScaling Group
38
Amazon Amazon
EC2
EC2
Amazon Amazon
EC2
EC2
AutoScaling Group
Auto Scalingの利用ケース
• 負荷分散ELB配下のWebサーバ
• SQSからジョブを取ってバッチ実行するワーカー
AutoScaling Group
39
AutoScaling Group
WebサーバのAuto Scaling Group
ワーカ(バッチ)のAuto Scaling Group
CPU使用率やELBのRequest数などを
トリガーにする
SQSのキューに溜まっているメッセージ数などを
トリガーにする
Amazon CloudWatchによるコストの監視
• Billingアラーム設定
• 課金状況をCloudWatch監視
• 一定金額を超えるとアラームメール通知が可能
40
監視ツール連携の必要性
• 監視対象の制限
– ハイブリッド環境の監視
– マルチクラウド環境の監視
– プロセス監視
• データ保存期間(2週間の保存)
• データ保管粒度は最短で1分間隔
• アラートの制限
– 複合アラートの設定
– メンテナンス ウィンドウの設定
– 重要度の設定
• アクション機能
• 通知フォーマット
41
監視システムとのAmazon CloudWatch連携
監視システムでのCloudWatch活用イメージ
サードパーティ監視ツールの確認
ポイント
•
•
•
•
•
AWSに対応しているか
CloudWatchとの連携機能の有無
CloudWatchカスタムメトリックスに対
応しているか
Auto Scaling対応しているか
EC2インスタンス自動検出・自動削除が
可能か
http://aws.amazon.com/jp/solutions/case-studies/shiseido/
42
Amazon CloudWatchと連携した統合監視
•
監視対象インスタンスの自動登録
Search方式
Push方式
監視サーバ
・
・
・
・
・
・
Amazon Machine Image(AMI)
43
監視サーバ
Amazon Machine Image(AMI)
Amazon CloudWatchを使ったログ監視
• CloudWatch Logsを使ったログ監視
• OS、アプリケーション等のテキストログをモニタリング
• エージェント経由でログメッセージをCloudWatchエンドポ
イントに転送
• ログデータの保存期間は設定可能(※永久保存も選択可能)
44
CloudWatch Logs利用イメージ
CloudWatch Logs
Amazon
Linux
Ubuntu
Server
Windows
Red Hat
Enterprise Linux
api call to endpoint
アラーム
45
SNS
CloudWatch Logで使う用語
•
Log Group
–
•
Log Stream
–
•
イベントを監視し、Simple Notification Service(SNS)と連携するために使うメトリックスです。
Retention Policies
–
–
46
ログエントリーを送信したいインスタンスにインストールし、Log Eventを送信するエージェントです。
Metric Filters
–
•
モニターされるアプリケーションやリソースが記録したアクティビティ、イベントです。
タイムスタンプとUTF-8でフォーマットされたメッセージで構成されます。
Log Agent
–
•
データ送信元(特定のアプリケーションが動作するインスタンスやリソース)からのイベントシーケンスが集約される
グループです。(ホスト名、Instance-id、任意の名前)
Log Event
–
–
•
同じプロパティー、ポリシーやアクセスコントロールを共有するロググループです。(Apache Log Group、/var/log/messages)
イベントの保持期間に関する定義をします(1day – Never Expired)
Log Groupに関連づけられ、グループ内の全てのLog Streamに適用されます。
CloudWatch Logsのディレクトリ階層
Log Group
Log Stream
web001.ap-northeast-1
Web Server
web002.ap-northeast-1
web003.ap-northeast-1
47
Log Event
ログの保存期間
• CloudWatch Logsはログを永久保存可能
48
CloudWatch Logs 料金体系
無料枠
(1カ月あたり)
従量課金
インジェクション
5GB
$0.50 / GB
アーカイブ
5GB
$0.03 GB / 月
10 メトリックス、10 アラーム、および 100 万の API リクエストの無料利用枠を準備
http://aws.amazon.com/jp/cloudwatch/pricing/
49
CloudWatch Logsの利用
EC2Configを利用
50
Linux用Agentの
インストール
EC2Config Service
• Amazon Windows AMI にプリインストール
されているWindows用サービス
• Amazon EC2 でインスタンスを起動時時に一
般的な自動設定タスク、スクリプトを実行
• カスタムAMI作成時のSysprepでも利用
• CloudWatch Logsへのログ転送もEC2Config
サービスが実施する
51
Cloudwatch Logs Agentの設定
• Agentをインストールする際の設定項目
52
Item
Description
AWS Access Key ID
AWSアクセスキーIDの入力。IAMロール利用の場合はスキップ。
AWS Secret Access Key
AWSシークレットアクセスキーの入力。IAMロール利用の場合はスキップ。
Default region name
リージョンの選択。現在はus-east-1, us-west-2, or eu-west-1のいづれかを選択。
デフォルト(スキップ)の場合はus-east-1が選択されます。
Default output format
スキップ(ブランクのままでOK)。
Path of log file to upload
転送したいログファイルパスの入力。
Destination Log Group name
ログ グループの入力。
Destination Log Stream name
ログ ストリームの入力。デフォルトの場合はホスト名が選択されます。
Timestamp format
タイムスタンプ フォーマットの入力。
Initial position
ログデータのアップロード方式の選択。”start_of_file”、もしくは ”end_of_file”
CloudWatch Logsの設定(Windows)(2/3)
2. EC2Configの起動
1. ロールの設定
CloudWatchLogs-role
アクションの指定
特定リソースへのアクセスを許可
チェックを入れるだけで利用可能
http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/QuickStartEC2Instance.html
53
CloudWatch Logsの設定(Windows)
• CWL Agent JSON設定ファイルを編集することで、監視す
るメトリックスを設定
 “C:\Program Files\Amazon\Ec2ConfigService\Settings” に配置されて
いる “AWS.EC2.Windows.CloudWatch.json“ ファイルを編集
 収集するログを設定
• Windowsイベントログ
• Event Tracing for Windows
• テキストベース ログ
• IISログ
• パフォーマンスカウンタ
54
AWS.EC2.Windows.CloudWatch.json
• JSONで設定する項目
 PollInterval: Agentがクエリする頻度の定義
 Components: 監視対象の定義
• Id: Component を識別するためのユニークID。任意の文字列を設定
• FullName: Component のタイプ(DLLのClass name)。既定の文字
列を指定
• Parameters: Component ごとに定義するパラメータ。Component
ごとに異なる
 Flows: Components の関係性の定義
55
AWS.EC2.Windows.CloudWatch.json
• PollInterval: Agentがクエリする頻度の定義
 デフォルト値15秒以上を推奨
 AWS.EC2.Windows.CloudWatch.jsonの内容
{
"EngineConfiguration": {
"PollInterval": "00:00:15",
"Components": [
{
"Id": "ApplicationEventLog",
"FullName":
"AWS.EC2.Windows.CloudWatch.EventLog.EventLogInputComponent,AWS.EC2.Windo
ws.CloudWatch",
"Parameters": {
"LogName": "Application",
"Levels": "1"
56
AWS.EC2.Windows.CloudWatch.json
• Components: 監視対象ログファイルの定義
 AWS.EC2.Windows.CloudWatch.jsonの内容
{
“Components”: [
{
"Id": "SystemEventLog",
"FullName":
"AWS.EC2.Windows.CloudWatch.EventLog.EventLogInputComponent,AWS.EC2.Windows.CloudWatch",
"Parameters": {
"LogName": "System",
"Levels": "7"
}
},
{
"Id": "ETW",
"FullName":
"AWS.EC2.Windows.CloudWatch.EventLog.EventLogInputComponent,AWS.EC2.Windows.CloudWatch",
"Parameters": {
"LogName": "Microsoft-Windows-WinINet/Analytic",
"Levels": "7
57
AWS.EC2.Windows.CloudWatch.json
• Flows: Components の関係性の定義
 AWS.EC2.Windows.CloudWatch.jsonの内容
{
"Flows": {
"Flows":
[
"(ApplicationEventLog,SystemEventLog),CloudWatchLogs",
"CustomLogs,CloudWatchLogsSQL"
]
}"
58
AWS.EC2.Windows.CloudWatch.json
• パフォーマンスカウンター情報もJSONに設定可能
• CloudWatchにカスタムメトリックスとして登録
{
"Id": "PerformanceCounter1",
"FullName":
"AWS.EC2.Windows.CloudWatch.PerformanceCounterComponent.PerformanceCounterInputCompone
nt,AWS.EC2.Windows.CloudWatch",
"Parameters": {
"CategoryName": "Memory",
"CounterName": "Available MBytes",
"InstanceName": "",
"MetricName": "Memory",
"Unit": "Megabytes",
"DimensionName": "",
"DimensionValue": ""
}
}
59
カスタムメトリックスの確認
カスタムメトリックス
60
CloudWatch Logsの設定(Linux)(1/3)
• Linuxの設定は、Pythonスクリプトで設定
[ec2-user@ip-10-0-10-104 ~]$ wget https://s3.amazonaws.com/aws-cloudwatch/downloads/awslogs-agentsetup-v1.0.py
[ec2-user@ip-10-0-10-104 ~]$ sudo python ./awslogs-agent-setup-v1.0.py --region us-east-1
Launching interactive setup of CloudWatch Logs agent ...
①Pythonスクリプトのダウンロード・実行
Step 1 of 5: Installing pip ...DONE
Step 2 of 5: Downloading the latest CloudWatch Logs agent bits ... DONE
Step 3 of 5: Configuring AWS CLI ...
AWS Access Key ID [****************WLGA]:
AWS Secret Access Key [****************qVIu]:
Default region name [None]:
Default output format [None]:
Step 4 of 5: Configuring the CloudWatch Logs Agent ...
Path of log file to upload [/var/log/messages]:
Destination Log Group name [Linux Syslog Group]:
61
②Access Key/Secret Access Keyの入力
※IAMロールの利用も可能
③Regionの入力
④ファイルフォーマットの選択
⑤モニタリングするログファイルパスの入力
⑥Log Groupの入力
CloudWatch Logsの設定(Linux)(2/3)
Choose Log Stream name:
1. Use EC2 instance id.
2. Use hostname.
3. Custom.
Enter choice [1]:
Choose Log Event timestamp format:
1. %b %d %H:%M:%S (Dec 31 23:59:59)
2. %d/%b/%Y:%H:%M:%S (10/Oct/2000:13:55:36)
3. %Y-%m-%d %H:%M:%S (2008-09-08 11:52:54)
4. Custom
Enter choice [1]: 3
Choose initial position of upload:
1. From start of file.
2. From end of file.
Enter choice [1]: 1
More log files to configure? [Y]: n
Step 5 of 5: Setting up agent as a daemon ...DONE
62
⑦表示されるインスタンスの選択
・インスタンスIDの利用
・ホスト名の利用
・カスタム入力
⑧タイムスタンプの表示形式設定
⑨ログの転送位置の設定
・ログファイルの初めから転送
・次回発生するログから転送
ログモニタリングイメージ
• ログ内容はタイムスタンプとログメッセージ(UTF-8)で構成
63
CloudWatch logs Metric Filter(1/3)
• ログイベントから特定の文字列のフィルタリングが可能
64
CloudWatch Logs Metric Filter(2/3)
• 特定文字列の出現回数によりアラーム作成が可能
→ “error”という文字列が3回以上出現するとアラーム上げる
“error”という文字列を監視
“error”という文字列の出現
回数
65
CloudWatch Logs Metric Filter(3/3)
• Metric Filterからアラーム作成、SNS連携が可能
Metric FilterをトリガーにしたCloudWatch
アラームの作成が可能
66
Amazon CloudWatchのまとめ
• 基本的な性能、状態・死活、キャパシティの監
視をすることが可能
• コストの監視にもCloudWatchを利用
• 必要に応じて統合監視サーバとの連携もAPI経
由で実装できます
• CloudWatch Logsを活用することでログの監視
だけでなく、文字列フィルタリング、アラート
通知まで設定可能
67
AWSならではの監視
AWS CloudTrail
68
AWS CloudTrailの概要
• 概要
• AWSアカウントの操作をロギングするサービス
• 管理コンソール、コマンドライン、3rd party等APIコールされるイベント
が対象
• S3にロギングデータを保存
• ユースケース
• コンプライアンス準拠
• セキュリティ面の分析
• AWS Identity and Access Management (IAM)を使ったユーザログイン情報の
管理
• リソースのライフサイクル管理
• 運用上のトラブルシューティング
69
CloudTrailの特徴
• もちろん東京リージョンでも利用可能
• サポートリージョン・サービス数拡大
• CloudTrail 自体は無料です
※Amazon S3 / SNSの使用料金が必要
70
API call の発生状況
API call の発生状況
SNS設定の有無
Amazon S3
Amazon SNS
CloudTrail対応サービスの確認
2015年4月現在CloudTrailは下記のサービスをサポートしています。十分なサービスがサポートされてい
るか確認をしてください。S3等サポートされていない機能に関してはアクセスログの有効化など必要な
代替コントロールを利用する必要があります。
対応サービス:
•
Amazon EC2
•
Amazon VPC
•
Auto Scaling
•
ELB
•
Amazon EBS
•
AWS Storage Gateway
•
Amazon Glacier
•
Amazon CloudFront
•
Amazon RDS
•
Amazon Redshift
•
Amazon Elasticache
•
AWS DirectConnect
•
Amazon Kinesis
•
EMR
•
AWS Data Pipeline
71
•
•
•
•
•
•
•
•
•
AWS IAM
AWS STS
AWS Key Management Service
AWS CloudHSM
AWS CloudTrail
AWS CloudFormation
AWS OpsWorks
AWS CodeDeploy
AWS Elastic Beanstalk
•
•
•
•
•
•
•
•
•
•
Amazon CloudWatch
Amazon SQS
Amazon SNS
Amazon Simple Workflow
Amazon Cloudsearch
Amazon Elastic Transcoder
Amazon WorkDocs
AWS Config
Amazon EC2 Container Service
AWS Lambda
AWS Identity and Access Management (IAM)
• AWS操作をよりセキュアに行うための認証・認可の
仕組み
• AWSリソースにはIAMを使ったアクセスが推奨
• AWS利用者の認証と、アクセスポリシーを管理
 AWS操作のためのグループ・ユーザー・ロールの作成が可能
 グループ、ユーザーごとに、実行出来る操作を規定できる
 ユーザーごとに認証情報の設定が可能
開発チーム
72
運用チーム
IAMの動作イメージ
全操作可能
S3はすべて
操作可能
S3参照だけ
73
APIやマネジメントコンソールからの
アクセスに対して、権限をチェック
AWS CloudTrailの設定方法
74
CloudTrailを有効にすることを推奨
AWSサポートにお問い合わせ頂く際も、早期問題解決に役立ちます
75
AWS CloudTrailの設定
S3バケット名の入力
SNS通知の設定
ロググループの設定
IAMロールの設定
グローバルサービス(IAM、STSなど)のログ取得設定
76
ログファイルの保存先
• CloudTrail ログは命名規則の元ある特定のパスで保存される
• gz形式で圧縮され保存
• APIの呼び出しから15分以内にイベント送信を実施
77
AWS CloudTrailによりロギングされるイベント
API call Event
Non-API call Event
• サポート サービスから発行されるAPI
 StartInstances
 CreateKeyPair
• ユーザのサインイン アクティビテイ
 AWS マネジメント コンソール
 AWS ディスカッション フォー
ラム
78
JSON形式での出力
79
誰がAPIコールを発行したのか①
IAMユーザ “Bob”のユーザ情報
"userIdentity“:
{
"accessKeyId":"AKEXAMPLE123EJVA",
"accountId":“123456789012",
"arn":"arn:aws:iam::123456789012:user/Bob",
"principalId":"AIEXAMPLE987ZKLALD3HS",
"type":"IAMUser",
"userName":“Bob"
}
80
いつAPIコールが発行されたのか
ISO8601フォーマットでの記載
"eventTime":"2014-11-29T05:58:13Z“
81
どのAPIコールが発行されたのか
APIコールの名前とターゲット情報を記載
"eventSource":"signin.amazonaws.com"
"eventName":"ConsoleLogin"
82
どのAWSリソースから発行されたのか
リクエスターのIPアドレス、APIが発行されたリージョン
の情報を記載
"awsRegion":"us-east-1",
"sourceIPAddress":"ec2.amazonaws.com"
83
CloudTrailを使ったロギング
• AWS CLIを使ったAPIイベントの取得
aws cloudtrail lookup-events --lookup-attributes \
AttributeKey=EventName,AttributeValue=RunInstances --region us-east-1
84
CloudTrail API lookup – マネジメントコンソール
85
CloudTrailにて監視すべきイベント例
CloudTrailではサポートしているAWSサービスの操作のために使われた全てのAPIログを取得しますが、ど
のようなログを監視するかについては監視要件に依存します。下記は代表的な重要イベントの例です。
Event
想定ケース
AttachInternetGateway
AssociateRouteTable
CreateRoute
DeleteCustomerGateway
DeleteInternetGateway
DeleteRoute
DeleteRouteTable
DeleteDhcpOptions
DisassociateRouteTable
•
•
•
意図せぬネットワーク構成の変更
未承認のインターネットゲートウェイの作成
ルーティングの変更による未承認の経路の作成
CreateNetworkAcl
CreateNetworkAclEntry
DeleteNetworkAcl
DeleteNetworkAclEntry
ReplaceNetworkAclEntry
ReplaceNetworkAclAssociation
•
•
意図せぬNetworkACLの変更
許されないポートの解放
RunInstances
CreateInstances
LaunchInstances
TerminateInstances
•
•
未承認のEC2の作成
意図せぬEC2のTerminate
86
CloudTrailにて監視すべきイベント例
Event
想定ケース
AuthorizeSecurityGroupIngress
AuthorizeSecurityGroupEgress
RevokeSecurityGroupIngress
RevokeSecurityGroupEgress
CreateSecurityGroup
DeleteSecurityGroup
•
•
意図せぬSecurity Groupの変更
許されないポートの解放
StopLogging
DeleteTrail
UpdateTrail
•
•
•
CloudTrailの停止
CloudTrailの削除
CloudTrailの設定変更
DeleteGroupPolicy
DeleteRole
DeleteRolePolicy
DeleteUserPolicy
PutGroupPolicy
PutRolePolicy
PutUserPolicy
•
•
許可されていないIAMポリシーの削除
許可されていないIAMポリシーの付与
Unauthorized*
errorCode
AccessDenied
Failed authentication
•
•
許可されない操作の試行
エラー
"type":"Root"
•
AWSルートアカウントでのログイン
87
CloudTrailのCloudWatch Logsとの連携
• CloudTrailのログをCloudWatch Logsに転送できるよう
になりました
ログ連携
CloudTrail
CloudWatch Logs
CloudWatch LogsのLog Groupを入力
88
CloudTrail JSONを統合管理
89
CloudTrailのCloudWatch Logsとの連携
どのようなログを監視するか、閾
値をどうするか等の設定が可能
ログ連携
CloudTrail
CloudTrailによるAPIコールのログ
(操作ログ)の集約
CloudWatch Logs
アラーム
・ネットワーク
・SG、NACL
・インターネットゲートウェイ
・サイズの大きいEC2インスタン
スの作成、削除、および更新
・CloudTrail自体の変更
・IAMポリシー
・認証の失敗
・管理コンソールへのログイン
SNS
http://aws.typepad.com/aws_japan/2015/03/cloudtrail-integration-with-cloudwatch-in-four-more-regions.html
90
まとめ
• クラウドの運用監視は今までの監視とそれほど
変わらない
• AWSのサービスをうまく活用することで監視を
シンプルにすることができる
• コストを監視することで運用コストを削減でき
るのもクラウド運用のポイント
• セキュリティ・コンプライアンス監視も
CloudTrailを利用することで対応可能
91
Q&A
AWS Summit Tokyo 2015
参加登録受付中!
http://www.awssummit.tokyo/
92
ESP(Ecosystem Solution Pattern)カタログ 無料配布
2015年度版 AWS対応ソフトウェア/SaaSガイド
93
参照リンク
•
AWSアカウント作成の流れ
–
•
AWS コンプライアンス
–
•
http://aws.amazon.com/jp/aws-jp-introduction/
国内のお客様のAWS活用事例
–
94
http://aws.amazon.com/jp/security/
AWSクラウド活用資料集
–
•
http://aws.amazon.com/jp/compliance/
AWSセキュリティ
–
•
http://aws.amazon.com/jp/register-flow/
http://aws.amazon.com/jp/solutions/case-studies-jp/
AWSをより深く理解したい方向けに
クラスルームトレーニングを提供しています。
95
詳細: aws.amazon.com/training
認定資格試験
公式Twitter/Facebook
AWSの最新情報をお届けします
検索
@awscloud_jp
もしくは http://on.fb.me/1vR8yWm
最新技術情報、イベント情報、お役立ち情報、
お得なキャンペーン情報などを日々更新しています!
96
AWS初心者向けWebinar 2015
• AWSをこれからご使用になる方向け、ソリューションカットのオ
ンラインセミナー
• 今後の配信予定
– 5/19(火) AWS 料金の見積り方法
• 申し込みサイト
http://aws.amazon.com/jp/about-aws/events/
97
AWS Black Belt Tech Webinar 2015
• AWS中上級者向け、サービスカット
• 今後の配信予定
– 5/13(水) Elastic Load Balancing (ELB)
– 5/20(水) Amazon Elastic Compute Cloud Windowsインスタンス
– 5/27(水) Amazon Relational Database Service(Amazon RDS)
• 申し込みサイト
http://aws.amazon.com/jp/about-aws/events/
98
99