Upload
amazon-web-services-japan
View
4.611
Download
1
Embed Size (px)
Citation preview
基本から理解する、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
標準メトリックスでは取得できないメトリックス
・メモリの空き容量・ファイスシステム容量など
11
http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html
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
12
http://aws.amazon.com/jp/cli/
Amazon EC2のモニタリングタイプ
基本モニタリング 詳細モニタリング
無料
データは 5分間隔で自動的に取得
追加料金が必要
データは 1 分間隔で取得
13
Amazon CloudWatchのメトリックス値
• CloudWatchで取得される情報は統計情報– メトリックスデータを指定した期間で集約したもの
http://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/DeveloperGuide/cloudwatch_concepts.html
14
統計 説明
Minimum 指定された期間に認められた最小値です。この値を用いて、アプリケーションの低ボリュームのアクティビティを判断できます。
Maximum 指定された期間に認められた最大値です。この値を用いて、アプリケーションの高ボリュームのアクティビティを判断できます。
Sum 該当するメトリックスで加算されたすべての合計値です。この統計は、メトリックスの合計ボリュームを判断するのに役立ちます。
Average 指定した期間の Sum/SampleCount の値です。この統計を Minimum および Maximum と比較することで、メトリックスの全容、および平均使用量がどれくらい Minimum と Maximum に近いかを判断できます。この比較は、必要に応じていつリソースを増減させるべきかを知るのに役立ちます。
SampleCount 統計計算で使用するデータポイントのカウント(数)です。
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インスタンス
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
• ベースライン性能– インスタンスに割り当てられたベースとなる物理CPUのシングルコアの性能の割合を示しています。
• CPUクレジット– インスタンスがCPUのベースラインの割当を使用していない場合蓄積し、インスタンスがアクティブなときに消
費されます。 CPUクレジット使い切ると、性能は徐々にベースラインレベルに戻ります。
• vCPUの利用時間に応じてクレジットを消費。1vCPU/1minで1クレジットが消費される。
• ベースライン性能以下の使用率だった場合は、クレジットが蓄積。最大で24時間分のクレジットを蓄積。
17
補足:Amazon EC2 T2インスタンス
T2.medium CPUクレジット
(576)
T2.small CPUクレジット
(288)
T2.microCPUクレジット
(144)
CPU使用率
18
補足:Amazon EBS(3つのボリュームタイプ)Volume Type General Purpose(SSD) Provisioned IOPS(SSD) Magnetic
ユースケース • 起動ボリューム• 仮想デスクトップ環境用のディス
ク• 開発およびテスト環境用のディス
ク• 中小規模のデータベース
• 3000IOPSよりも高いI/Oパフォーマンスを要求するミッションクリティカルなアプリケーション
• 大規模なデータベース各種NoSQL各種RDB
• アクセス頻度の低いデータ• コストを最重要視する場合
ボリュームサイズ • 1GBから16TBまで 4GiBから16TBまで 1GiBから1TiBまで
IOPS • 1GBあたり3IOPSのベースパフォーマンス。最大値は10,000IOPS
• 1,000GB以下のボリュームでは、3,000IOPSまでバーストが可能
• 1,000GB以上のボリュームではバーストの概念はなく、常にベースパフォーマンスを発揮する
• プロビジョニングした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
ベースパフォーマンス
1,000GB以下のボリュームでは最大3,000IOPSまでバースト性能を発揮する
容量が3,334GBを超えると、常時10,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マネージドサービスの監視
Amazon
RDSELB
• Latency
• BackendConnectionErrors
• HealthyHostCount
• UnHealthyHostCount
• RequestCount
• HTTPCode_ELB_5XX
• HTTPCode_Backend_4XX
• CPUUtilization
• FreeableMemory
• SwapUsage
• FreeStorageSpace
• DiskQueueDepth
• ReadIOPS
• ReadThroughput
• ReadLatency
• NetworkReceiveThroughput
• NetworkTransmitThroughput
• WriteIOPS
• WriteThroughput
• WriteLatency
• DatabaseConnections
• BinLogDiskUsage
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のスケーリン
グが間に合わない場合はHTTP 503を返す
– ELBがスケールするときには、ELBのIPアドレスが変化
• ELBへアクセスするときには必ずDNS名で登録
• 独自ドメインに割り当てる際はCNAMEにて
ELBは負荷に応じて自動スケール
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) など
27
http://docs.aws.amazon.com/ja_jp/ElasticLoadBalancing/latest/DeveloperGuide/US_MonitoringLoadBalancerWithCW.html
Amazon CloudWatchを使ったRDS監視
• 各種メトリクスを60秒間隔で取得・確認可能– データベース インスタンスレイヤーの監視
– DBエンジン・データベースレイヤーの監視は別途実装が必要
http://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/DeveloperGuide/rds-metricscollected.html
• CPUUtilization
• FreeableMemory
• SwapUsage
• FreeStorageSpace
• DiskQueueDepth
• ReadIOPS
• ReadThroughput
• ReadLatency
• NetworkReceiveThroughput
• NetworkTransmitThroughput
• WriteIOPS
• WriteThroughput
• WriteLatency
• DatabaseConnections
• BinLogDiskUsage
28
Amazon CloudWatchアラームの状態
OK不足
(INSUFFICIENT)アラーム
(Alarm)
定義された閾値を下回っている(正常値)
定義された閾値を上回っている(異常値)
データが不足のため、状態を判定できない
(判定不能)
CloudWatch特有のステータス
29
• CloudWatchはデータポイントを基準にステータスを判断– データポイントとはCloudWatchに送信される値(CPU値など)
– OK / アラーム時は入力されたデータポイントを基準に状態評価
– INSUFFIENT時はCloudWatchにテータポイントの入力が無い状態
→ “INSUFFICIENT”は必ずしも障害を表すステータスではない
INSUFFICIENT_DATAの考え方
EC2 CloudWatch
データポイント
EC2 CloudWatch
データポイント自体が存在しない
OK / ALARM INSUFFICIENT
30
CloudWatch利用イメージ 標準メトリックス監視
31
Amazon CloudWatchのアクション機能
AutoScaling
EC2 Action
モニタリング
CPUUtilization
DiskReadBytes / DiskReadOps
DiskWriteBytes / DiskWriteOps
NetworkIn / NetworkOut
StatusCheckFailed_Instance
StatusCheckFailed_System
EC2 CloudWatch
Custom MetricMemory Free / Filesystem Free
アクション
Notification
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
• 柔軟で高速なフルマネージドメッセージングサービス
• マルチプロトコルで簡単にメッセージを通知
• 安価な従量課金制
Amazon SNS
HTTP(S)
SQS
Mobile Push
36
Auto Scaling
• トリガーを受けてEC2の数を自動的に増減させる仕組み
Amazon
EC2
Amazon
EC2
Amazon
EC2
AutoScaling GroupCloudWatch
①性能監視
Alarm
②閾値の監視
③ASアクションを起動
④新規にサーバがデプロイ
37
Amazon CloudWatchによるリソース管理
• AutoScaling連携したリソース監視
• メトリックス = 監視項目(例:CPU使用率)
• CPU使用率が80%が5分間続いたらサーバを2台増やす
• CPU使用率が30%が15分間続いたらサーバを1台減らす
Amazon
EC2
Amazon
EC2
Amazon
EC2
Amazon
EC2Amazon
EC2
Amazon
EC2
AutoScaling Group AutoScaling Group
38
Auto Scalingの利用ケース
• 負荷分散ELB配下のWebサーバ
• SQSからジョブを取ってバッチ実行するワーカー
WebサーバのAuto Scaling GroupCPU使用率やELBのRequest数などを
トリガーにする
ワーカ(バッチ)のAuto Scaling GroupSQSのキューに溜まっているメッセージ数などを
トリガーにする
AutoScaling Group AutoScaling Group
39
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
・・・
Push方式
Amazon CloudWatchと連携した統合監視
• 監視対象インスタンスの自動登録
Search方式
監視サーバ
Amazon Machine Image(AMI)
・・・
監視サーバ
Amazon Machine Image(AMI)
43
Amazon CloudWatchを使ったログ監視
• CloudWatch Logsを使ったログ監視
• OS、アプリケーション等のテキストログをモニタリング
• エージェント経由でログメッセージをCloudWatchエンドポ
イントに転送
• ログデータの保存期間は設定可能(※永久保存も選択可能)
44
CloudWatch Logs利用イメージ
AmazonLinux
Ubuntu Server
Windows Red Hat Enterprise Linux
CloudWatch Logs
api call to endpoint
アラーム SNS
45
CloudWatch Logで使う用語
• Log Group– 同じプロパティー、ポリシーやアクセスコントロールを共有するロググループです。(Apache Log Group、/var/log/messages)
• Log Stream– データ送信元(特定のアプリケーションが動作するインスタンスやリソース)からのイベントシーケンスが集約される
グループです。(ホスト名、Instance-id、任意の名前)
• Log Event– モニターされるアプリケーションやリソースが記録したアクティビティ、イベントです。– タイムスタンプとUTF-8でフォーマットされたメッセージで構成されます。
• Log Agent– ログエントリーを送信したいインスタンスにインストールし、Log Eventを送信するエージェントです。
• Metric Filters– イベントを監視し、Simple Notification Service(SNS)と連携するために使うメトリックスです。
• Retention Policies– イベントの保持期間に関する定義をします(1day – Never Expired)– Log Groupに関連づけられ、グループ内の全てのLog Streamに適用されます。
46
CloudWatch Logsのディレクトリ階層
Web Serverweb001.ap-northeast-1
Log Group Log Stream Log Event
web002.ap-northeast-1
web003.ap-northeast-1
47
ログの保存期間
• CloudWatch Logsはログを永久保存可能
48
CloudWatch Logs 料金体系
5GB
5GB
$0.50 / GB
$0.03 GB / 月
無料枠
(1カ月あたり)従量課金
http://aws.amazon.com/jp/cloudwatch/pricing/
10 メトリックス、10 アラーム、および 100 万の API リクエストの無料利用枠を準備
インジェクション
アーカイブ
49
CloudWatch Logsの利用
EC2Configを利用 Linux用Agentのインストール
50
EC2Config Service
• Amazon Windows AMI にプリインストールされているWindows用サービス
• Amazon EC2 でインスタンスを起動時時に一般的な自動設定タスク、スクリプトを実行
• カスタムAMI作成時のSysprepでも利用
• CloudWatch Logsへのログ転送もEC2Configサービスが実施する
51
Cloudwatch Logs Agentの設定
• Agentをインストールする際の設定項目
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”
52
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.Windows.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.PerformanceCounterInputComponent,AWS.EC2.Windows.CloudWatch",
"Parameters": {"CategoryName": "Memory","CounterName": "Available MBytes","InstanceName": "","MetricName": "Memory","Unit": "Megabytes","DimensionName": "","DimensionValue": ""
}}
59
カスタムメトリックスの確認
カスタムメトリックス
60
[ec2-user@ip-10-0-10-104 ~]$ wget https://s3.amazonaws.com/aws-cloudwatch/downloads/awslogs-agent-
setup-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 ...
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]:
CloudWatch Logsの設定(Linux)(1/3)• Linuxの設定は、Pythonスクリプトで設定
①Pythonスクリプトのダウンロード・実行
②Access Key/Secret Access Keyの入力※IAMロールの利用も可能
③Regionの入力④ファイルフォーマットの選択
⑤モニタリングするログファイルパスの入力⑥Log Groupの入力
61
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
⑦表示されるインスタンスの選択・インスタンスIDの利用・ホスト名の利用・カスタム入力
⑧タイムスタンプの表示形式設定
⑨ログの転送位置の設定・ログファイルの初めから転送・次回発生するログから転送
62
ログモニタリングイメージ
• ログ内容はタイムスタンプとログメッセージ(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の使用料金が必要
Amazon S3 Amazon SNS
API call の発生状況 API call の発生状況SNS設定の有無
70
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
• 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
71
AWS Identity and Access Management (IAM)
• AWS操作をよりセキュアに行うための認証・認可の仕組み
• AWSリソースにはIAMを使ったアクセスが推奨
• AWS利用者の認証と、アクセスポリシーを管理 AWS操作のためのグループ・ユーザー・ロールの作成が可能
グループ、ユーザーごとに、実行出来る操作を規定できる
ユーザーごとに認証情報の設定が可能
開発チーム 運用チーム
72
IAMの動作イメージAPIやマネジメントコンソールからのアクセスに対して、権限をチェック
全操作可能
S3はすべて操作可能
S3参照だけ
73
AWS CloudTrailの設定方法
74
CloudTrailを有効にすることを推奨
AWSサポートにお問い合わせ頂く際も、早期問題解決に役立ちます
75
AWS CloudTrailの設定
S3バケット名の入力
グローバルサービス(IAM、STSなど)のログ取得設定
SNS通知の設定
ロググループの設定
IAMロールの設定
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にて監視すべきイベント例
Event 想定ケース
AttachInternetGatewayAssociateRouteTableCreateRouteDeleteCustomerGatewayDeleteInternetGatewayDeleteRouteDeleteRouteTableDeleteDhcpOptionsDisassociateRouteTable
• 意図せぬネットワーク構成の変更• 未承認のインターネットゲートウェイの作成• ルーティングの変更による未承認の経路の作成
CreateNetworkAclCreateNetworkAclEntryDeleteNetworkAclDeleteNetworkAclEntryReplaceNetworkAclEntryReplaceNetworkAclAssociation
• 意図せぬNetworkACLの変更• 許されないポートの解放
RunInstancesCreateInstancesLaunchInstancesTerminateInstances
• 未承認のEC2の作成• 意図せぬEC2のTerminate
CloudTrailではサポートしているAWSサービスの操作のために使われた全てのAPIログを取得しますが、どのようなログを監視するかについては監視要件に依存します。下記は代表的な重要イベントの例です。
86
CloudTrailにて監視すべきイベント例Event 想定ケース
AuthorizeSecurityGroupIngressAuthorizeSecurityGroupEgressRevokeSecurityGroupIngressRevokeSecurityGroupEgressCreateSecurityGroupDeleteSecurityGroup
• 意図せぬSecurity Groupの変更• 許されないポートの解放
StopLoggingDeleteTrailUpdateTrail
• CloudTrailの停止• CloudTrailの削除• CloudTrailの設定変更
DeleteGroupPolicyDeleteRoleDeleteRolePolicyDeleteUserPolicyPutGroupPolicyPutRolePolicyPutUserPolicy
• 許可されていないIAMポリシーの削除• 許可されていないIAMポリシーの付与
Unauthorized*errorCodeAccessDeniedFailed authentication
• 許可されない操作の試行• エラー
"type":"Root" • AWSルートアカウントでのログイン
87
CloudTrailのCloudWatch Logsとの連携
• CloudTrailのログをCloudWatch Logsに転送できるようになりました
CloudWatch LogsのLog Groupを入力
CloudTrail CloudWatch Logs
ログ連携
88
CloudTrail JSONを統合管理
89
CloudTrailのCloudWatch Logsとの連携
CloudTrail CloudWatch Logs
ログ連携
アラーム SNS
http://aws.typepad.com/aws_japan/2015/03/cloudtrail-integration-with-cloudwatch-in-four-more-regions.html
90
CloudTrailによるAPIコールのログ(操作ログ)の集約
どのようなログを監視するか、閾値をどうするか等の設定が可能
・ネットワーク・SG、NACL・インターネットゲートウェイ・サイズの大きいEC2インスタンスの作成、削除、および更新・CloudTrail自体の変更・IAMポリシー・認証の失敗・管理コンソールへのログイン
まとめ
• クラウドの運用監視は今までの監視とそれほど変わらない
• AWSのサービスをうまく活用することで監視をシンプルにすることができる
• コストを監視することで運用コストを削減できるのもクラウド運用のポイント
• セキュリティ・コンプライアンス監視もCloudTrailを利用することで対応可能
91
ESP(Ecosystem Solution Pattern)カタログ 無料配布2015年度版 AWS対応ソフトウェア/SaaSガイド
93
参照リンク
• AWSアカウント作成の流れ
– http://aws.amazon.com/jp/register-flow/
• AWS コンプライアンス
– http://aws.amazon.com/jp/compliance/
• AWSセキュリティ
– http://aws.amazon.com/jp/security/
• AWSクラウド活用資料集
– http://aws.amazon.com/jp/aws-jp-introduction/
• 国内のお客様のAWS活用事例
– http://aws.amazon.com/jp/solutions/case-studies-jp/
94
AWSをより深く理解したい方向けにクラスルームトレーニングを提供しています。
詳細: aws.amazon.com/training
認定資格試験
95
公式Twitter/FacebookAWSの最新情報をお届けします
@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