68
AWS Black Belt Online SeminarAmazon CloudWatch アマゾンウェブサービスジャパン株式会社 パートナー ソリューション アーキテクト 酒徳 知明 2016.07.06

Black Belt Online Seminar Amazon CloudWatch

Embed Size (px)

Citation preview

【AWS Black Belt Online Seminar】Amazon CloudWatch

アマゾンウェブサービスジャパン株式会社

パートナー ソリューション アーキテクト 酒徳 知明

2016.07.06

2

本資料では2016年7月6日時点のサービス内容および価格についてご説明しています。最新の情報はAWS公式ウェブサイト(http://aws.amazon.com)にてご確認ください。

資料作成には十分注意しておりますが、資料内の価格とAWS公式ウェブサイト記載の価格に相違があった場合、AWS公式ウェブサイトの価格を優先とさせていただきます。

内容についての注意点

AWS does not offer binding price quotes. AWS pricing is publicly available and is subject to change in accordance with the AWS Customer Agreement available at http://aws.amazon.com/agreement/. Any pricing information included in this document is provided only as an estimate of usage charges for AWS services based on certain information that you have provided. Monthly charges will be based on your actual use of AWS services, and may vary from the estimates provided.

価格は税抜表記となっています。日本居住者のお客様が東京リージョンを使用する場合、別途消費税をご請求させていただきます。

3

自己紹介

酒徳 知明(さかとく ともあき)エコシステム ソリューション部

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

• エンタープライズ SIパートナー様のご支援

• ISVパートナー様のご支援

• 好きなAWSサービス

• AWS運用系サービス

4

クラウド運用

• 標準化• テンプレート

• 監視• ログ管理

• 構成管理、変更管理• コンプライアンス強化

• API管理• 監査

• コスト最適化

• Well Architected

AWSのクラウド運用

5

• CloudWatch• AWS上で稼働するシステム監視サービス

死活監視 / 性能監視 / キャパシティ監視

• CloudWatch Logs• ログ管理プラットフォーム サービス

EC2上のOS, APPのログ AWSマネージド サービスのログ

• CloudWatch Events• AWS上リソースの状態監視サービス• AWSリソースに対するイベントをトリ

ガーにアクションを実行する機能

Amazon CloudWacth

CloudWatch

6

• CloudWatch• AWS上で稼働するシステム監視サービス

死活監視 / 性能監視 / キャパシティ監視

• CloudWatch Logs• ログ管理プラットフォーム サービス

EC2上のOS, APPのログ AWSマネジドサービスのログ

• CloudWatch Events• AWS上リソースの状態監視サービス• AWSリソースに対するイベントをトリ

ガーにアクションを実行する機能

Amazon CloudWacth

CloudWatch

7

Amazon CloudWatchとは

• AWSの各種リソースを監視するマネージドサービス– AWSリソースの死活、性能、キャパシティ

– 取得メトリックスのグラフ化 (可視化)

– 各メトリックスをベースとしたアラーム(通知)、アクションの設定が可能

• 多くのAWSサービスの監視が可能– Amazon EC2

– Amazon EBS

– Amazon RDS

– Elastic Load Balancing など

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

Amazon CloudWatch

Amazon CloudWatch

Metrics Name(CPUUtiliization)

Metrics Name(HealthyHostCount)

Metrics

Amazon CloudWatch

Metrics Name(CPUUtiliization)

Metrics Name(HealthyHostCount)

Name Space(AWS/EC2)

Name Space(AWS/RDS)

Name Space(AWS/ELB)

Metrics Name(CPUUtiliization)

Metrics

Namespace

Amazon CloudWatch

Metrics Name(CPUUtiliization)

Metrics Name(HealthyHostCount)

Name Space(AWS/EC2)

Name Space(AWS/RDS)

Name Space(AWS/ELB)

Metrics Name(CPUUtiliization)

Dimension(InstanaceId)

Dimension(InstanaceId)

Dimension(InstanaceId)

Metrics

Namespace

Dimension

Amazon CloudWatch

Metrics Name(CPUUtiliization)

Metrics Name(HealthyHostCount)

Name Space(AWS/EC2)

Name Space(AWS/RDS)

Name Space(AWS/ELB)

Metrics Name(CPUUtiliization)

Dimension(InstanaceId)

Dimension(InstanaceId)

Dimension(InstanaceId)

Sum

Max

Min

Average

StatisticMetrics

Namespace

Dimension

Simple Count

13

CloudWatchに対応するAWSサービスAWS サービス 名前空間

Auto Scaling AWS/AutoScaling

AWS Billing AWS/Billing

Amazon CloudFront AWS/CloudFront

Amazon CloudSearch AWS/CloudSearch

Amazon CloudWatch Events AWS/Events

Amazon CloudWatch Logs AWS/Logs

Amazon DynamoDB AWS/DynamoDB

Amazon EC2 Container Service AWS/ECS

Amazon ElastiCache AWS/ElastiCache

Amazon Elastic Block Store AWS/EBS

Amazon Elastic Compute Cloud AWS/EC2

Amazon EC2 Spot AWS/EC2Spot

Elastic Load Balancing AWS/ELB

Amazon Elastic MapReduce AWS/ElasticMapReduce

Amazon Elasticsearch Service AWS/ES

AWS の製品 名前空間

Amazon Kinesis Streams AWS/Kinesis

Amazon Kinesis Firehose AWS/Firehose

AWS Lambda AWS/Lambda

Amazon Machine Learning AWS/ML

AWS OpsWorks AWS/OpsWorks

Amazon Redshift AWS/Redshift

Amazon Relational Database Service AWS/RDS

Amazon Route 53 AWS/Route53

Amazon Simple Notification Service AWS/SNS

Amazon Simple Queue Service AWS/SQS

Amazon Simple Storage Service AWS/S3

Amazon Simple Workflow Service AWS/SWF

AWS Storage Gateway AWS/StorageGateway

AWS WAF AWS/WAF

Amazon WorkSpaces AWS/WorkSpaces

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

14

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

標準メトリックス一覧

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

グラフ表示期間設定

ディメンション

統計情報(単位)

15

CloudWatchのメトリックス

標準メトリックス (EC2) カスタムメトリックス

CPUUtilization

CPUCreditBalance

CPUCreditUsage

DiskReadBytes

DiskWriteBytes

DiskWriteOps

NetworkOut

NetworkIn

StatusCheckFailed_Instance

StatusCheckFailed

StatusCheckFailed_System

標準メトリックスでは収集できないメトリックス

16

CloudWatch カスタムメトリックス

• 標準メトリックス以外の独自メトリックスも監視可能– AWS CLIの”put-metric-data”、API Toolsの”mon-put-data”、もしく

は”PutMetricData” APIでデータを登録– サイズ制限として、HTTP GETは8KB、HTTP POSTは40KB、1つの

PutMetricDataリクエストに20データ

• APIコールにスロットリングあり– カスタムメトリックスの頻繁な登録や頻度の高いデータ取得には注意

$ 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

←単一値の登録

←統計セットの登録

17

CloudWatch のメトリックス値

• CloudWatchで取得される情報は統計情報– メトリックスデータを指定した期間で集約したもの– それぞれのメトリックスについて適切な統計情報を見る必要がある

• メトリックスデータの保管は2週間まで– 2週間以上保存する場合は、get-metric-statisticsでデータを取得し別の場所に保管しておく

• データ保管粒度は最短で1分間隔– 多くのサービスで1分間隔、5分間隔のものもある

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

18

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

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

無料

データは5分間隔のものを

閲覧可能

追加料金が必要

データは1分間隔のものを

閲覧可能

19

Amazon CloudWatch を使ったアラーム設定

OK不足

(INSUFFICIENT)アラーム

(Alarm)

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

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

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

(判定不能)

CloudWatch特有のステータス

20

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

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

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

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

INSUFFICIENT_DATA の考え方

EC2 CloudWatch

データポイント

EC2 CloudWatch

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

OK / ALARM INSUFFICIENT

21

Amazon CloudWatch のアクション機能

AutoScaling

EC2 Action

モニタリング

CPUUtilization

DiskReadBytes / DiskReadOps

DiskWriteBytes / DiskWriteOps

NetworkIn / NetworkOut

StatusCheckFailed_Instance

StatusCheckFailed_System

EC2 CloudWatch

Custom MetricMemory Free / Filesystem Free

アクション

Notification

23

Amazon CloudWatch アラーム・通知の設定

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

24

Amazon EC2 Auto Recovery• EC2の自動復旧

– 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

25

Auto Recovery の注意事項①

• IAMアカウントを使用してアラームを作成または変更する場合、次の Amazon EC2 のアクセス権限が必要です

– ec2:DescribeInstanceStatus と ec2:DescribeInstances。Amazon EC2 インスタンスステータスメトリックスに対するすべてのアラーム用。

– ec2:StopInstances。停止アクションを含むアラーム用。

– ec2:TerminateInstances。終了アクションを含むアラーム用。

– ec2:DescribeInstanceRecoveryAttribute と ec2:RecoverInstances。復旧アクションを含むアラーム用。

http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2-instance-recover.html

26

Auto Recovery の注意事項②

• AWS Security Token Service (AWS STS) を用いて許可された一時的な認証情報を使用している場合は、アラームアクションを用いて Amazon EC2 インスタンスを停止または終了することはできません

• 暗号化ボリュームは未サポートCurrently, the recover action is not supported on:

• EC2-Classic instances

• Dedicated tenancy instances

• Instances running on dedicated hosts

• Instances with encrypted EBS volumes

• Instances that use any instance store volumes, including instances launched with block device mappings for instance store volumes

http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2-instance-recover.html(* 言語は英語でご確認ください)

27

Metrics Monitoring (CloudWatch Dashboard)

28

CloudWatchの料金

• 初期費用無しの従量課金• 標準の監視は無料

– EC2インスタンスの標準監視(5分間隔)– EBS、ELB、RDSは1分間隔が無料

• アラームやカスタムメトリックスは一定数まで無料– 10メトリックス、10 アラーム、および100万APIリクエスト– 1 か月あたり5GBのデータの取り込みおよび5GBのアーカイブされたストレージ

• 課金対象及び料金(2015年7月現在 Tokyoリージョン)– EC2詳細モニタリング1インスタンスにつき$3.50/月– カスタムメトリックス1つにつき$0.50/月– アラーム1つにつき$0.10/月– APIリクエスト1000回につき$0.01(Get, List, Putごとに)

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

29

クラウドならではの監視

https://vulcanpost.com/575341/servishero-survey-big-data/

30

CloudWatchによるコストの監視

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

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

• アラームの設定はVirginiaリージョンから設定

31

メンテナンスイベントの監視

• AWSが予定するメンテナンス情報は事前にお客様にご連絡させて頂きます。

マネジメントコンソールへの通知 メールでの通知

http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/monitoring-instances-status-check_sched.html

32

APIを使ったメンテナンスイベントの監視

aws ec2 describe-instance-status

33

サード パーティ監視ツールの必要性

• 監視対象の制限

– ハイブリッド環境の監視

• データ保存期間(2週間の保存)

• データ保管粒度は最短で1分間隔

• アラートの制限

– 複合アラートの設定

– 重要度の設定

• アクション機能

34

サード パーティ監視ツールとの連携

• サードパーティ監視ツールの確認ポイント AWSに対応しているか

CloudWatchとの連携機能の有無

その他、AWSサービス連携の有無

CloudWatchカスタムメトリックスに対応しているか

EC2インスタンス自動検出・自動削除が可能か

http://aws.typepad.com/aws_partner_sa/2015/06/aws-ops.html

https://aws.amazon.com/jp/solutions/partner-central/esp-catalog/

35

• CloudWatch• AWS上で稼働するシステム監視サービス

死活監視 / 性能監視 / キャパシティ監視

• CloudWatch Logs• ログ管理プラットフォーム サービス

EC2上のOS, APPのログ AWSマネジドサービスのログ

• CloudWatch Events• AWS上リソースの状態監視サービス• AWSリソースに対するイベントをトリ

ガーにアクションを実行する機能

Amazon CloudWacth

CloudWatch

AWS プラットフォームのログ活用

CloudWatch Logs

S3

CloudTrail

S3 Access Logs

ELB

VPC Flow Log

OS / APP

Kinesis

Lambda

チャット

電話

通知

アラート

アクション

Config Cloudfront

Detailed Billing

Redshift

DMSRDS

他ツール連携

エクスポート

API Gateway

可視化

※一部サービスを抜粋

37

CloudWatch Logs

Amazon Linux Ubuntu

Windows Red Hat Linux

CloudWatch Logs

通知:

CloudWatch Alarm

Log Agent Log Agent

Log Agent Log Agent

VPC Flow Log

可視化:

Amazon Elasticsearh Service(Kibana)

エクスポート:

Amazon Kinesis Firehose

CloudTrail Lambda RDS

38

CloudWatch Logsのログ管理

Web Serverweb001.ap-northeast-1

Log Group Log Stream Log Event

web002.ap-northeast-1

web003.ap-northeast-1

39

ログの保存期間

• CloudWatch Logsはログの保存期間を設定可能

40

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

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

41

CloudWatch Logs Metric Filter(1/3)• ログイベントから特定の文字列のフィルタリングが可能

42

CloudWatch Logs Metric Filter(2/3)

• 特定文字列のエントリ頻度によりアラーム作成が可能

→ コンソールへのログインが失敗するとアラーム警告

43

CloudWatch Logs Metric Filter(3/3)

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

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

44

RDS 拡張モニタリング

• CPU、メモリ、ファイルシステムやディスクI/Oなどの50を超えるメトリクスが取得可能

• 拡張モニタリング データはJSON形式でCloudWatch Logsに蓄積

• 対応しているDB(db.t1.micro と db.m1.small を除く)

– Amazon Aurora

– MariaDB

– Microsoft SQL Server

– MySQL (バージョン 5.5 以降)

– Oracle

– PostgreSQL

CloudWatch LogsRDS

46

VPC Flow Log

47

Amazon Elasticsearch Service との連携

• Elasticsearchクラスタを数分間で起動できるマネージドサービス

• Kibanaが組み込まれており、即座にデータのビジュアライズに着手できる

• すでに東京リージョンでも利用可能

• CloudWatch Logs インテグレーションがとても簡単

CloudWatch Logs Elasticsearch Service

48

CloudWatch Logs と Elasticsearch Service の連携設定

① CloudWatch Logsに蓄積されたログを簡単にAmazon Elasticsearch Service (AES) にインポート

49

CloudWatch Logs と Elasticsearch Service の連携設定

② ログを転送するElasticsearch Service Clusterとログフォーマットを設定

事前に作成されたクラスタから選択

必要に応じフィルターパターンを変更

50

Kibana Dashboard

51

ログのエクスポート• ロググループ単位でCWLに蓄積されたログをS3にエクスポート

$ aws logs create-export-task --task-name "myexport-06152016" --log-group-name ”LOGGROUP NAME" --from 1465484400 --to 1465570800 --destination "cwl-export-logs"

https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/DeveloperGuide/S3ExportTasks.html

52

CloudWatch Logs Subscription

• CloudWatch Logsに収集されたログをリアルタイムにKinesisに転送可能– Kinesis Applicationでログに対してロジックを記述

– CloudWatch Logsには指定した保管期間ログが保管される

– 設定はAWS CLIから実装

CloudWatch Logs KinesisKinesis

Application

Log Agent

EC2

https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/DeveloperGuide/Subscriptions.html

53

awslogs (https://github.com/jorgebastida/awslogs)

https://github.com/jorgebastida/awslogs

Log Group Log Stream Log Record

54

CloudWatch Logs料金体系

5GB

5GB

$0.76 / GB

$0.033 GB / 月

無料枠

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

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

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

インジェクション

アーカイブ

55

• CloudWatch• AWS上で稼働するシステム監視サービス

死活監視 / 性能監視 / キャパシティ監視

• CloudWatch Logs• ログ管理プラットフォーム サービス

EC2上のOS, APPのログ AWSマネジドサービスのログ

• CloudWatch Events• AWS上リソースの状態監視サービス• AWSリソースに対するイベントをトリ

ガーにアクションを実行する機能

Amazon CloudWacth

CloudWatch

AWS上に構築された多くのシステムがPollingモデルで動作- DescribeInstances- DescribeVolumes- ListQueues

57

CloudWatch Events コンポーネント

イベントソース• 対象となるリソースの指定• 処理が実行されるタイミング

選択(状態)

ターゲット• 実行する処理を決定• 処理内容を事前定義(AWS

Lambda) or Bullet-inの利用

ルール• 定義したイベントソースと

ルールの組み合わせ

58

イベントソースの選択

• EC2 Instance states change notification– Pending/Running/Shutting down/Stopped/Stopping/Terminated

• Schedule– 間隔:分(Minites)/時間(Hours)/日(Days)– クーロン表記

• AWS API call– AWS CloudTrailにより発行されたイベント

• AWS console sign-in• Auto Scaling

– Launch Successful/Launch Unsuccessful/Terminate Successful/Terminate Unsuccessful

59

ターゲットの選択

• Lambda Function

• SNS Topic

• Kinesis Stream

• Built-in target– EBSボリュームのスナップショット作成

– EC2インスタンスの再起動

– EC2インスタンスの削除

– EC2インスタンスの停止

60

CloudWatch Event を利用する準備

• User accounts– IAMユーザに “events:*”,

“iam:PassRole” のパーミッションが必要

• AWS CloudTrail logging– AWS API callをイベントソースに指定す

る場合は事前にCloudTrailを有効にする必要あり

• AWS Security Token Service– リージョンのエンドポイントが有効に

なっているかの確認(デフォルトでは有効)。

{

"Version": "2012-10-17",

"Statement": [

{

"Action": [

"events:*",

"iam:PassRole"

],

"Effect": "Allow",

"Resource": "*"

}

]

}

61

CloudWatch Events の第一歩

• CloudWatch Eventの出力ログの理解– ルールの実行ログ(AWS Lambda)はCloudWath Logsに出力される

Lambda Functionサンプル

・インスタンスIDの取得console.log(event.detail['instance-id']);

→ i-4f181ea

・インスタンス状態の取得console.log(event.detail.state);

→ running

・インスタンス状態の取得console.log(event.region);

→ ap-northeast-1

62

CloudWatch Events の利用例* サンプルコードあり

http://blogs.aws.amazon.com/security/post/Tx150Z810KS4ZEC/How-to-Automatically-Tag-Amazon-EC2-Resources-in-Response-to-API-Events

② 特定のタグを付与する ③ 特定のタグの付与がないEC2は起動させない

① 定期的なスケジュール実行

https://speakerdeck.com/tmorinaga/opsjaws-number-4-cloudwatch-events-hands-on

https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/with-scheduled-events.html

63

価格

• 100万カスタムイベントあたり$1.00

ペイロード 64 KB (切り上げ) につき 1 つのカスタムイベントとして請求されます。例えば、ペイロードが 256 KB である 1 つのカスタムイベントは、4 つのカスタムイベントとして請求されます。また、ペイロードが 65 KB である 1 つのカスタムイベントは、2 つのカスタムイベントとして請求されます。

https://aws.amazon.com/cloudwatch/pricing/?nc1=h_ls

Amazon CloudWatch

Metrics Name(CPUUtiliization)

Metrics Name(HealthyHostCount)

Name Space(AWS/EC2)

Name Space(AWS/RDS)

Name Space(AWS/ELB)

Metrics Name(CPUUtiliization)

Dimension(InstanaceId)

Dimension(InstanaceId)

Dimension(InstanaceId)

Sum

Max

Min

Average

Statistic

Metrics Namespace Dimension

Simple Count

Dashboard

CloudWatch Logs

CloudWatch Events

Rules

Filtering

Event Rule

Alert

Action

65

• CloudWatch• AWS上で稼働するシステム監視サービス

死活監視 / 性能監視 / キャパシティ監視

• CloudWatch Logs• ログ管理プラットフォーム サービス

EC2上のOS, APPのログ AWSマネージド サービスのログ

• CloudWatch Events• AWS上リソースの状態監視サービス• AWSリソースに対するイベントをトリ

ガーにアクションを実行する機能

Amazon CloudWacth

CloudWatch

66

クラウド運用

• 標準化• テンプレート

• 監視• ログ管理

• 構成管理、変更管理• コンプライアンス強化

• API管理• 監査

• コスト最適化

• Well Architected

AWSのクラウド運用

AWS運用コミュニティ(OpsJAWS)~クラウドによる、クラウドのための、クラウド運用管理~

AWS上に構築されたシステムの運用管理のベストプラクティスを集約!

@OpsJAWShttps://opsjaws.doorkeeper.jp/http://aws.typepad.com/aws_partner_sa/2015/06/aws-ops.html

68

オンラインセミナー資料の配置場所

• AWS クラウドサービス活用資料集– http://aws.amazon.com/jp/aws-jp-introduction/

• AWS Solutions Architect ブログ– 最新の情報、セミナー中のQ&A等が掲載されています

– http://aws.typepad.com/sajp/

69

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

@awscloud_jp

検索

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

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

70

AWSの導入、お問い合わせのご相談

• AWSクラウド導入に関するご質問、お見積り、資料請求をご希望のお客様は、以下のリンクよりお気軽にご相談くださいhttps://aws.amazon.com/jp/contact-us/aws-sales/

※「AWS 問い合わせ」で検索してください