SlideShare a Scribd company logo
Submit Search
Upload
Login
Signup
失敗から学ぶAWSの監視
Report
株式会社オプト 仙台ラボラトリ
Follow
株式会社オプト 仙台ラボラトリ
May. 27, 2019
•
0 likes
•
1,997 views
1
of
50
失敗から学ぶAWSの監視
May. 27, 2019
•
0 likes
•
1,997 views
Download Now
Download to read offline
Report
Technology
2019-05-23 タガヤスその11 発表資料
株式会社オプト 仙台ラボラトリ
Follow
株式会社オプト 仙台ラボラトリ
Recommended
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Amazon Web Services Japan
4.9K views
•
42 slides
マルチテナント化で知っておきたいデータベースのこと
Amazon Web Services Japan
8.1K views
•
55 slides
AWS Black Belt Tech Webinar 2016 〜 Amazon CloudSearch & Amazon Elasticsearch ...
Amazon Web Services Japan
25.9K views
•
103 slides
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
Amazon Web Services Japan
57.3K views
•
73 slides
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
Amazon Web Services Japan
3.5K views
•
102 slides
いまさら、AWSのネットワーク設計
Serverworks Co.,Ltd.
28K views
•
35 slides
More Related Content
What's hot
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
Amazon Web Services Japan
56.2K views
•
64 slides
AWS Black Belt Online Seminar 2017 Amazon DynamoDB
Amazon Web Services Japan
145.6K views
•
147 slides
AWSで作る分析基盤
Yu Otsubo
7.2K views
•
118 slides
20210526 AWS Expert Online マルチアカウント管理の基本
Amazon Web Services Japan
12.7K views
•
58 slides
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
NTT DATA Technology & Innovation
3.6K views
•
68 slides
AWSのログ管理ベストプラクティス
Akihiro Kuwano
76.7K views
•
57 slides
What's hot
(20)
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
Amazon Web Services Japan
•
56.2K views
AWS Black Belt Online Seminar 2017 Amazon DynamoDB
Amazon Web Services Japan
•
145.6K views
AWSで作る分析基盤
Yu Otsubo
•
7.2K views
20210526 AWS Expert Online マルチアカウント管理の基本
Amazon Web Services Japan
•
12.7K views
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
NTT DATA Technology & Innovation
•
3.6K views
AWSのログ管理ベストプラクティス
Akihiro Kuwano
•
76.7K views
[社内勉強会]ELBとALBと数万スパイク負荷テスト
Takahiro Moteki
•
29.4K views
インフラエンジニアの綺麗で優しい手順書の書き方
Shohei Koyama
•
145.1K views
Azure Monitor Logで実現するモダンな管理手法
Takeshi Fukuhara
•
3.6K views
AWS X-Rayによるアプリケーションの分析とデバッグ
Amazon Web Services Japan
•
8.3K views
AWS Black Belt Techシリーズ Amazon Kinesis
Amazon Web Services Japan
•
19.7K views
DatadogでAWS監視やってみた
tyamane
•
6.4K views
Aws auto scalingによるwebapサーバbatchサーバの構成例
Takeshi Mikami
•
3.4K views
CloudFormation/SAMのススメ
Eiji KOMINAMI
•
1.4K views
AWS Black Belt Online Seminar 2016 AWS CloudFormation
Amazon Web Services Japan
•
619.1K views
AWSからのメール送信
Amazon Web Services Japan
•
163.9K views
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介
Amazon Web Services Japan
•
4.1K views
20201111 AWS Black Belt Online Seminar AWS CodeStar & AWS CodePipeline
Amazon Web Services Japan
•
5.6K views
20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...
Amazon Web Services Japan
•
48.6K views
そんなトランザクションマネージャで大丈夫か?
takezoe
•
24.5K views
Similar to 失敗から学ぶAWSの監視
インフラ系自主トレするならAWS
Yasuhiro Araki, Ph.D
6.5K views
•
39 slides
AWS Black Belt Online Seminar Antipattern
Amazon Web Services Japan
4K views
•
51 slides
2011-04-21 クラウド勉強会
Koichiro Doi
2.2K views
•
28 slides
[AWS Summit 2012] Intel presents ランチセッション 今更聞けないAWSクラウド入門
Amazon Web Services Japan
2.7K views
•
46 slides
NoSQL on AWSで作る最新ソーシャルゲームアーキテクチャ
Yasuhiro Matsuo
5K views
•
61 slides
MongoDB on AWSクラウドという選択
Yasuhiro Matsuo
22.8K views
•
60 slides
Similar to 失敗から学ぶAWSの監視
(20)
インフラ系自主トレするならAWS
Yasuhiro Araki, Ph.D
•
6.5K views
AWS Black Belt Online Seminar Antipattern
Amazon Web Services Japan
•
4K views
2011-04-21 クラウド勉強会
Koichiro Doi
•
2.2K views
[AWS Summit 2012] Intel presents ランチセッション 今更聞けないAWSクラウド入門
Amazon Web Services Japan
•
2.7K views
NoSQL on AWSで作る最新ソーシャルゲームアーキテクチャ
Yasuhiro Matsuo
•
5K views
MongoDB on AWSクラウドという選択
Yasuhiro Matsuo
•
22.8K views
クラウド連携のキモは管理用API
Atsushi Nakada
•
3.3K views
Awsの質問に何でも答えます
Yasuhiro Araki, Ph.D
•
20.9K views
はじめてのAmazon Web Services
SORACOM, INC
•
17.2K views
aws mackerel twilio_handson_public
Tomoaki Sakatoku
•
630 views
Aws lambda & amazon api gateway入門
Yutaka Kajiwara
•
1.5K views
クラウド/Amazon EC2の特徴とメリット・デメリット
Serverworks Co.,Ltd.
•
7.7K views
AWS Black Belt Online Seminar 2017 初心者向け クラウドコンピューティング はじめの一歩
Amazon Web Services Japan
•
15.2K views
Anchors Aweigh!! - re:Invent報告@re:Port 2016 大阪
真吾 吉田
•
702 views
20130326 aws meister-reloaded-windows
Amazon Web Services Japan
•
3.8K views
これでAWSマスター!? 初心者向けAWS簡単講座
Serverworks Co.,Ltd.
•
43.1K views
Serverless frameworkを使ってみた話 at #nseg #90
ko ty
•
270 views
AWS meets Android - "AWS SDK for Android"で開発を楽にしよう!
SORACOM, INC
•
5.4K views
Architecting on Alibaba Cloud - 超基礎編 -
真吾 吉田
•
2.2K views
業務アプリをクラウド化する5つのステップ ~Amazon Web Services活用の勘所~
SORACOM, INC
•
5.5K views
More from 株式会社オプト 仙台ラボラトリ
クラウド入門(AWS編)
株式会社オプト 仙台ラボラトリ
275 views
•
44 slides
ログについて改めて考えてみた
株式会社オプト 仙台ラボラトリ
2.2K views
•
68 slides
フレームワークも使っていないWebアプリをLaravel+PWAでモバイルアプリっぽくしてみちゃう
株式会社オプト 仙台ラボラトリ
2.9K views
•
65 slides
RPAって何、どんなことできるの
株式会社オプト 仙台ラボラトリ
2.9K views
•
59 slides
業務の自動化をはじめよう!!
株式会社オプト 仙台ラボラトリ
10.2K views
•
47 slides
RPA(ロボティック・プロセ ス・オートメーション) 仮想労働者の雇い方
株式会社オプト 仙台ラボラトリ
1.4K views
•
16 slides
More from 株式会社オプト 仙台ラボラトリ
(11)
クラウド入門(AWS編)
株式会社オプト 仙台ラボラトリ
•
275 views
ログについて改めて考えてみた
株式会社オプト 仙台ラボラトリ
•
2.2K views
フレームワークも使っていないWebアプリをLaravel+PWAでモバイルアプリっぽくしてみちゃう
株式会社オプト 仙台ラボラトリ
•
2.9K views
RPAって何、どんなことできるの
株式会社オプト 仙台ラボラトリ
•
2.9K views
業務の自動化をはじめよう!!
株式会社オプト 仙台ラボラトリ
•
10.2K views
RPA(ロボティック・プロセ ス・オートメーション) 仮想労働者の雇い方
株式会社オプト 仙台ラボラトリ
•
1.4K views
データマート対応した話
株式会社オプト 仙台ラボラトリ
•
1.8K views
各種データベースの特徴とパフォーマンス比較
株式会社オプト 仙台ラボラトリ
•
10.4K views
ビッグデータ・データマートとは
株式会社オプト 仙台ラボラトリ
•
1.1K views
ビッグデータとデータマート
株式会社オプト 仙台ラボラトリ
•
1.7K views
一歩前に進めるWeb開発のスパイス(仙台Geek★Night #1)
株式会社オプト 仙台ラボラトリ
•
1.3K views
Recently uploaded
CCoE実践者コミュニティ#1_CCoEが進めるセキュリティカイゼンの旅.pptx
Tomoaki Tada
57 views
•
20 slides
遠隔お酌IoTLT2309.pptx
Yoshiaki Ito
145 views
•
12 slides
拡散する画像生成.pdf
NTTDOCOMO-ServiceInnovation
44 views
•
38 slides
MLOps Course Slides_JP(配布用).pdf
Yuya Yamamoto
118 views
•
31 slides
GraphQLはどんな時に使うか
Yutaka Tachibana
14 views
•
37 slides
磁石内臓イヤリングによる磁力変化を利用したジェスチャ識別
sugiuralab
7 views
•
1 slide
Recently uploaded
(13)
CCoE実践者コミュニティ#1_CCoEが進めるセキュリティカイゼンの旅.pptx
Tomoaki Tada
•
57 views
遠隔お酌IoTLT2309.pptx
Yoshiaki Ito
•
145 views
拡散する画像生成.pdf
NTTDOCOMO-ServiceInnovation
•
44 views
MLOps Course Slides_JP(配布用).pdf
Yuya Yamamoto
•
118 views
GraphQLはどんな時に使うか
Yutaka Tachibana
•
14 views
磁石内臓イヤリングによる磁力変化を利用したジェスチャ識別
sugiuralab
•
7 views
CatBoost on GPU のひみつ
Takuji Tahara
•
548 views
遠征ドルヲタのための便利サイトを作ってみた
Kenta Fujimoto
•
11 views
2023情報処理学会関西支部大会-G12.pdf
KoseiShimoda1
•
7 views
ヒアラブルデバイスにおける音漏れ信号を用いた空中ジェスチャ認識
sugiuralab
•
5 views
画像生成AIの問題点
iPride Co., Ltd.
•
10 views
インフラチームとCCoEの関係.pptx
ssuser5c7ee4
•
20 views
20230921_IoTLT_vol103_kitazaki_v1.pdf
Ayachika Kitazaki
•
164 views
失敗から学ぶAWSの監視
1.
失敗から学ぶ AWSの監視 abema
2.
自己紹介 • abema • 所属/担当 •
株式会社オプト 仙台テクノロジー開発部 • インフラエンジニア • プライベート • ネットゲーム(FF14)
3.
今日話すこと
4.
今日はAWS(の一部)の 監視について話します
5.
AWSの一部
6.
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
7.
いっぱい (これでも一部ですが)
8.
なので以下3つだけ AWS Lambda AWS
BatchAWS Elastic Beanstalk
9.
3秒で解説する
10.
1秒でわかるAWS Lambda • インフラの整備が不要 •
値を受け取って関数だけ実行する • node.js, python, Goなどをサポート • 実態はAWSの余剰リソースの活用
11.
1秒でわかるElastic Beanstalk • コードをデプロイするだけでWebアプリケー ションを構築できる •
インフラなど必要なサービス群をパッケージ ングしたもの • 構築時は意識しなくてよいがサーバレスで はない
12.
1秒でわかるAWS Batch • コンテナ化したバッチジョブのインフラ環境 を、バッチのリクエスト契機で動的に用意し てくれるサービス •
ジョブスケジュール機能はない
13.
ついでに
14.
1秒でわかるCloudWatch • 監視するやつ。以下4つの機能がある • CloudWatch
Metrics • メトリクスを収集 • CloudWatch Alarm • メトリクスの閾値で通知 • CloudWatch Logs • ログ貯める • CloudWatch Event • イベントに引っ掛けて 何かトリガする • Cron
15.
一般的なAWSの監視
16.
• やり方はいろいろあると思いますが、今回は基本的に • CloudWatchメトリクスにメトリクスをためる •
しきい値を超えた時にアラームを出す • という監視のやり方をベースにお話します
17.
Elastic Beanstalk
18.
• Cloudwatchに統合されていてデフォルトである程度のメ トリクスは収集されている • ElasticBeanstalkの管理コンソールにグラフ化したメトリ クスが表示されている
19.
参考
20.
• デフォルトで取得可能なメトリクス • CPU使用率/トラフィック •
etc ... • デフォルトで取得できないメトリクス • 使用メモリ • 使用ストレージ
21.
失敗
22.
メモリ監視できなくて out of memory
23.
どうしたか
24.
• メモリ監視のためのebextentions(Beanstalkのインフラ 設定をコード化する機能)の設定を追加 • 設定例がAWS公式で公開されている https://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/customize-containers- cw.html •
(いや、そんなことするならデフォルトで取得するよ うにしてくれないかな…)
25.
いま
26.
AWS Batch
27.
• Batchのコンソール上で実行したジョブの状態が監視でき る • 待ち/実行中/成功/失敗
など
28.
失敗
29.
実行待ちのジョブが 大量に溜まっていたのを 検知できなかった
30.
なぜ
31.
• 実行中・待ちなどのジョブの状態はAWS Batchのコンソ ール画面(またはAPI)でしか取得できない •
CloudWatch メトリクスには収集されていないため • 失敗ジョブが発生したら通知 • 待ち状態のジョブが一定数溜まったら通知 • などができない • (というかロクに監視機能がない)
32.
どうしたか
33.
• AWS batchそのものにCloudwatchと統合された機能がな いので… •
あきらめて定期的にAWS Batchの状態をAPIで取得して、 CloudWatchメトリクスに送るLambdaを書いている
34.
Lambda
35.
• タイトル詐欺になるが 失敗らしい失敗はまだしていないけど… • 課題はあるので
36.
• Cloudwatchに統合されていてデフォルトである程度のメ トリクスは収集されている • Lambdaの管理コンソールにグラフ化したメトリクスが表 示されている
37.
参考 呼び出し 実行時間 エラー率 スロットリング (AWS用語: API呼び出し数の上限) kinesisの呼び出しなどに使う (よくわかってない) DeadLetterを 呼び出しできなかった数
38.
• デフォルトで取得可能なメトリクス • 失敗ジョブ数 •
実行時間 • デフォルトで取得できないメトリクス • 使用メモリ
39.
使用メモリ
40.
なんで収集しないの?
41.
• Lambdaは実行時間✕関数に設定したメモリで課金される • 関数の使用メモリのメトリクスは取得してくれない •
実際の使用メモリに対して大きすぎるメモリを設定し てしまうなどして無駄なコストが掛かる • (微々たるものといえばそうですが)
42.
【参考】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円)
43.
• 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のパワー不足により実行時間が相対的に伸びると思うので、そこで監視でしょうか
44.
最近後悔していること
45.
監視設定系の管理
46.
• 通知用Lambda • SNS(simple
notification service)に飛んできたCloudWatchア ラームをSlackに投げたりするのにLambdaを使っている • Slackになげるやつは文字列整形のために通知内容ごとに個 々に関数を書いているのですが、数が増えてきてしっちゃ かめっちゃかになりつつある • 監視対象AWSのサービスはもとより、CloudWatch Alarmから来るかCloudWatchEventで来るかなどで 通知のjsonスキーマが違うので、細かくやってしまった
47.
• CloudWatchイベント • Lambdaを定期実行したり、条件で引っ掛けて起動するのに使 っているのだが、これも数が増えてきてしっちゃかめっちゃか になっている •
ServerlessFrameworkなどでLambdaに関連付けられる形でコ ード化されているのがほとんどなんですが、AWSコンソール 上でパッと見たときにはカオス感がある • コンソール上ではどのイベントが何に紐付いてるかわかりに くい • タグ付けもできないので、どう管理するとすっきりするのか… *タグ:AWSには各リソースに"タグ"をつけることで リソースをグルーピングして表示したりする機能があります
48.
• CloudWatchアラーム • CloudWatchイベントと同じ状態 •
ただこちらはメトリクスに対して手でいろいろ設定して いるので、コード化もされていない • SNSに投げるところまでは手で設定してしまっている • やはりしっちゃかめっちゃか *SNS:Simple Notification Service AWSの通知サービス。メール通知やlambdaの呼び出し
49.
まとめ • LambdaやElasticBeanstalkではマネージドな監視基盤が提 供されているが、メモリ監視だけは自前でどうにかしな いといけない • Batchは監視する機能が何も用意されていない •
CloudWatchアラーム・イベントなどの設定をどう管理し よう
50.
ご清聴ありがとうござ いました