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.

AWS Black Belt Techシリーズ AWS CloudTrail & CloudWatch Logs

5,885 views

Published on

AWS Black Belt Tech Webinar 2014
(旧マイスターシリーズ)

AWS CloudTrail & CloudWatch Logs

Published in: Technology
  • Be the first to comment

AWS Black Belt Techシリーズ AWS CloudTrail & CloudWatch Logs

  1. 1. AWS CloudTrail & CloudWatch Logs AWS Black Belt Tech Webinar 2014 (旧マイスターシリーズ) アマゾン データ サービス ジャパン株式会社 ソリューションアーキテクト 酒徳 知明 2014.12.10
  2. 2. Agenda • CloudTrailについて – 概要 – CloudTrailの抑えるべきポイント – 利利⽤用ケース • CloudWatch Logsについて – 概要 – CloudWatch Logsの抑えるべきポイント – CloudWatch Logs Tips • まとめ
  3. 3. AWS ロギングサービス CloudTrail CloudWatch Logs
  4. 4. CloudTrail
  5. 5. AWS CloudTrailとは ユーザによ るAPIの発行 各リージョン のAWSリソー スの呼び出し CloudTrail がAPIコー ルをロギン グ ユーザの操 作を管理
  6. 6. CloudTrailの特徴(1/2) • 概要 – AWSアカウントの操作をロギングするサービス – 管理理コンソール、コマンドライン、3rd party等APIコールされる全ての イベントが対象 – S3にロギングデータを保存 – SNS(Simple Notification Service)で通知可能 • ユースケース – コンプライアンス準拠 – リソースのライフサイクル管理理 – 運⽤用上のトラブルシューティング – セキュリティ⾯面の分析
  7. 7. CloudTrailの特徴(2/2) • 2014年年7⽉月より東京リージョン でも利利⽤用可能になりました • CloudTrail ⾃自体は無料料です ※Amazon S3 / SNSの使⽤用料料⾦金金が必要 • サポートリージョン・サービス 数拡⼤大中
  8. 8. CloudTrail サポートサービス数 数スビーサトーポサ7 8 Quarter / Year QUARTER / YEAR 16 21 27 30 25 20 15 10 5 0 Q4 2013 Q1 2014 Q2 2014 Q3 2014 Q4 2013
  9. 9. CloudTrailでロギング可能なサービス EC2VPCRDSRedshift IAMSTSCloudTrail EBS Compute and NetworkingDatabase Deployment and Management Storage and Content Delivery Application ServicesAnalytics ELBAuto Scaling Direct Connect Cloud Front Cloud Formation Elastic Beanstalk Ops Works CloudwatchSQSSimple Workflow KinesisEMR http://docs.aws.amazon.com/awscloudtrail/latest/userguide/ what_is_cloud_trail_supported_services.html ElastiCache Cloud Search Data Pipeline Elastic Transcoder SNS Zocalo
  10. 10. 利利⽤用可能リージョンの拡⼤大
  11. 11. CloudTrailの設定 S3バケットを新規作成するかどうか S3バケット名の⼊入⼒力力 SNS通知の設定をするかどうか 使⽤用するSNS Topicの選択 グローバルサービスのログを取得するか (IAM、STSなど)
  12. 12. ログファイルの保存先 • CloudTrail ログファイルは命名規則の元ある特定のパスで保存され ます
  13. 13. 複数アカウント・リージョン管理理可能 One AWS Account With Resources in Multiple AWS Regions Multiple AWS Accounts with Resources in One AWS Region Multiple AWS Accounts With Resources in Multiple AWS Regions
  14. 14. CloudTrailによりロギングされるイベント API call EventNon-‐‑‒API call Event • サポート サービスから発⾏行行されるAPI v StartInstances v CreateKeyPair • ユーザのサインイン アクティビテイ v AWS マネジメント コンソール v AWS ディスカッション フォー ラム
  15. 15. CloudTrailイベントから取得できる情報 • 誰がAPIコールを発⾏行行したのか • いつAPIコールが発⾏行行されたのか • どのAPIコールが発⾏行行されたのか • どのAWSリソースから発⾏行行されたのか • どのAWSリソースに対して発⾏行行されたのか
  16. 16. 誰がAPIコールを発⾏行行したのか① IAMユーザ “Bob”のユーザ情報 userIdentity“: { accessKeyId:AKEXAMPLE123EJVA, accountId:“123456789012, arn:arn:aws:iam::123456789012:user/Bob, principalId:AIEXAMPLE987ZKLALD3HS, type:IAMUser, userName:“Bob }
  17. 17. 誰がAPIコールを発⾏行行したのか② フェデレーションユーザ “Alice”のユーザ情報 userIdentity: { type:FederatedUser, principalId:123456789012:Alice, arn:arn:aws:sts::123456789012:federated-user/Alice, accountId:123456789012, accessKeyId:ASEXAMPLE1234WTROX8F, sessionIssuer:{ type:IAMUser, accountId:123456789012, userName:“Bob } }
  18. 18. いつAPIコールが発⾏行行されたのか どのAPIコールが発⾏行行されたのか ISO8601フォーマットでの記載 eventTime:2014-‐‑‒11-‐‑‒29T05:58:13Z“ APIコールの名前とターゲット情報を記載 eventSource:signin.amazonaws.com eventName:ConsoleLogin
  19. 19. どのAWSリソースから発⾏行行されたのか リクエスターのIPアドレス、APIが発⾏行行されたリージョン の情報を記載 awsRegion:us-‐‑‒east-‐‑‒1, sourceIPAddress:ec2.amazonaws.com
  20. 20. CloudTrail 活⽤用Tips • 蓄積したCloudTrail JSONをどう扱うのか??? 特定⽂文字列列検索索ログの可視化
  21. 21. CloudTrail + CloudSearch ② ③ ④ CloudTrail Amazon SNS Topics Amazon SQS Queue Amazon ⑦ ElasticBeanstalk Worker Role Amazon S3 Backet Amazon CloudSearch ① ⑤ ⑥ https://medium.com/aws-activate-startup-blog/searching-cloudtrail-logs-easily-with-amazon-cloudsearch-2d716e23efee
  22. 22. CloudTrail + Amazon Lambda CloudTrail Amazon Lambda Amazon S3 Backet Amazon CloudSearch ① ② ③
  23. 23. CloudTrail + ElasticSearch + Kibana ② ③ ④ CloudTrail Amazon SNS Topics Amazon SQS Queue ElasticSearch Amazon S3 Backet ① ⑤ ⑥ ⑦ https://blogs.amazon.com/aws_̲solutions/archive/2014/10/processing-‐‑‒cloudtrail-‐‑‒logs-‐‑‒into-‐‑‒ logstashelasticsearchkibana.html
  24. 24. CloudTrail Processing Libraryの活⽤用 • AWS SDK for Javaに新しく追加された機能 • CloudTrailにログが転送されたタイミングでアクションをとりたい • CloudTrail Processing Libraryを利利⽤用することで、簡単にイベント ドリブン型の操作を実装可能 re:Invent2014で紹介された例例 – Reads messages delivered to SNS/SQS – Downloads and reads S3 log files continuously – Serializes the events into a Plain Old Java Object – Allows you to implement your own custom logic to process – Fault tolerant and supports multi threading
  25. 25. CloudTrail + CloudTrail Processing Library CloudTrail Amazon SNS Topics Amazon SQS Queue http://www.slideshare.net/AmazonWebServices/sec306-turn-on-cloudtrail-log-api- activity-in-your-aws-account-aws-reinvent-2014 Amazon CloudTrail Processing Liibrary Amazon S3 Backet 3rd Party ① ② ③ ④ ⑤ ⑥ ⑦ Amazon DynamoDB Amazon Redshift Amazon CloudWatch Amazon SNS
  26. 26. CloudTrail Processing Library サンプルコード public void process(ListCloudTrailEvent events) { for (CloudTrailEvent event : events) { CloudTrailEventData data = event.getEventData(); if (data.getEventSource().equals(ec2.amazonaws.com) data.getEventName().equals(ModifyVpcAttribute)) { System.out.println(Processing event: + data.getRequestId()); sns.publish(myQueueArn, { + 'requestId'= ' + data.getRequestId() + ', + 'request' = ' + data.getRequestParameters() + ', + 'response' = ' + data.getResponseElements() + ', + 'source' = ' + data.getEventSource() + ', + 'eventName'= ' + data.getEventName() + ' + }); } } }
  27. 27. CloudTrail integration with CloudWatch Logs • CloudTrailのログをCloudWatch Logsに転送できるよう になりました ※ClouWatch Logsが利利⽤用可能なリージョンにのみ対応 CloudWatch LogsのLog Groupを⼊入⼒力力
  28. 28. CloudTrail パートナー ソリューション テクノロジー・パートナーコンサルティング・パートナー
  29. 29. CloudTrailパートナーソリューション
  30. 30. CloudWatch Logs
  31. 31. CloudWatch Logs とは ü 2014年年7⽉月にリリースされたロギング サービス ü OS、アプリケーション等のログアグリ ゲーション ü 3つのリージョンで利利⽤用可能 • ⽶米国東部(バージニア) • ⽶米国⻄西部(オレゴン) • EU(アイルランド)
  32. 32. CloudWatch Logsの特徴 ü OS、アプリケーションログ中のエラー・警告メッセージを監視 ü 閾値を設定することで、SNSとの連携が可能 ü エージェント経由でメッセージをCloudWatch Logsに集約 ü ログデータの保存期間は設定可能(※永久保存も選択可能) http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/WhatIsCloudWatchLogs.html
  33. 33. CloudWatch Logs利利⽤用イメージ Amazon Linux Ubuntu Server WindowsRed Hat Enterprise Linux CloudWatch Logs api call to endpoint アラームSNS
  34. 34. 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に適⽤用されます。
  35. 35. CloudWatch Logsのディレクトリ階層 Log GroupLog StreamLog Event Web Server web001.ap-‐‑‒northeast-‐‑‒1 web002.ap-‐‑‒northeast-‐‑‒1 web003.ap-‐‑‒northeast-‐‑‒1
  36. 36. ログモニタリングイメージ • ログ内容はタイムスタンプとログメッセージ(UTF-‐‑‒8)で構成
  37. 37. ログの保存期間 • CloudWatch Logsはログを永久保存可能
  38. 38. CloudWatch Logs (CloudWatch) 料料⾦金金体系 5GB 5GB $0.50 / GB $0.03 GB / ⽉月 無料料枠 (1カ⽉月あたり) 従量量課⾦金金 インジェクション アーカイブ 10 メトリックス、10 アラーム、および 100 万の API リクエストの無料料利利⽤用枠を準備 http://aws.amazon.com/jp/cloudwatch/pricing/
  39. 39. CloudWatch Logs設定⽅方法
  40. 40. Cloudwatch Logs Agentの設定 • Agentをインストールする際の設定項⽬目 ItemDescription AWS Access Key IDAWSアクセスキーIDの⼊入⼒力力。IAMロール利利⽤用の場合はスキップ。 AWS Secret Access KeyAWSシークレットアクセスキーの⼊入⼒力力。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”
  41. 41. CloudWatch Logs設定⽅方法 (Linux)
  42. 42. CloudWatch Logsの設定(Linux)(1/3) • Linuxの設定は、Pythonスクリプトで設定 [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]: ①Pythonスクリプトのダウンロード・実⾏行行 ②Access Key/Secret Access Keyの⼊入⼒力力 ※IAMロールの利利⽤用も可能 ③Regionの⼊入⼒力力 ④ファイルフォーマットの選択 ⑤モニタリングするログファイルパスの⼊入⼒力力 ⑥Log Groupの⼊入⼒力力
  43. 43. 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の利利⽤用 ・ホスト名の利利⽤用 ・カスタム⼊入⼒力力 ⑧タイムスタンプの表⽰示形式設定 ⑨ログの転送位置の設定 ・ログファイルの初めから転送 ・次回発⽣生するログから転送
  44. 44. CloudWatch Logsの設定(Linux)(3/3) Log GroupLog StreamLog Event Linux Syslog Groupi-‐‑‒170ad10e (instance-‐‑‒id) /var/log/messagesファ イルのログエントリー
  45. 45. CloudWatch Logs設定⽅方法 (Windows)
  46. 46. CloudWatch Logsの設定(Windows)(1/3) • Windows Agentの設定はEC2Configから⾏行行います – Amazon Windows EC2Config Service • 2.2.5 (最新2.2.12)以降降よりCloudWatch Logsプラグインが追加され ました。 • 最新のEC2 Configをご利利⽤用ください。 • 設定終了了後にWindows ServicesからEC2 Config Serviceの再起動が 必要になります。 – EC2Config Service Update • https://aws.amazon.com/developertools/5562082477397515
  47. 47. CloudWatch Logsの設定(Windows)(2/3) 2. EC2Configの起動 チェックを⼊入れるだけで利利⽤用可能 1. クレデンシャルの設定 CloudWatchLogs-‐‑‒role アクションの指定 特定リソースへのアクセスを許可 http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/QuickStartEC2Instance.html
  48. 48. CloudWatch Logsの設定(Windows)(3/3) • CWL JSON設定ファイルの編集 ü “AWS.EC2.Windows.CloudWatch.json“ファイルを編集 ※“C:Program FilesAmazonEc2ConfigServiceSettings”に配置 ü 収集するログを設定 • Windowsイベントログ • Event Tracing for Windows • テキストベース ログ • IISログ • パフォーマンスカウンタ
  49. 49. Cloudwatch logs Agent • Agent ログディレクトリ – Linux: /var/log/awslogs.log, /var/log/awslogs-‐‑‒agent-‐‑‒setup.log – Windows: C:Program FilesAmazonEc2ConfigServiceLogsEc2ConfigLog.txt • Agent Requirement • Python version 2.6, 2.7, 3.0, or 3.3 • Amazon Linux version 2014.03.02 • Ubuntu Server version 12.04, or 14.04 • CentOS version 6, 6.3, 6.4, or 6.5 • Red Hat Enterprise Linux (RHEL) version 6.5 or 7.0 • Windows http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/CWL_GettingStarted.html
  50. 50. Cloudwatch Logs CLI の利利⽤用 • 利利⽤用可能なCloudWatch Logs CLIコマンド 作成関連 • create-‐‑‒log-‐‑‒group / create-‐‑‒log-‐‑‒stream 削除関連 • delete-‐‑‒log-‐‑‒group / delete-‐‑‒log-‐‑‒stream /delete-‐‑‒metric-‐‑‒filter / delete-‐‑‒retention-‐‑‒policy 表⽰示関連 • describe-‐‑‒log-‐‑‒groups / describe-‐‑‒log-‐‑‒streams / describe-‐‑‒metric-‐‑‒filters データ転送関連 • get-‐‑‒log-‐‑‒events • put-‐‑‒log-‐‑‒events / put-‐‑‒metric-‐‑‒filter / put-‐‑‒retention-‐‑‒policy • test-‐‑‒metric-‐‑‒filter http://docs.aws.amazon.com/cli/latest/reference/logs/index.html
  51. 51. 蓄積されたログの取得⽅方法 • CLI, APIを利利⽤用しログの取得が可能 http://docs.aws.amazon.com/cli/latest/reference/logs/index.html { nextForwardToken: f/ 313612894602584591283116977839064573320575 05625559597056, events: [ { ingestionTime: 1406284504094, timestamp: 1406284498741, message: Jul 24 08:45:19 ip-10-0-10-193 useradd[1435]: add 'ec2-user' to group 'wheel' }, { ingestionTime: 1406284504094, timestamp: 1406284498741, message: Jul 24 08:45:19 ip-10-0-10-193 useradd[1435]: add 'ec2-user' to shadow group 'wheel' }, JSON形式で出⼒力力され る
  52. 52. CloudWatch logs Metric Filter(1/3) • ログイベントから特定の⽂文字列列のフィルタリングが可能
  53. 53. CloudWatch Logs Metric Filter(2/3) • 特定⽂文字列列の出現回数によりアラーム作成が可能 → “error”という⽂文字列列が3回以上出現するとアラーム上げる “error”という⽂文字列列を監視 “error”という⽂文字列列の出現 回数
  54. 54. CloudWatch Logs Metric Filter(3/3) • Metric Filterからアラーム作成、SNS連携が可能 Metric FilterをトリガーにしたCloudWatch アラームの作成が可能
  55. 55. CloudTrail integration with CloudWatch Logs • CloudTrailのログをCloudWatch Logsに転送できるよう になりました ログ連携 CloudTrail CloudWatc h Logs CloudWatch LogsのLog Groupを⼊入⼒力力
  56. 56. CloudTrail JSONを統合管理理
  57. 57. CloudWatch Logs Tips
  58. 58. 転送できるログメッセージの⻑⾧長さ • CWL Agentが1度度にプッシュできるログレコードには制限 があります v 1 Log Event の最⼤大サイズは 32KBです。 →32KBを超えると、ログがトランケートされてしまいます。 1,000,000 byteのメッセージを出⼒力力 #!/usr/bin/ruby str = a*1000000 open(/var/log/messages, a) {|f| f.write str} 2014-10-18 10:29:28,770 - cwlogs.push - WARNING - 31955 - Thread-6 – Truncate event: {'source_id': '4c0bbd10e46d9c06707aada0cd3e2cd8', 'timestamp': None, 'start_position': 748331L, 'end_position': 1748331L}, reason: single event exceeds 32KB limit. /var/log/awslogs/log
  59. 59. プライベートセグメントからも通信可能 • NATインスタンス経由でメッセージの転送が可能です。 プライベート サブネット NATインスタンス パブリック サブネット
  60. 60. CloudWatch Logs内のデータの移⾏行行 • API/CLIを利利⽤用することでデータの移⾏行行が可能です。 v GetLogEvents, PutLogEvents を使えば API 経由で移⾏行行が可能 EC2 インスタンス CloudWatch Logs バージニア CloudWatch Logs オレゴン API : get-‐‑‒log-‐‑‒evensAPI : put-‐‑‒log-‐‑‒evens http://docs.aws.amazon.com/cli/latest/reference/logs/index.html
  61. 61. ログがバッチ送信される条件 • 最初の Log Event が追加されてから buffer_̲duration が経過した場合 • 32KBを超える Log Event が追加された場合 • 1000個の Log Event が蓄積された場合
  62. 62. CloudWatch Logs の制約 • 1AWSアカウントあたり、Log Groupは最⼤大500作成可能 • 1 Log Groupあたり、100のMetric Filterを設定可能 • 1 Log Streamあたり、秒間最⼤大5PutLogEvents API リクエ ストをコール可能 • 1AWSアカウントあたり、秒間最⼤大10GetLogEvents APIリ クエストをコール可能
  63. 63. まとめ • CloudTrailを使うことで、AWS環境の操作をログするこ とができます。 • CloudWatch Logsを使うことで、OS、アプリケーション のログアグリゲーションが可能になりました。取得した ログはCloudWatch Logs内に⻑⾧長期間保存可能です。 • CloudTrailとCloudWatch Logsを連携させることでAWS 環境のログを⼀一元管理理することが可能になりました。
  64. 64. QA
  65. 65. Webinar資料料の配置場所 • AWS クラウドサービス活⽤用資料料集 – http://aws.amazon.com/jp/aws-‐‑‒jp-‐‑‒introduction/

×