SlideShare a Scribd company logo
失敗から学ぶ
AWSの監視
abema
自己紹介
• abema
• 所属/担当
• 株式会社オプト
仙台テクノロジー開発部
• インフラエンジニア
• プライベート
• ネットゲーム(FF14)
今日話すこと
今日はAWS(の一部)の
監視について話します
AWSの一部
AWSのサービス
Amazon EC2
Amazon Elastic Container
Service
AWS Lambda
AWS Batch
AWS Elastic Beanstalk
Amazon RDS
Amazon Redshift
Amazon VPC
AWS CloudTrail
Amazon Elasticsearch
Service
Amazon Aurora
Amazon Simple
Notification Service
Amazon Simple Queue
Service
AWS Glue
Amazon Athena
いっぱい
(これでも一部ですが)
なので以下3つだけ
AWS Lambda AWS BatchAWS Elastic Beanstalk
3秒で解説する
1秒でわかるAWS Lambda
• インフラの整備が不要
• 値を受け取って関数だけ実行する
• node.js, python, Goなどをサポート
• 実態はAWSの余剰リソースの活用
1秒でわかるElastic Beanstalk
• コードをデプロイするだけでWebアプリケー
ションを構築できる
• インフラなど必要なサービス群をパッケージ
ングしたもの
• 構築時は意識しなくてよいがサーバレスで
はない
1秒でわかるAWS Batch
• コンテナ化したバッチジョブのインフラ環境
を、バッチのリクエスト契機で動的に用意し
てくれるサービス
• ジョブスケジュール機能はない
ついでに
1秒でわかるCloudWatch
• 監視するやつ。以下4つの機能がある
• CloudWatch Metrics
• メトリクスを収集
• CloudWatch Alarm
• メトリクスの閾値で通知
• CloudWatch Logs
• ログ貯める
• CloudWatch Event
• イベントに引っ掛けて
何かトリガする
• Cron
一般的なAWSの監視
• やり方はいろいろあると思いますが、今回は基本的に
• CloudWatchメトリクスにメトリクスをためる
• しきい値を超えた時にアラームを出す
• という監視のやり方をベースにお話します
Elastic Beanstalk
• Cloudwatchに統合されていてデフォルトである程度のメ
トリクスは収集されている
• ElasticBeanstalkの管理コンソールにグラフ化したメトリ
クスが表示されている
参考
• デフォルトで取得可能なメトリクス
• CPU使用率/トラフィック
• etc ...
• デフォルトで取得できないメトリクス
• 使用メモリ
• 使用ストレージ
失敗
メモリ監視できなくて
out of memory
どうしたか
• メモリ監視のためのebextentions(Beanstalkのインフラ
設定をコード化する機能)の設定を追加
• 設定例がAWS公式で公開されている
https://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/customize-containers-
cw.html
• (いや、そんなことするならデフォルトで取得するよ
うにしてくれないかな…)
いま
AWS Batch
• Batchのコンソール上で実行したジョブの状態が監視でき
る
• 待ち/実行中/成功/失敗 など
失敗
実行待ちのジョブが
大量に溜まっていたのを
検知できなかった
なぜ
• 実行中・待ちなどのジョブの状態はAWS Batchのコンソ
ール画面(またはAPI)でしか取得できない
• CloudWatch メトリクスには収集されていないため
• 失敗ジョブが発生したら通知
• 待ち状態のジョブが一定数溜まったら通知
• などができない
• (というかロクに監視機能がない)
どうしたか
• AWS batchそのものにCloudwatchと統合された機能がな
いので…
• あきらめて定期的にAWS Batchの状態をAPIで取得して、
CloudWatchメトリクスに送るLambdaを書いている
Lambda
• タイトル詐欺になるが
失敗らしい失敗はまだしていないけど…
• 課題はあるので
• Cloudwatchに統合されていてデフォルトである程度のメ
トリクスは収集されている
• Lambdaの管理コンソールにグラフ化したメトリクスが表
示されている
参考
呼び出し 実行時間 エラー率
スロットリング
(AWS用語:
API呼び出し数の上限)
kinesisの呼び出しなどに使う
(よくわかってない)
DeadLetterを
呼び出しできなかった数
• デフォルトで取得可能なメトリクス
• 失敗ジョブ数
• 実行時間
• デフォルトで取得できないメトリクス
• 使用メモリ
使用メモリ
なんで収集しないの?
• Lambdaは実行時間✕関数に設定したメモリで課金される
• 関数の使用メモリのメトリクスは取得してくれない
• 実際の使用メモリに対して大きすぎるメモリを設定し
てしまうなどして無駄なコストが掛かる
• (微々たるものといえばそうですが)
【参考】Lambdaの料金
memory
(MB)
無料利用枠
(秒)
100 ミリ秒ごとの価格(USD)
128 3,200,000 0.000000208
192 2,133,333 0.000000313
256 1,600,000 0.000000417
320 1,280,000 0.000000521
384 1,066,667 0.000000625
448 914,286 0.000000729
512 800,000 0.000000834
ピンと来ないと思うので…
128MBのLambdaが丸一日ずっと実行状態になるようなバッチで(無いと思うが)
0.000000208 * 10 * 60 * 60 * 24 = 0.18USD(約20円)
512MBだとその4倍で 0.72USD(80円)
• Lambda実行後のCloudWatch Logsのログストリーム末尾に以下
が表示される
• Lambdaで定期的にCloudWatch LogsをAPIで取得し、上のよう
な文字列で引っ掛けてメモリ使用率を取得、メトリクスに投げる
• ただし、メモリに余裕があるからと行って無邪気に使用メモ
リを下げると痛い目にあうかも…
• Lambdaはメモリの割り当て量に対してCPU能力が決まるの
で…
REPORT RequestId: 9f74603f-229e-4f6d-a307-7a0fcbd2d62b
Duration: 268.89 ms Billed Duration: 300 ms
Memory Size: 128 MB Max Memory Used: 68 MB
え、CPUも監視したい? それはどうやって実装するのか私にはさっぱり…
CPUのパワー不足により実行時間が相対的に伸びると思うので、そこで監視でしょうか
最近後悔していること
監視設定系の管理
• 通知用Lambda
• SNS(simple notification service)に飛んできたCloudWatchア
ラームをSlackに投げたりするのにLambdaを使っている
• Slackになげるやつは文字列整形のために通知内容ごとに個
々に関数を書いているのですが、数が増えてきてしっちゃ
かめっちゃかになりつつある
• 監視対象AWSのサービスはもとより、CloudWatch
Alarmから来るかCloudWatchEventで来るかなどで
通知のjsonスキーマが違うので、細かくやってしまった
• CloudWatchイベント
• Lambdaを定期実行したり、条件で引っ掛けて起動するのに使
っているのだが、これも数が増えてきてしっちゃかめっちゃか
になっている
• ServerlessFrameworkなどでLambdaに関連付けられる形でコ
ード化されているのがほとんどなんですが、AWSコンソール
上でパッと見たときにはカオス感がある
• コンソール上ではどのイベントが何に紐付いてるかわかりに
くい
• タグ付けもできないので、どう管理するとすっきりするのか…
*タグ:AWSには各リソースに"タグ"をつけることで
リソースをグルーピングして表示したりする機能があります
• CloudWatchアラーム
• CloudWatchイベントと同じ状態
• ただこちらはメトリクスに対して手でいろいろ設定して
いるので、コード化もされていない
• SNSに投げるところまでは手で設定してしまっている
• やはりしっちゃかめっちゃか
*SNS:Simple Notification Service
AWSの通知サービス。メール通知やlambdaの呼び出し
まとめ
• LambdaやElasticBeanstalkではマネージドな監視基盤が提
供されているが、メモリ監視だけは自前でどうにかしな
いといけない
• Batchは監視する機能が何も用意されていない
• CloudWatchアラーム・イベントなどの設定をどう管理し
よう
ご清聴ありがとうござ
いました

More Related Content

PDF
20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...
PDF
20180509 AWS Black Belt Online Seminar Amazon GuardDuty
PDF
AWS Black Belt Techシリーズ Amazon VPC
PDF
20180704(20190520 Renewed) AWS Black Belt Online Seminar Amazon Elastic File ...
PDF
20190522 AWS Black Belt Online Seminar AWS Step Functions
PDF
Amazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデート
PDF
20190821 AWS Black Belt Online Seminar AWS AppSync
PDF
20191218 AWS Black Belt Online Seminar AWSのマネジメント&ガバナンス サービスアップデート
20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...
20180509 AWS Black Belt Online Seminar Amazon GuardDuty
AWS Black Belt Techシリーズ Amazon VPC
20180704(20190520 Renewed) AWS Black Belt Online Seminar Amazon Elastic File ...
20190522 AWS Black Belt Online Seminar AWS Step Functions
Amazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデート
20190821 AWS Black Belt Online Seminar AWS AppSync
20191218 AWS Black Belt Online Seminar AWSのマネジメント&ガバナンス サービスアップデート

What's hot (20)

PDF
20190326 AWS Black Belt Online Seminar Amazon CloudWatch
PDF
AWS初心者向けWebinar AWSからのEメール送信
PDF
AWS Black Belt Techシリーズ リザーブドインスタンス & スポットインスタンス
PDF
20190521 AWS Black Belt Online Seminar Amazon Simple Email Service (Amazon SES)
PDF
20190806 AWS Black Belt Online Seminar AWS Glue
PDF
AWS Black Belt Online Seminar AWS Key Management Service (KMS)
PDF
20190730 AWS Black Belt Online Seminar Amazon CloudFrontの概要
PDF
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
PDF
20191023 AWS Black Belt Online Seminar Amazon EMR
PDF
AWS Black Belt Online Seminar - Amazon Lightsail
PDF
JAWS-UG 情シス支部の皆様向け Amazon Elastic File System (Amazon EFS)
PDF
20190320 AWS Black Belt Online Seminar Amazon EBS
PDF
20190604 AWS Black Belt Online Seminar Amazon Simple Notification Service (SNS)
PDF
20190130 AWS Black Belt Online Seminar AWS Identity and Access Management (AW...
PDF
データ活用を加速するAWS分析サービスのご紹介
PDF
AWS X-Rayによるアプリケーションの分析とデバッグ
PDF
20190129 AWS Black Belt Online Seminar AWS Identity and Access Management (AW...
PDF
20210119 AWS Black Belt Online Seminar AWS CloudTrail
PDF
Azure Monitor Logで実現するモダンな管理手法
PDF
202205 AWS Black Belt Online Seminar Amazon VPC IP Address Manager (IPAM)
20190326 AWS Black Belt Online Seminar Amazon CloudWatch
AWS初心者向けWebinar AWSからのEメール送信
AWS Black Belt Techシリーズ リザーブドインスタンス & スポットインスタンス
20190521 AWS Black Belt Online Seminar Amazon Simple Email Service (Amazon SES)
20190806 AWS Black Belt Online Seminar AWS Glue
AWS Black Belt Online Seminar AWS Key Management Service (KMS)
20190730 AWS Black Belt Online Seminar Amazon CloudFrontの概要
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
20191023 AWS Black Belt Online Seminar Amazon EMR
AWS Black Belt Online Seminar - Amazon Lightsail
JAWS-UG 情シス支部の皆様向け Amazon Elastic File System (Amazon EFS)
20190320 AWS Black Belt Online Seminar Amazon EBS
20190604 AWS Black Belt Online Seminar Amazon Simple Notification Service (SNS)
20190130 AWS Black Belt Online Seminar AWS Identity and Access Management (AW...
データ活用を加速するAWS分析サービスのご紹介
AWS X-Rayによるアプリケーションの分析とデバッグ
20190129 AWS Black Belt Online Seminar AWS Identity and Access Management (AW...
20210119 AWS Black Belt Online Seminar AWS CloudTrail
Azure Monitor Logで実現するモダンな管理手法
202205 AWS Black Belt Online Seminar Amazon VPC IP Address Manager (IPAM)
Ad

Similar to 失敗から学ぶAWSの監視 (20)

PPTX
インフラ系自主トレするならAWS
PDF
AWS Black Belt Online Seminar Antipattern
PDF
2011-04-21 クラウド勉強会
PDF
[AWS Summit 2012] Intel presents ランチセッション 今更聞けないAWSクラウド入門
PPTX
NoSQL on AWSで作る最新ソーシャルゲームアーキテクチャ
PPTX
MongoDB on AWSクラウドという選択
PDF
クラウド連携のキモは管理用API
PDF
Awsの質問に何でも答えます
PDF
はじめてのAmazon Web Services
PDF
aws mackerel twilio_handson_public
PDF
Aws lambda & amazon api gateway入門
PDF
クラウド/Amazon EC2の特徴とメリット・デメリット
PDF
AWS Black Belt Online Seminar 2017 初心者向け クラウドコンピューティング はじめの一歩
PDF
Anchors Aweigh!! - re:Invent報告@re:Port 2016 大阪
PDF
20130326 aws meister-reloaded-windows
PDF
これでAWSマスター!? 初心者向けAWS簡単講座
PPTX
Serverless frameworkを使ってみた話 at #nseg #90
PDF
AWS meets Android - "AWS SDK for Android"で開発を楽にしよう!
PDF
Architecting on Alibaba Cloud - 超基礎編 -
PDF
業務アプリをクラウド化する5つのステップ ~Amazon Web Services活用の勘所~
インフラ系自主トレするならAWS
AWS Black Belt Online Seminar Antipattern
2011-04-21 クラウド勉強会
[AWS Summit 2012] Intel presents ランチセッション 今更聞けないAWSクラウド入門
NoSQL on AWSで作る最新ソーシャルゲームアーキテクチャ
MongoDB on AWSクラウドという選択
クラウド連携のキモは管理用API
Awsの質問に何でも答えます
はじめてのAmazon Web Services
aws mackerel twilio_handson_public
Aws lambda & amazon api gateway入門
クラウド/Amazon EC2の特徴とメリット・デメリット
AWS Black Belt Online Seminar 2017 初心者向け クラウドコンピューティング はじめの一歩
Anchors Aweigh!! - re:Invent報告@re:Port 2016 大阪
20130326 aws meister-reloaded-windows
これでAWSマスター!? 初心者向けAWS簡単講座
Serverless frameworkを使ってみた話 at #nseg #90
AWS meets Android - "AWS SDK for Android"で開発を楽にしよう!
Architecting on Alibaba Cloud - 超基礎編 -
業務アプリをクラウド化する5つのステップ ~Amazon Web Services活用の勘所~
Ad

More from 株式会社オプト 仙台ラボラトリ (11)

PDF
PDF
ログについて改めて考えてみた
PDF
フレームワークも使っていないWebアプリをLaravel+PWAでモバイルアプリっぽくしてみちゃう
PPTX
RPAって何、どんなことできるの
PPTX
業務の自動化をはじめよう!!
PDF
RPA(ロボティック・プロセ ス・オートメーション) 仮想労働者の雇い方
PDF
データマート対応した話
PDF
各種データベースの特徴とパフォーマンス比較
PDF
ビッグデータ・データマートとは
PDF
ビッグデータとデータマート
PDF
一歩前に進める Web開発のスパイス(仙台Geek★Night #1)
ログについて改めて考えてみた
フレームワークも使っていないWebアプリをLaravel+PWAでモバイルアプリっぽくしてみちゃう
RPAって何、どんなことできるの
業務の自動化をはじめよう!!
RPA(ロボティック・プロセ ス・オートメーション) 仮想労働者の雇い方
データマート対応した話
各種データベースの特徴とパフォーマンス比較
ビッグデータ・データマートとは
ビッグデータとデータマート
一歩前に進める Web開発のスパイス(仙台Geek★Night #1)

失敗から学ぶAWSの監視