Slide 1

Slide 1 text

JAWS-UG SRE支部 #5 S3とCloudWatch Logsの 見直しから始める コスト削減 株式会社スマートラウンド 山原 崇史(@shonansurvivors)

Slide 2

Slide 2 text

自己紹介 株式会社スマートラウンド SRE 山原 崇史 (やまはら たかし) 経歴  SIer・銀行・Web系ベンチャー 👉 スマートラウンド 好きなAWSサービス  IAM Identity Center(AWS SSO) / S3 Storage Lens Twitter  @shonansurvivors

Slide 3

Slide 3 text

事業紹介 ミッション  スタートアップが可能性を最大限に発揮できる世界をつくる 課題  1. スタートアップ経営者の多くが初めての起業経験で   株主管理や資本政策等の事務作業に時間を浪費  2. 投資家は投資先スタートアップに対して   独自のスプレッドシート入力を依頼するため非効率 smartroundが実現する世界  統一化・標準化されたデータ管理によって  スタートアップと投資家双方の業務を効率化し、  スタートアップが事業により専念できる環境を実現

Slide 4

Slide 4 text

本日のテーマ S3とCloudWatch Logsの見直しから始めるコスト削減  AWSのコスト削減にあたっては様々な切り口、手法があると思いますが、  比較的簡易な考え方で手早く S3とCloudWatch Logsのコストを削減したので、  その事例を紹介します。  

Slide 5

Slide 5 text

アジェンダ 1. Compute(EC2やFargateなど)におけるコストの特性 2. S3におけるコストの特性と、その削減の実践例 3. CloudWatch Logsにおけるコストの特性と、その削減の実践例 4. まとめ

Slide 6

Slide 6 text

Compute(EC2やFargateなど)におけるコストの特性 ● 一般に、より高いスペックを利用するには、それに応じたコスト (費用)を支払う必要があります ● ここでのスペックとは ○ vCPU、メモリ、ストレージ、ネットワークパフォーマンス等

Slide 7

Slide 7 text

Computeにおけるコスト適正化 コスト適正化には性能の調整が必要となる場合が多く (※)、突き詰めるには一定のスキルが求められる 性能 コスト 性能は充分だが過剰 性能は充分 性能を調整し、コストを適正化 そのサービスに 必要な性能 (性能要件) ▶ コストは低いが性能は不足 ※費用の前払い (Reserved Instances, Savings Plans)や、停止リスクの受容 (Spot InstancesやFargate Spotの利用)により、同一性能を低コストで実現することも可能 ここでの性能とは、前ページで触れたス ペックに対して「インスタンス数や Auto Scaling等も加味して実際に発揮される性 能」と捉えてください。

Slide 8

Slide 8 text

S3のコストの特性 (1/2) ● ストレージタイプというものが複数から選択可能で、コスト構造は単純ではない ○ タイプにはStandard、Standard - Infrequent Access、Glacierなどがある(他にもある) ○ タイプによって、保存サイズあたりの費用や、リクエスト量に応じた費用や、 取り出しにかかる費用や時間が異なったりする

Slide 9

Slide 9 text

S3のコストの特性 (2/2) ● ただし、どのタイプも 保存サイズに応じた従量課金制 という点は共通 ○ 「100GBまで年間2,500円」のような、このサイズに達するまでは定額といったプランは無い ● そのため、保存サイズが小さければ小さいほど確実にコストは抑えられる 安 高

Slide 10

Slide 10 text

S3の用途 保存対象物の一例 ● Webアプリケーションなどにおける顧客データ (顧客が生成、保管する PDFや画像など) ● Webページの静的コンテンツ (HTML、CSS、JavaScript、画像など) ● 各種ログ ● ビルドによる生成物(アーティファクト) ● その他様々 ○ Athenaのクエリ結果 ○ ECS用の環境変数ファイル (.env) ○ Terraformの状態管理ファイル (tfstate)

Slide 11

Slide 11 text

S3の用途 保存対象物の一例 ● Webアプリケーションなどにおける顧客データ (顧客が生成、保管する PDFや画像など) ● Webページの静的コンテンツ (HTML、CSS、JavaScript、画像など) ● 各種ログ 👈 古くなるにつれて次第に参照の必要性が低くなってくる (※) ● ビルドによる生成物(アーティファクト) 👈 古いものは利用される機会が少ない ● その他様々 ○ Athenaのクエリ結果 ○ ECS用の環境変数ファイル (.env) ○ Terraformの状態管理ファイル (tfstate) 👆この辺りも古いものは不要だがサイズが小さく、削除によるコスト削減効果は薄いかも ※過去から発生していたセキュリティインシデント調査のために必要なことや、各種法規制・基準の要件で保存が義務付けられることなどもあり、古ければ即不要ということは無い

Slide 12

Slide 12 text

効率的な調査のためのS3 Storage Lens ● バケット別のサイズ上位や推移を可視化可能で、 AWS CLIなどを使わない簡易な調査に最適 ● Organizationsにも対応しており、全アカウントのバケットを横断して可視化も可能

Slide 13

Slide 13 text

S3のコスト削減の実例 1. 請求書やCost Explorerから、AWS全体のコストの中でS3の占める割合の多い ことを確認 2. S3 Storage Lensを使用し、サイズの大きいバケットを洗い出し 3. サイズ上位のバケットの 用途を確認(他のエンジニアにヒアリングするなど) 4. 「ビルドにより生成されたアーティファクト」を保存するバケットがあったため、 ライフサイクルルール を設定することで一定期間経過後のオブジェクトは自動削除 ほったらかしコスト削減(抑制)術


Slide 14

Slide 14 text

CloudWatch Logsのコストの特性 ● ログ保管 ○ 1GBあたり $0.033 (ちなみにS3 Standardは、1GBあたり$0.025) ○ 保持期間を設定することで、 ほったらかしコスト削減可能 ● ログの書き込み ○ 1GBあたり $0.76 であり、コストが嵩みがち ○ 確認方法は請求書であれば PutLogEvents、 Cost ExplorerであればDataProcessing-Bytes(ディメンションに使用タイプを指定 )

Slide 15

Slide 15 text

CloudWatch Logsのコスト削減の実例 1. 保管量の多いCloudWatch Logグループが、書き込みも多そうとアタリをつける 2. ログの中身を見て、不要そうなログ出力が無いかを見る(有用そうでない INFOログなど) 3. 今回はアプリのログだったので、アプリのリポジトリに PRを出してマージ (SREがアプリケーションのコードを修正する良い機会となった)

Slide 16

Slide 16 text

まとめ ● S3 ○ 様々なタイプがあるが、 サイズが小さければ小さいほどコストを抑えられる のは共通 ○ 用途別に見て、古いオブジェクトが不要になるバケットであればコスト削減候補 ○ S3 Storage Lensとライフサイクルルール を活用して、ほったらかしでコストを削減(抑制) ● CloudWatch Logs ○ 保管サイズの他に書き込み量に注目 ○ 不要なログ出力があれば抑制を検討

Slide 17

Slide 17 text

スマートラウンドでは新しいメンバーを募集中です! 私たちと一緒にスタートアップが可能性を最大限に発揮できる世界をつくりませんか? jobs.smartround.com