JAWS-UG SRE支部 #5S3とCloudWatch Logsの見直しから始めるコスト削減株式会社スマートラウンド山原 崇史(@shonansurvivors)
View Slide
自己紹介株式会社スマートラウンド SRE山原 崇史 (やまはら たかし)経歴 SIer・銀行・Web系ベンチャー 👉 スマートラウンド好きなAWSサービス IAM Identity Center(AWS SSO) / S3 Storage LensTwitter @shonansurvivors
事業紹介ミッション スタートアップが可能性を最大限に発揮できる世界をつくる課題 1. スタートアップ経営者の多くが初めての起業経験で 株主管理や資本政策等の事務作業に時間を浪費 2. 投資家は投資先スタートアップに対して 独自のスプレッドシート入力を依頼するため非効率smartroundが実現する世界 統一化・標準化されたデータ管理によって スタートアップと投資家双方の業務を効率化し、 スタートアップが事業により専念できる環境を実現
本日のテーマS3とCloudWatch Logsの見直しから始めるコスト削減 AWSのコスト削減にあたっては様々な切り口、手法があると思いますが、 比較的簡易な考え方で手早く S3とCloudWatch Logsのコストを削減したので、 その事例を紹介します。
アジェンダ1. Compute(EC2やFargateなど)におけるコストの特性2. S3におけるコストの特性と、その削減の実践例3. CloudWatch Logsにおけるコストの特性と、その削減の実践例4. まとめ
Compute(EC2やFargateなど)におけるコストの特性● 一般に、より高いスペックを利用するには、それに応じたコスト (費用)を支払う必要があります● ここでのスペックとは○ vCPU、メモリ、ストレージ、ネットワークパフォーマンス等
Computeにおけるコスト適正化コスト適正化には性能の調整が必要となる場合が多く (※)、突き詰めるには一定のスキルが求められる性能コスト性能は充分だが過剰性能は充分性能を調整し、コストを適正化そのサービスに必要な性能(性能要件)▶コストは低いが性能は不足※費用の前払い (Reserved Instances, Savings Plans)や、停止リスクの受容 (Spot InstancesやFargate Spotの利用)により、同一性能を低コストで実現することも可能ここでの性能とは、前ページで触れたスペックに対して「インスタンス数や AutoScaling等も加味して実際に発揮される性能」と捉えてください。
S3のコストの特性 (1/2)● ストレージタイプというものが複数から選択可能で、コスト構造は単純ではない○ タイプにはStandard、Standard - Infrequent Access、Glacierなどがある(他にもある)○ タイプによって、保存サイズあたりの費用や、リクエスト量に応じた費用や、取り出しにかかる費用や時間が異なったりする
S3のコストの特性 (2/2)● ただし、どのタイプも 保存サイズに応じた従量課金制 という点は共通○ 「100GBまで年間2,500円」のような、このサイズに達するまでは定額といったプランは無い● そのため、保存サイズが小さければ小さいほど確実にコストは抑えられる安 高
S3の用途保存対象物の一例● Webアプリケーションなどにおける顧客データ (顧客が生成、保管する PDFや画像など)● Webページの静的コンテンツ (HTML、CSS、JavaScript、画像など)● 各種ログ● ビルドによる生成物(アーティファクト)● その他様々○ Athenaのクエリ結果○ ECS用の環境変数ファイル (.env)○ Terraformの状態管理ファイル (tfstate)
S3の用途保存対象物の一例● Webアプリケーションなどにおける顧客データ (顧客が生成、保管する PDFや画像など)● Webページの静的コンテンツ (HTML、CSS、JavaScript、画像など)● 各種ログ 👈 古くなるにつれて次第に参照の必要性が低くなってくる (※)● ビルドによる生成物(アーティファクト) 👈 古いものは利用される機会が少ない● その他様々○ Athenaのクエリ結果○ ECS用の環境変数ファイル (.env)○ Terraformの状態管理ファイル (tfstate)👆この辺りも古いものは不要だがサイズが小さく、削除によるコスト削減効果は薄いかも※過去から発生していたセキュリティインシデント調査のために必要なことや、各種法規制・基準の要件で保存が義務付けられることなどもあり、古ければ即不要ということは無い
効率的な調査のためのS3 Storage Lens● バケット別のサイズ上位や推移を可視化可能で、 AWS CLIなどを使わない簡易な調査に最適● Organizationsにも対応しており、全アカウントのバケットを横断して可視化も可能
S3のコスト削減の実例1. 請求書やCost Explorerから、AWS全体のコストの中でS3の占める割合の多い ことを確認2. S3 Storage Lensを使用し、サイズの大きいバケットを洗い出し3. サイズ上位のバケットの 用途を確認(他のエンジニアにヒアリングするなど)4. 「ビルドにより生成されたアーティファクト」を保存するバケットがあったため、ライフサイクルルール を設定することで一定期間経過後のオブジェクトは自動削除ほったらかしコスト削減(抑制)術
CloudWatch Logsのコストの特性● ログ保管○ 1GBあたり $0.033 (ちなみにS3 Standardは、1GBあたり$0.025)○ 保持期間を設定することで、 ほったらかしコスト削減可能● ログの書き込み○ 1GBあたり $0.76 であり、コストが嵩みがち○ 確認方法は請求書であれば PutLogEvents、Cost ExplorerであればDataProcessing-Bytes(ディメンションに使用タイプを指定 )
CloudWatch Logsのコスト削減の実例1. 保管量の多いCloudWatch Logグループが、書き込みも多そうとアタリをつける2. ログの中身を見て、不要そうなログ出力が無いかを見る(有用そうでない INFOログなど)3. 今回はアプリのログだったので、アプリのリポジトリに PRを出してマージ(SREがアプリケーションのコードを修正する良い機会となった)
まとめ● S3○ 様々なタイプがあるが、 サイズが小さければ小さいほどコストを抑えられる のは共通○ 用途別に見て、古いオブジェクトが不要になるバケットであればコスト削減候補○ S3 Storage Lensとライフサイクルルール を活用して、ほったらかしでコストを削減(抑制)● CloudWatch Logs○ 保管サイズの他に書き込み量に注目○ 不要なログ出力があれば抑制を検討
スマートラウンドでは新しいメンバーを募集中です!私たちと一緒にスタートアップが可能性を最大限に発揮できる世界をつくりませんか?jobs.smartround.com