Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

20170725 black belt_monitoring_on_aws

7,694 views

Published on

20170725 black belt_monitoring_on_aws

Published in: Technology
  • Be the first to comment

20170725 black belt_monitoring_on_aws

  1. 1. Monitoring on AWS Tomoaki Sakatoku Solutions Architect Amazon Web Service Japan
  2. 2. Who I am… 酒徳 知明 (Tomoaki Sakatoku) Partner Solutions Architect • Ecosystem • DevSecOps
  3. 3. アジェンダ • Cloud Monitoring の考え方 • Cloud Monitoring を支える サービス インテグレーション • Cloud (AWS) ならではの Monitoringの考慮点 • AWSサービス 単体の説明 お話すること お話しないこと
  4. 4. AWSにおけるクラウド運用プロセス クラウド運用 • 標準化 • テンプレート • 監視 • ログ管理 • 構成管理 • 変更管理 • API管理 • コスト最適化 • Well Architected
  5. 5. 運用監視系AWSサービス 単体の説明 https://d0.awsstatic.com/events /jp/2017/summit/slide/D4T3- 5.pdf https://d0.awsstatic.com/events /jp/2017/summit/slide/D4T3- 6.pdf https://d0.awsstatic.com/events /jp/2017/summit/slide/D3T1- 1.pdf
  6. 6. こんなことが起きないように、”モニタリング”
  7. 7. 異常値・閾値のベースライン定義 • Metrics-Based • 静的/スタティック (閾値ベー スライン) • 動的/ダイナミック (異常検知) • Event-Based • イベント ドリブン • Rule-Based • セキュリティ • コンプライアンス Metrics-Based Event-Based Rule-Based
  8. 8. Monitoring on AWS - Metrics-Based - - Event-Based -
  9. 9. • CloudWatch • AWS上で稼働するシステム監視サービス  死活監視 / 性能監視 / キャパシティ監視 • CloudWatch Logs • ログ管理プラットフォーム サービス  EC2上のOS, APPのログ  AWSマネジドサービスのログ • CloudWatch Events • AWS上リソースの状態監視サービス • AWSリソースに対するイベントをトリ ガーにアクションを実行する機能 Amazon Cloudwacth CloudWatch
  10. 10. Cloudwatch を使ったモニタリング AutoScaling EC2 Action モニタリング CPUUtilization DiskReadBytes / DiskReadOps DiskWriteBytes / DiskWriteOps NetworkIn / NetworkOut NetworkPacketsIn / NetworkPacketsOut StatusCheckFailed StatusCheckFailed_Instance StatusCheckFailed_System EC2 CloudWatch Custom Metric Memory Free / Filesystem Free アクション Notification アラーム http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html
  11. 11. CloudwatchがサポートするAWSサービス http://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/DeveloperGuide/supported_services.html AWS サービス 名前空間 Amazon API Gateway AWS/ApiGateway 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 AWS Database Migration Service AWS/DMS Amazon DynamoDB AWS/DynamoDB Amazon EC2 AWS/EC2 Amazon EC2 Container Service AWS/ECS AWS Elastic Beanstalk AWS/ElasticBeanstalk Amazon Elastic Block Store AWS/EBS Amazon Elastic File System AWS/EFS Elastic Load Balancing AWS/ELB (Classic Load Balancers) Elastic Load Balancing AWS/ApplicationELB (Application Load Balancers) Amazon Elastic Transcoder AWS/ElasticTranscoder Amazon ElastiCache AWS/ElastiCache Amazon Elasticsearch Service AWS/ES AWS サービス 名前空間 Amazon EMR AWS/ElasticMapReduce AWS IoT AWS/IoT AWS Key Management Service AWS/KMS Amazon Kinesis Analytics AWS/KinesisAnalytics Amazon Kinesis Firehose AWS/Firehose Amazon Kinesis Streams AWS/Kinesis AWS Lambda AWS/Lambda Amazon Machine Learning AWS/ML AWS OpsWorks AWS/OpsWorks Amazon Polly AWS/Polly Amazon Redshift AWS/Redshift Amazon Relational Database Service AWS/RDS Amazon Route 53 AWS/Route53 AWS Shield Advanced AWS/DDoSProtection Amazon Simple Email Service AWS/SES 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 AS OF 2017/06
  12. 12. 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
  13. 13. 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 Actions CloudWatch Logs CloudWatch Events Rules Filtering Event Rule CloudWatch
  14. 14. CloudWatch Update - Data Retention - • CloudWatchのメトリックス保存期間が大幅拡張  今まで14日だったCloudWatchメトリックスの保存期間 が、最大15ヶ月まで拡張  拡張に関する追加費用はなし(無料)  すでに3ヶ月前のメトリックスが利用可能  データ取得間隔により、保持期間が異なるので注意 • 1分間隔ので取得されたデータ: 15日間分利用可能 • 5分間隔ので取得されたデータ: 63日間分利用可能 • 1時間隔ので取得されたデータ: 455日間分利用可能 https://aws.amazon.com/about-aws/whats-new/2016/11/cloudwatch-extends-metrics-retention-and-new-user-interface/
  15. 15. CloudWatch Update - Network Monitoring • Direct Connect 監視メトリックスが追加 • ConnectionState • ConnectionBpsEgress/ConnectionBpsIngress • ConnectionPpsEgress/ConnectionPpsIngress http://docs.aws.amazon.com/ja_jp/directconnect/latest/UserGuide/monitoring-cloudwatch.html • VPN Tunnel 監視メトリックスが追加 • TunnelState: VPNトンネルの状態。0はDOWN, 1はUP • TunnelDataIn: VPNトンネル経由のIn-Packetデータ量(単位: Byte) *データ量は暗号化後のサイズ • TunnelDataOut: VPNトンネル経由のOut-Packetデータ量(単位: Byte) *データ量は暗号化前のサイズ http://docs.aws.amazon.com/directconnect/latest/UserGuide/monitoring-cloudwatch.html http://docs.aws.amazon.com/solutions/latest/vpn-monitor/cloudwatch.html
  16. 16. CloudWatch Dashboard - UI Experience -
  17. 17. AWS CloudTrail • AWSユーザの操作をロギングする サービス • ルートアカウント/IAMユーザのオペレー ションをトラッキング • ロギングデータはS3に保存される • CloudTrail ログファイルは暗号化され、 gz形式でS3に保存(SSE) • KMSを使った暗号化もサポート • CloudTrail 自体は無料 • Amazon S3/SNSの使用料金が必要 CloudTrail
  18. 18. CloudTrail API lookup APIコールはAWSマネジメント コンソールから確認可能 ※ AWSマネジメントコンソールから確認できるのは直近の7日間のログのみ
  19. 19. CloudTrail API サンプル (RunInstance) AMI ID セキュリティ グループ Instance ID キーペアー サブネット ENI ID VPC ID
  20. 20. CloudWatch Dashboard - Log Integration -
  21. 21. CloudWatch Dashboard - Log Integration - 詳細は、JSONから確認可能
  22. 22. ベースライン閾値の設定プラクティス 展開されるフィルタリング・ルール • アカウント ルート ログインの監視 • 認証失敗の監視 • 特定インスタンスタイプのEC2が作成 されたかの監視 • セキュリティグループ変更の監視 • 大きめのインスタンス起動の監視 • IAM ポリシーの変更の監視 http://aws.typepad.com/aws_japan/2015/03/cloudtrail-integration-with-cloudwatch-in-four-more-regions.html CloudTrail CloudWatch Logs
  23. 23. ユースケース: CloudTrail Data Events for S3 あるプライベート バケットにアップされたS3オブジェクトは 公開 (Make Public) させない 1. ユーザがオブジェクトをS3にput-object 2. CloudTrail がオブジェクトの追加を検知し、Lambda FunctionをInvoke 3. Lambdaがオブジェクト属性を確認し、必要に応じて修正 S3 CloudWatch Events LambdaCloudTrail
  24. 24. Code Highlight - CloudTrail Data Events for S3 ① JSON の展開 ② オブジェクト属性の取得 ③ オブジェクト属性の変更
  25. 25. ユースケース: CloudTrail + CloudWatch Events CloudTrail OFF CloudWatch Events Lambda CloudTrail ON Notification Loggingdevday-cloudtrail user User IAM Role/Policy Userhttp://github.com/awslabs/aws-security-automation
  26. 26. Monitoring on AWS - Rule-Based -
  27. 27. • AWSリソースのレポジトリ情報から、 リソースの変更履歴、構成変更を管理 • 構成情報は定期的にスナップショットとして S3に保存 • 必要に応じSNSを使った通知も可能 • 構成情報を元に、現在のシステムがある べき状態になっているかを評価 • 評価基準にはAWSが適用するルール、もし くは独自のルールを適用 AWS Config / Config Rules AWS Config AWS Config Rules
  28. 28. AWS Config Rulesによるポリシー適合の評価 AWS Managed Rules • AWS により定義・提供される • AWS により運用される • 必要最低限のベーシック・ルール Custom Rules • 自分でAWS Lambdaをベースにルールを作成可能 • 管理自体は作成者 (自分) で実施
  29. 29. AWS Config Managed Rules AS OF 2017/07 approved-amis-by-id approved-amis-by-tag desired-instance-tenancy desired-instance-type ebs-optimized-instance ec2-instance-detailed-monitoring- enabled ec2-instances-in-vpc ec2-managedinstance-applications- blacklisted ec2-managedinstance-applications- required ec2-managedinstance-inventory- blacklisted ec2-managedinstance-platform-check ec2-volume-inuse-check eip-attached encrypted-volumes restricted-common-ports restricted-ssh db-instance-backup-enabled dynamodb-throughput-limit-check rds-multi-az-support rds-storage-encrypted redshift-cluster-configuration-check redshift-cluster-maintenancesettings- check cloudtrail-enabled cloudformation-stack-notification- check cloudwatch-alarm-action-check cloudwatch-alarm-resource-check cloudwatch-alarm-settings-check required-tags acm-certificate-expiration-check iam-password-policy iam-user-group-membership-check iam-user-no-policies-check root-account-mfa-enabled コンピュート データベース マネージメント ツール セキュリティ&コンプライアンスストレージ s3-bucket-logging-enabled s3-bucket-ssl-requests-only s3-bucket-versioning-enabled
  30. 30. AWS Config Customer Rules https://github.com/awslabs/aws-config-rules/blob/master/RULES.md • ルールをカスタマイズし、環境にあったベースラインを作成 • AWS Lambda ベース • AWS Config Rules Repository • GitHub(awslabs/aws-config-rules) • IAMポリシー関連 • IAM鍵のローテーション • MFAの有効化 • ルートアカウントの無効化 • VPC Flow Logの有効化 • タグフォーマットの制御
  31. 31. AWS Config – Management Console
  32. 32. Trusted Advisorの活用 ご利用実績を元に、自動的にコスト最適化提案をするツール • 使用率の低いEC2, 利用頻度の低いEBS, 関連付けれれていないEIPな どを指摘 • ご利用にはAWSサポート(ビジネス)が必要
  33. 33. Trusted Advisorで確認できる項目 - 概要 カテゴリ ヘルスチェックチェックする内容 例 コスト最適化 コスト最適化の可能性がある項目に対する推奨 事項 使用率の低いEC2インスタンス 利用頻度の低いEBSボリューム な ど セキュリティ お客様のシステムのセキュリティ弱体化につな がる恐れのある設定 セキュリティグループ(無制限アク セス)、MFA設定 など 耐障害性 お客様システムのアプリケーションの可用性や 冗長性を高めるためのベストプラクティスから の推奨事項 RDSのマルチAZ構成、EBSスナッ プショット、ELBのクロスゾーン設 定 など パフォーマンスの向上 アプリケーションの拡張性や応答性の改善、過 剰なキャパシティのチェックなどパフォーマン ス最適化のための推奨事項 サービス制限、高負荷なEC2インス タンス、CloudFrontのキャッシュ ヒット率チェック など
  34. 34. Trusted Advisorで確認できる項目 - 詳細 コスト削減 セキュリティ 耐障害性 パフォーマンス • 使用率の低いAmazon EC2 Instances • アイドル状態の Load Balancer • 利用頻度の低いAmazon EBSボリューム • 関連付けられていない Elastic IP Address • Amazon RDSアイドル状態のDBインスタ ンス • Amazon Route 53 レイテンシーリソー スレコードセット • EC2 リザーブドインスタンスの最適化 • Amazon EC2 リザーブドインスタンスの リース有効期限切れ • 使用率の低い Amazon Redshift クラス ター • セキュリティグループ- 無制限アクセス※ • IAM アクセスキーローテーション • セキュリティグループ - 開かれたポート • IAM パスワードポリシー • ELB リスナーのセキュリティ • ELB セキュリティグループ • IAM の使用※ • Amazon S3バケット許可 • ルートアカウントのMFA※ • Amazon RDS セキュリティグループのア クセスリスク • Amazon Route 53 MX リソースレコード セットと Sender Policy Framework • AWS CloudTrail ロギング • IAM 証明書ストアの CloudFront 独自 SSL 証明書 • オリジンサーバーの CloudFront SSL 証 明書 • 公開されたアクセスキー • Amazon EBS スナップショット • Amazon EC2 アベイラビリティゾーンの バランス • Amazon RDS バックアップ • Load Balancerの最適化 • VPNトンネルの冗長化 • Amazon RDS Multi-AZ • Auto Scaling Group ヘルスチェック • Amazon S3 バケット ロギング • Amazon Route 53 ネームサーバ権限委 譲 • Amazon Route 53 高 TTL リソースレ コードセット • ELB クロスゾーン負荷分散 • ELB Connection Draining • Amazon S3 バケットバージョニング • AWS Direct Connect 仮想インターフェ イスの冗長性 • Auto Scaling グループ リソース • Amazon Route 53 フェイルオーバーリ ソースレコードセット • Amazon Route 53 削除されたヘルス チェック • AWS Direct Connect 接続の冗長性 • AWS Direct Connect ロケーションの冗 長性 • Amazon Aurora DB インスタンスアクセ シビリティ • EC2 Windows インスタンスの PV ドライ バーバージョン • EC2 Windows インスタンス用の EC2Config サービス • Amazon Route 53 エイリアスリソース レコードセット • 使用率の高いAmazon EC2インスタンス • サービス制限※ • Amazon EBS プロビジョンド IOPS ボ リューム アタッチ設定 • EC2 セキュリティグループルールの増大 • EC2 インスタンスセキュリティグループ ルールの増大 • 利用率が高すぎる Amazon EBS マグネ ティックボリューム • コンテンツ配信の最適化 (CloudFront) • CloudFront ヘッダー転送とキャッシュ ヒット率 • Amazon EC2 から EBS スループット最 適化 • CloudFront 代替ドメイン名 ※赤字のものはすべてのお客様が利用可能。それ以外のチェック項目はビジネスサポート以上のご契約が必要。
  35. 35. Trusted Advisor - S3 Bucket Permission
  36. 36. 活用できるベースライン設定 AWS Trusted Advisor AWS Config Managed Rules AWS Config Custom Rules with remediation CloudWatch Events with Lambda rules Lambda code with various triggers カスタマイズAWSから提供
  37. 37. AWSならでは の モニタリング
  38. 38. Billing Monitoring • 課金状況をCloudWatchで監視 • 一定金額を超えるとアラームメール通知が可能
  39. 39. Event Monitoring (メンテナンス イベント)
  40. 40. AWS のステータス - Service Health Dashboard http://status.aws.amazon.com/ サービスのステータスを以下のアイコンで表現 • 提供機能 • サービス(Region)単位でステータス表示 • RSSを利用して更新をチェックすることも可 能 • 過去の稼働情報も提供 • 注意点 • 必ずしも更新はリアルタイムではない • 発生した障害の影響範囲によっては必ずしも ステータスが更新されない
  41. 41. Personal Health Dashboardでメンテナンスを知る • アカウント固有のリソースに対するメンテナンス情報や影響を受ける可能 性のあるAWSの大規模障害の情報を提供 • CloudWatch Eventsと連携してイベントに対するアクションを自動実行す ることも可能
  42. 42. AWS Health API でプログラムからアクセスする • Personal Health Dashboard に表示される通知を機械的に取得するAPI ~$ aws health describe-event-details --event-arns “arn:aws:health:us-east-2::event/AWS_EC2_OPERATIONAL_ISSUE_1493167712” <= イベント(≒通知)毎にARNが割り振られる { "failedSet": [], "successfulSet": [ { "event": { "lastUpdatedTime": 1493170667.273, "service": "EC2", "eventTypeCode": "AWS_EC2_OPERATIONAL_ISSUE", "startTime": 1493167712.0, "eventTypeCategory": "issue", "endTime": 1493170596.0, "region": "us-east-2", "arn": "arn:aws:health:us-east-2::event/AWS_EC2_OPERATIONAL_ISSUE_1493167712", "statusCode": "closed" }, "eventDescription": { “latestDescription”: “[RESOLVED] EBS Volume (省略)The issue has been resolved and the service is operating normally." }
  43. 43. AWS Health API の活用 - AWS Health Tools リポジトリ • AWS Health (Personal Health Dashboard)を活用して通知対応など を自動化するためのコミュニティ ベースのツールレポジトリ • 利用可能なサンプル (2017/5) • SMS Notifier • SNS Topic Publisher • Slack Notifier • Instance Store Degraded Drive • Disable AWS CodePipeline Stage Transition https://github.com/aws/aws-health-tools
  44. 44. AWS Health Slack Notifier • AWS Healthが生成するCloudWatch Eventsを利用してLambdaを実行し • SlackのWebHookに情報をパブリッシュ • メンテナンスイベントの取りこぼし防止に役立つ AWS Health CloudWatch Events Lambda Function https://github.com/aws/aws-health-tools/tree/master/slack-notifier Slack
  45. 45. AWS Limit Monitor https://aws.amazon.com/jp/answers/account-management/limit-monitor/ Trusted Advisor や各サービスが提供するAPIを使用してLimitの設定値と現在 の消費状況を自動的に監視し、必要に応じて通知するソリューションを CloudFormationのテンプレートとして提供
  46. 46. 異常値・閾値の設定 • Metrics-Based • 静的/スタティック (閾値ベー スライン) • 動的/ダイナミック (異常検知) • Event-Based • イベント ドリブン • Rule-Based • セキュリティ • コンプライアンス Metrics-Based Event-Based Rule-Based
  47. 47. 活用できるベースライン設定 AWS Trusted Advisor AWS Config Managed Rules AWS Config Custom Rules with remediation CloudWatch Events with Lambda rules Lambda code with various triggers カスタマイズAWSから提供
  48. 48. … Multi-Account Strategy
  49. 49. 運用 構成変更時の影響 範囲を小さくし、 他の組織を気にす ることなく自身固 有の環境を利用し たい 複数のAWSアカウントを用いる理由は? AWSアカウントを分割して運用するようになる主な理由: 組織 リソースの操作権 限を特定の業務ユ ニット(LOB)に 委譲し、その中で より自由にAWSプ ラットフォームを 活用したい ガバナンス 課金 課金に関する可視 性、責任、及びア カウントごとのコ ントロールを行い たい 例)LOBごとに課 金を明確に分けた いなど セキュリティ及び ガバナンス上の理 由から開発環境、 テスト環境、本番 環境でアカウント を分割したい 例)PCI準拠のワー クロードなど
  50. 50. セキュリティオペレーション用アカウント • 他のアカウントからの書き込みアクセスのみ を許可する、集中管理型のアカウント • 他のAWSアカウントからのSIEM(Security Information and Event Management)ロギ ング (例えばCloudTrail、AWS Configなど) • 他のアカウント全体のログのセキュリティ分 析や必要なリスク対応を担う • ログ暗号化のためのKMSキー管理 • セキュリティ調査、監査業務のためのクロス アカウントアクセス セキュリティ用 IAMロール CloudTrail & Config セキュリティ用 IAMロール CloudTrail & Config セキュリティ用 アカウント CloudTrailは 全リージョンで有効化
  51. 51. VPC Flow Logs を集約管理 - Multi-Account - • 複数のAWS アカウントのVPC Flow Logsをセントラルアカウン トに統合 • マルチ アカウントでのログ管理 https://aws.amazon.com/jp/blogs/security/how-to-facilitate-data-analysis-and-fulfill-security-requirements- by-using-centralized-flow-log-data/ aws logs put-subscription-filter ¥ --log-group-name ”BlackBelt" ¥ --filter-name “AllTraffic" ¥ --filter-pattern "" ¥ --destination-arn "arn:aws:kinesis:us-east-1:123456789 --role-arn "arn:aws:iam::123456789012:role/CWLtoKin
  52. 52. ベースライン デプロイメント - Multi-Account- https://aws.amazon.com/jp/blogs/devops/aws- service-catalog-sync-code/ https://aws.amazon.com/jp/blogs/devops/aws-building- a-secure-cross-account-continuous-delivery-pipeline/

×