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