99
基本から理解する、AWS運用監視 初心者向けWebinarシリーズ アマゾン データ サービスジャパン株式会社 パートナー ソリューション アーキテクト 酒徳 知明 2015.05.12 1

AWS 初心者向けWebinar 基本から理解する、AWS運用監視

Embed Size (px)

Citation preview

Page 1: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

基本から理解する、AWS運用監視

初心者向けWebinarシリーズ

アマゾン データ サービスジャパン株式会社

パートナー ソリューション アーキテクト

酒徳 知明

2015.05.12

1

Page 2: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

ご質問を受け付け致します!

質問を投稿することができます!• Adobe Connectのチャット機能を使って、質問を書き込んでく

ださい。(書き込んだ質問は、主催者にしか見えません)

• Webinarの最後に、可能な限り回答させていただきます。

• 終了時刻となった際は、割愛させていただく場合がございます。

①画面右下のチャットボックスに質問を書き込んでください

②吹き出しマークで送信してください

2

Page 3: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

初心者向けWebinarのご紹介

• AWSについてこれから学ぶ方向けのWebinarです。

• 過去のWebinar資料– AWSクラウドサービス活用資料集ページにて公開

http://aws.amazon.com/jp/aws-jp-introduction/

• イベントの告知– 国内のイベント・セミナースケジュールページにて告知

http://aws.amazon.com/jp/about-aws/events/

(オンラインセミナー枠)

3

Page 4: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

Introduction

• 今回のAWS初心者向けWebinarでは、AWS上に構築されたシステムの運用監視についてご紹介します。

• 運用監視に必要となるAWSサービスを中心に基本設定方法含めみていきます。

4

Page 5: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

AWSの運用監視

• 今までのシステム監視とそれほど変わらない– オンプレミス時の運用ノウハウを最大限活用

– 多くの監視ツールがAWSに対応

• クラウドならではの監視– AWSサービスをうまく活用したシンプルな監視

– コスト監視

– コンプライアンス

5

Page 6: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

基本となる運用監視

オンプレミスでもクラウドでも基本的には同じ

性能監視 キャパシティ監視

状態監視死活監視

6

Page 7: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

Amazon

CloudWatch

7

Page 8: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

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

Page 9: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

ログインが成功すると以下のサービスの一覧画面が表示される

9

Page 10: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

CloudWatch利用イメージ 標準メトリックス監視

標準メトリックス一覧

対象インスタンス検索ウィンドウ

グラフ表示期間設定

10

Page 11: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

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

Page 12: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

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/

Page 13: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

Amazon EC2のモニタリングタイプ

基本モニタリング 詳細モニタリング

無料

データは 5分間隔で自動的に取得

追加料金が必要

データは 1 分間隔で取得

13

Page 14: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

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 統計計算で使用するデータポイントのカウント(数)です。

Page 15: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

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

Page 16: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

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

Page 17: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

補足: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

Page 18: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

補足:Amazon EC2 T2インスタンス

T2.medium CPUクレジット

(576)

T2.small CPUクレジット

(288)

T2.microCPUクレジット

(144)

CPU使用率

18

Page 19: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

補足: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

Page 20: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

補足:General Purpose(SSD)ボリュームボリュームあたりのスループットは160MB/s

ベースパフォーマンス

1,000GB以下のボリュームでは最大3,000IOPSまでバースト性能を発揮する

容量が3,334GBを超えると、常時10,000IOPSを発揮する

20

Page 21: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

AWSでの状態・死活監視

• AWS Service Health Dashboard– AWSサービス全体の利用可能確認

– 各リージョン毎、サービス毎にサービス提供状態

– RSSフィードを使ったモニタリング

http://status.aws.amazon.com/

21

Page 22: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

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

Page 23: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

Amazon CloudWatchを使った状態・死活監視

• EC2の状態・死活監視– CloudWatch標準メトリックスを利用可能

• StatusCheckFailed_System– ネットワーク接続の喪失– システム電源の喪失– 物理ホストのハードウェアの問題

• StatusCheckFailed_Instance– 失敗したシステムステータスチェック– 誤って設定されたネットワークまたは起動設定– メモリの枯渇– 破損したファイルシステム– 互換性のないカーネル

• StatusCheckFailed– StatusCheckFailed_Instance と StatusCheckFailed_System の組み合わ

せで評価を行い、どちらかのステータスチェックが失敗したら報告

23

Page 24: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

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

Page 25: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

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

Page 26: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

• ELB自体は負荷増減に応じて自動でスケールする

(キャパシティが自動で増加する)– ELBへの接続・リクエストが瞬間的に急増し、ELBのスケーリン

グが間に合わない場合はHTTP 503を返す

– ELBがスケールするときには、ELBのIPアドレスが変化

• ELBへアクセスするときには必ずDNS名で登録

• 独自ドメインに割り当てる際はCNAMEにて

ELBは負荷に応じて自動スケール

26

Page 27: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

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

Page 28: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

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

Page 29: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

Amazon CloudWatchアラームの状態

OK不足

(INSUFFICIENT)アラーム

(Alarm)

定義された閾値を下回っている(正常値)

定義された閾値を上回っている(異常値)

データが不足のため、状態を判定できない

(判定不能)

CloudWatch特有のステータス

29

Page 30: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

• CloudWatchはデータポイントを基準にステータスを判断– データポイントとはCloudWatchに送信される値(CPU値など)

– OK / アラーム時は入力されたデータポイントを基準に状態評価

– INSUFFIENT時はCloudWatchにテータポイントの入力が無い状態

→ “INSUFFICIENT”は必ずしも障害を表すステータスではない

INSUFFICIENT_DATAの考え方

EC2 CloudWatch

データポイント

EC2 CloudWatch

データポイント自体が存在しない

OK / ALARM INSUFFICIENT

30

Page 31: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

CloudWatch利用イメージ 標準メトリックス監視

31

Page 32: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

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

Page 33: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

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

Page 34: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

Amazon CloudWatchアクション機能の設定

34

Page 35: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

Amazon CloudWatchアラームの設定

• CPU使用率を監視対象• CPU使用率80%以上が3期間(ここでは1期間=5分)以上

35

Page 36: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

Amazon Simple Notification Service

• 柔軟で高速なフルマネージドメッセージングサービス

• マルチプロトコルで簡単にメッセージを通知

• 安価な従量課金制

Amazon SNS

HTTP(S)

EMAIL

SQS

Mobile Push

36

Page 37: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

Auto Scaling

• トリガーを受けてEC2の数を自動的に増減させる仕組み

Amazon

EC2

Amazon

EC2

Amazon

EC2

AutoScaling GroupCloudWatch

①性能監視

Alarm

②閾値の監視

③ASアクションを起動

④新規にサーバがデプロイ

37

Page 38: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

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

Page 39: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

Auto Scalingの利用ケース

• 負荷分散ELB配下のWebサーバ

• SQSからジョブを取ってバッチ実行するワーカー

WebサーバのAuto Scaling GroupCPU使用率やELBのRequest数などを

トリガーにする

ワーカ(バッチ)のAuto Scaling GroupSQSのキューに溜まっているメッセージ数などを

トリガーにする

AutoScaling Group AutoScaling Group

39

Page 40: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

Amazon CloudWatchによるコストの監視

• Billingアラーム設定• 課金状況をCloudWatch監視

• 一定金額を超えるとアラームメール通知が可能

40

Page 41: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

監視ツール連携の必要性

• 監視対象の制限– ハイブリッド環境の監視– マルチクラウド環境の監視– プロセス監視

• データ保存期間(2週間の保存)• データ保管粒度は最短で1分間隔• アラートの制限

– 複合アラートの設定– メンテナンス ウィンドウの設定– 重要度の設定

• アクション機能• 通知フォーマット

41

Page 42: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

監視システムとのAmazon CloudWatch連携

監視システムでのCloudWatch活用イメージ

サードパーティ監視ツールの確認ポイント• AWSに対応しているか• CloudWatchとの連携機能の有無• CloudWatchカスタムメトリックスに対

応しているか• Auto Scaling対応しているか• EC2インスタンス自動検出・自動削除が

可能か

http://aws.amazon.com/jp/solutions/case-studies/shiseido/

42

Page 43: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

・・・

Push方式

Amazon CloudWatchと連携した統合監視

• 監視対象インスタンスの自動登録

Search方式

監視サーバ

Amazon Machine Image(AMI)

・・・

監視サーバ

Amazon Machine Image(AMI)

43

Page 44: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

Amazon CloudWatchを使ったログ監視

• CloudWatch Logsを使ったログ監視

• OS、アプリケーション等のテキストログをモニタリング

• エージェント経由でログメッセージをCloudWatchエンドポ

イントに転送

• ログデータの保存期間は設定可能(※永久保存も選択可能)

44

Page 45: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

CloudWatch Logs利用イメージ

AmazonLinux

Ubuntu Server

Windows Red Hat Enterprise Linux

CloudWatch Logs

api call to endpoint

アラーム SNS

45

Page 46: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

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

Page 47: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

CloudWatch Logsのディレクトリ階層

Web Serverweb001.ap-northeast-1

Log Group Log Stream Log Event

web002.ap-northeast-1

web003.ap-northeast-1

47

Page 48: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

ログの保存期間

• CloudWatch Logsはログを永久保存可能

48

Page 49: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

CloudWatch Logs 料金体系

5GB

5GB

$0.50 / GB

$0.03 GB / 月

無料枠

(1カ月あたり)従量課金

http://aws.amazon.com/jp/cloudwatch/pricing/

10 メトリックス、10 アラーム、および 100 万の API リクエストの無料利用枠を準備

インジェクション

アーカイブ

49

Page 50: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

CloudWatch Logsの利用

EC2Configを利用 Linux用Agentのインストール

50

Page 51: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

EC2Config Service

• Amazon Windows AMI にプリインストールされているWindows用サービス

• Amazon EC2 でインスタンスを起動時時に一般的な自動設定タスク、スクリプトを実行

• カスタムAMI作成時のSysprepでも利用

• CloudWatch Logsへのログ転送もEC2Configサービスが実施する

51

Page 52: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

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

Page 53: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

CloudWatch Logsの設定(Windows)(2/3)2. EC2Configの起動

チェックを入れるだけで利用可能

1. ロールの設定

アクションの指定

特定リソースへのアクセスを許可

CloudWatchLogs-role

http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/QuickStartEC2Instance.html

53

Page 54: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

CloudWatch Logsの設定(Windows)

• CWL Agent JSON設定ファイルを編集することで、監視するメトリックスを設定 “C:\Program Files\Amazon\Ec2ConfigService\Settings” に配置されて

いる “AWS.EC2.Windows.CloudWatch.json“ ファイルを編集

収集するログを設定

• Windowsイベントログ

• Event Tracing for Windows

• テキストベース ログ

• IISログ

• パフォーマンスカウンタ

54

Page 55: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

AWS.EC2.Windows.CloudWatch.json

• JSONで設定する項目 PollInterval: Agentがクエリする頻度の定義

Components: 監視対象の定義

• Id: Component を識別するためのユニークID。任意の文字列を設定

• FullName: Component のタイプ(DLLのClass name)。既定の文字列を指定

• Parameters: Component ごとに定義するパラメータ。Component ごとに異なる

Flows: Components の関係性の定義

55

Page 56: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

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

Page 57: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

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

Page 58: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

AWS.EC2.Windows.CloudWatch.json

• Flows: Components の関係性の定義

AWS.EC2.Windows.CloudWatch.jsonの内容

{"Flows": {

"Flows": ["(ApplicationEventLog,SystemEventLog),CloudWatchLogs","CustomLogs,CloudWatchLogsSQL"

]}"

58

Page 59: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

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

Page 60: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

カスタムメトリックスの確認

カスタムメトリックス

60

Page 61: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

[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

Page 62: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

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

Page 63: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

ログモニタリングイメージ

• ログ内容はタイムスタンプとログメッセージ(UTF-8)で構成

63

Page 64: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

CloudWatch logs Metric Filter(1/3)

• ログイベントから特定の文字列のフィルタリングが可能

64

Page 65: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

CloudWatch Logs Metric Filter(2/3)

• 特定文字列の出現回数によりアラーム作成が可能

→ “error”という文字列が3回以上出現するとアラーム上げる

“error”という文字列を監視

“error”という文字列の出現回数

65

Page 66: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

CloudWatch Logs Metric Filter(3/3)

• Metric Filterからアラーム作成、SNS連携が可能

Metric FilterをトリガーにしたCloudWatchアラームの作成が可能

66

Page 67: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

Amazon CloudWatchのまとめ

• 基本的な性能、状態・死活、キャパシティの監視をすることが可能

• コストの監視にもCloudWatchを利用

• 必要に応じて統合監視サーバとの連携もAPI経由で実装できます

• CloudWatch Logsを活用することでログの監視だけでなく、文字列フィルタリング、アラート通知まで設定可能

67

Page 68: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

AWSならではの監視

AWS CloudTrail

68

Page 69: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

AWS CloudTrailの概要

• 概要• AWSアカウントの操作をロギングするサービス

• 管理コンソール、コマンドライン、3rd party等APIコールされるイベントが対象

• S3にロギングデータを保存

• ユースケース• コンプライアンス準拠

• セキュリティ面の分析• AWS Identity and Access Management (IAM)を使ったユーザログイン情報の

管理

• リソースのライフサイクル管理

• 運用上のトラブルシューティング

69

Page 70: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

CloudTrailの特徴

• もちろん東京リージョンでも利用可能

• サポートリージョン・サービス数拡大

• CloudTrail 自体は無料です※Amazon S3 / SNSの使用料金が必要

Amazon S3 Amazon SNS

API call の発生状況 API call の発生状況SNS設定の有無

70

Page 71: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

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

Page 72: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

AWS Identity and Access Management (IAM)

• AWS操作をよりセキュアに行うための認証・認可の仕組み

• AWSリソースにはIAMを使ったアクセスが推奨

• AWS利用者の認証と、アクセスポリシーを管理 AWS操作のためのグループ・ユーザー・ロールの作成が可能

グループ、ユーザーごとに、実行出来る操作を規定できる

ユーザーごとに認証情報の設定が可能

開発チーム 運用チーム

72

Page 73: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

IAMの動作イメージAPIやマネジメントコンソールからのアクセスに対して、権限をチェック

全操作可能

S3はすべて操作可能

S3参照だけ

73

Page 74: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

AWS CloudTrailの設定方法

74

Page 75: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

CloudTrailを有効にすることを推奨

AWSサポートにお問い合わせ頂く際も、早期問題解決に役立ちます

75

Page 76: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

AWS CloudTrailの設定

S3バケット名の入力

グローバルサービス(IAM、STSなど)のログ取得設定

SNS通知の設定

ロググループの設定

IAMロールの設定

76

Page 77: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

ログファイルの保存先

• CloudTrail ログは命名規則の元ある特定のパスで保存される

• gz形式で圧縮され保存

• APIの呼び出しから15分以内にイベント送信を実施

77

Page 78: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

AWS CloudTrailによりロギングされるイベント

API call Event Non-API call Event

• サポート サービスから発行されるAPI StartInstances CreateKeyPair

• ユーザのサインイン アクティビテイ AWS マネジメント コンソール AWS ディスカッション フォー

ラム

78

Page 79: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

JSON形式での出力79

Page 80: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

誰がAPIコールを発行したのか①

IAMユーザ “Bob”のユーザ情報

"userIdentity“:{"accessKeyId":"AKEXAMPLE123EJVA","accountId":“123456789012","arn":"arn:aws:iam::123456789012:user/Bob","principalId":"AIEXAMPLE987ZKLALD3HS","type":"IAMUser","userName":“Bob"

}

80

Page 81: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

いつAPIコールが発行されたのか

ISO8601フォーマットでの記載

"eventTime":"2014-11-29T05:58:13Z“

81

Page 82: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

どのAPIコールが発行されたのか

APIコールの名前とターゲット情報を記載

"eventSource":"signin.amazonaws.com"

"eventName":"ConsoleLogin"

82

Page 83: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

どのAWSリソースから発行されたのか

リクエスターのIPアドレス、APIが発行されたリージョンの情報を記載

"awsRegion":"us-east-1",

"sourceIPAddress":"ec2.amazonaws.com"

83

Page 84: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

CloudTrailを使ったロギング

• AWS CLIを使ったAPIイベントの取得

aws cloudtrail lookup-events --lookup-attributes \

AttributeKey=EventName,AttributeValue=RunInstances --region us-east-1

84

Page 85: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

CloudTrail API lookup – マネジメントコンソール

85

Page 86: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

CloudTrailにて監視すべきイベント例

Event 想定ケース

AttachInternetGatewayAssociateRouteTableCreateRouteDeleteCustomerGatewayDeleteInternetGatewayDeleteRouteDeleteRouteTableDeleteDhcpOptionsDisassociateRouteTable

• 意図せぬネットワーク構成の変更• 未承認のインターネットゲートウェイの作成• ルーティングの変更による未承認の経路の作成

CreateNetworkAclCreateNetworkAclEntryDeleteNetworkAclDeleteNetworkAclEntryReplaceNetworkAclEntryReplaceNetworkAclAssociation

• 意図せぬNetworkACLの変更• 許されないポートの解放

RunInstancesCreateInstancesLaunchInstancesTerminateInstances

• 未承認のEC2の作成• 意図せぬEC2のTerminate

CloudTrailではサポートしているAWSサービスの操作のために使われた全てのAPIログを取得しますが、どのようなログを監視するかについては監視要件に依存します。下記は代表的な重要イベントの例です。

86

Page 87: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

CloudTrailにて監視すべきイベント例Event 想定ケース

AuthorizeSecurityGroupIngressAuthorizeSecurityGroupEgressRevokeSecurityGroupIngressRevokeSecurityGroupEgressCreateSecurityGroupDeleteSecurityGroup

• 意図せぬSecurity Groupの変更• 許されないポートの解放

StopLoggingDeleteTrailUpdateTrail

• CloudTrailの停止• CloudTrailの削除• CloudTrailの設定変更

DeleteGroupPolicyDeleteRoleDeleteRolePolicyDeleteUserPolicyPutGroupPolicyPutRolePolicyPutUserPolicy

• 許可されていないIAMポリシーの削除• 許可されていないIAMポリシーの付与

Unauthorized*errorCodeAccessDeniedFailed authentication

• 許可されない操作の試行• エラー

"type":"Root" • AWSルートアカウントでのログイン

87

Page 88: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

CloudTrailのCloudWatch Logsとの連携

• CloudTrailのログをCloudWatch Logsに転送できるようになりました

CloudWatch LogsのLog Groupを入力

CloudTrail CloudWatch Logs

ログ連携

88

Page 89: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

CloudTrail JSONを統合管理

89

Page 90: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

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ポリシー・認証の失敗・管理コンソールへのログイン

Page 91: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

まとめ

• クラウドの運用監視は今までの監視とそれほど変わらない

• AWSのサービスをうまく活用することで監視をシンプルにすることができる

• コストを監視することで運用コストを削減できるのもクラウド運用のポイント

• セキュリティ・コンプライアンス監視もCloudTrailを利用することで対応可能

91

Page 92: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

Q&A

AWS Summit Tokyo 2015

参加登録受付中!http://www.awssummit.tokyo/

92

Page 93: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

ESP(Ecosystem Solution Pattern)カタログ 無料配布2015年度版 AWS対応ソフトウェア/SaaSガイド

93

Page 94: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

参照リンク

• 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

Page 95: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

AWSをより深く理解したい方向けにクラスルームトレーニングを提供しています。

詳細: aws.amazon.com/training

認定資格試験

95

Page 96: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

公式Twitter/FacebookAWSの最新情報をお届けします

@awscloud_jp

検索

最新技術情報、イベント情報、お役立ち情報、お得なキャンペーン情報などを日々更新しています!

もしくは http://on.fb.me/1vR8yWm

96

Page 97: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

AWS初心者向けWebinar 2015

• AWSをこれからご使用になる方向け、ソリューションカットのオンラインセミナー

• 今後の配信予定– 5/19(火) AWS 料金の見積り方法

• 申し込みサイトhttp://aws.amazon.com/jp/about-aws/events/

97

Page 98: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

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

Page 99: AWS 初心者向けWebinar 基本から理解する、AWS運用監視

99