Slide 1

Slide 1 text

AIやマイクロサービスを活用した DynamoDB節約術 グリー株式会社 開発本部 インフラストラクチャ部 サービスインストレーショングループ 橋本順之

Slide 2

Slide 2 text

目次 ● 前置き ● コストの肝のキャパシティ ● キャパシティの自動化 ● まとめ 2

Slide 3

Slide 3 text

前置き ● DynamoDB ○ アナザーエデンとダンメモのメインストレージ ○ 国内および海外を合わせると7箇所で運用 ○ NoSQL:アクセス数に対してスケールしやすい ○ データ量だけでなく、キャパシティ(スループット)で費用がかかる ● 解決したい問題 ○ メインストレージなのでサーバーの運用費を安くしたい ○ 運用を自動化したい ■ (20~50テーブル) x 7 の キャパシティを設定

Slide 4

Slide 4 text

キャパシティ ● DynamoDBはキャパシティ(スループット)で費用がかかる ● テーブル単位でキャパシティを設定 一時間:1リクエスト/秒 リード:$0.0001484 ライト:$0.000742

Slide 5

Slide 5 text

キャパシティ ● DynamoDBはキャパシティ(スループット)で費用がかかる ● テーブル単位でキャパシティを設定 一カ月:10000リクエスト/秒 ReadWriteこみで$6410

Slide 6

Slide 6 text

キャパシティ ● DynamoDBはキャパシティを上げ下げすると安くなる プロビジョンされたキャパシティ 利用しているキャパシティ

Slide 7

Slide 7 text

キャパシティの注意点 ● 利用しているキャパシティ > プロビジョンされたキャパシティの場合 ○ アクセスに失敗します。 プロビジョンされたキャパシティ 利用しているキャパシティ

Slide 8

Slide 8 text

キャパシティ ● (20~50テーブル) x 7 の キャパシティを設定

Slide 9

Slide 9 text

キャパシティの費用体系 ● オンデマンド ○ リクエストした分だけ費用がかかる ○ これまでのピークの倍のスループットが出せる ○ 0.001026USD/RCU (一時間) ● プロビジョニング ○ あらかじめ決めたキャパシティで費用がかかる ■ 0.0001484USD/RCU (一時間) ■ RCU = 1秒1回のリード ● リザーブドを買う(一年) ■ 0.000029USD/RCU(一時間) ● プロビジョニング ● リザーブド ● 自分でキャパシティ管理

Slide 10

Slide 10 text

キャパシティの費用体系(1Mリクエスト/秒) Read(USD 1MReq/sec) Write(USD 1MReq/sec) オンデマンド 0.285 1.427 プロビジョニング 0.041 0.206 リザーブド(1年) 0.008 0.041 東京リージョン、2020/01/14調査 例:プロビジョニング Read 0.041 = 0.0001484/3600*1000000

Slide 11

Slide 11 text

前置き ● DynamoDB ○ アナザーエデンとダンメモのメインストレージ ○ 国内および海外を合わせると7箇所で運用 ○ NoSQL:アクセス数に対してスケールしやすい ○ データ量だけでなく、キャパシティ(スループット)で費用がかかる ● 解決したい問題 ○ メインストレージなのでサーバーの運用費を安くしたい ○ 運用を自動化したい ■ (20~50テーブル) x 7 の キャパシティを設定

Slide 12

Slide 12 text

キャパシティをコントロールするシステム構成 ● AWS Lambdaで構成 ● 特徴 ○ AIが5分おきにキャパシティを調整 ○ 突発の負荷に対応(設定値を超えると自動で増やす) ● 定常の調整 ○ 設定値の40%の負荷で調整 ○ 前日の負荷をみてAIが当日のキャパシティを調整 ○ Haskellでかかれているので安全 ● イベントのための調整 ○ ユーザーが設定 ○ AIが自動と手動(ユーザー定義)を切り替える

Slide 13

Slide 13 text

キャパシティをコントロールするシステム構成

Slide 14

Slide 14 text

まとめ ● DynamoDB ○ アナザーエデンとダンメモのメインストレージ (7箇所) ○ 安く使うにはリザーブドがおすすめ ○ キャパシティをテーブルごとにコントロールする必要があります ○ 問題:テーブルが多い。(20~50テーブル) x 7 ● 対応策 ○ ユーザーによるスケジュールと前日の利用量からAIがキャパシティをコント ロール ○ AWS Lambda の無料利用枠には、1 か月に 1,000,000 件の無料リクエスト ■ 5分おきの実行:8640回/月 ■ 100テーブル程度なら無料

Slide 15

Slide 15 text

ご清聴ありがとうございました。