【レポート】【初級】AWS コスト管理徹底入門 #AWSSummit

2019.06.12

こんにちは、大前です。AWS Summit 楽しんでいますでしょうか。

Day1のセッション、「【初級】AWS コスト管理徹底入門」を受講したのでレポートを記載します。

本ブログは、AWS Summit 2019 day1のセッションレポートになります。

セッション概要

登壇者

アマゾン ウェブ サービス ジャパン株式会社
技術支援本部
テクニカルアカウントマネージャー
伊藤 裕史 様

概要

AWS利用料金の詳細把握や見直しはできていますか。AWSでは多くのサービスで従量制を採用しています。また、ご活用いただく事でお客様の投資対効果を高める機能を随時追加しています。このセッションでは、お客様環境のAWS利用状況をコストの観点から見える化して把握・管理し、投資効果を高めるための方法を、Cost ExplorerやCost and Usage Reportといったツールと、リザーブド/スポットインスタンス、AWS BudgetやAWS Organizationなどのサービス/機能の簡単な解説を交えてご紹介します。

セッションの狙い

  • AWSを活用し始めた方、もっと活用したい方
  • コストを上手に管理し、AWSを使うことによるメリットを感じいただく
  • コストを可視化し、監視・分析、最適化するヒントを提供

AWSにおけるコスト管理の考え方

AWSの特徴

  • 初期投資が不要
  • サービス開始後69回以上の値下げ
  • 利用した分のみお支払い
  • ご利用はセルフサービス
  • スケールアップ/ダウンが容易
  • 進化し続けるインフラ
コストを適切に管理することで上記のメリットを最大限享受できる
そのためには、「可視化し、監視・分析し、最適化」するサイクルを回すことが重要

コストの可視化

コストの把握が必要となる代表的な単位

  • アカウント単位
  • アプリケーション単位

-> 定期的に確認する項目

  • 利用用途のタイプ
  • AWSサービス

-> 最適化のための指標

複数アカウントの請求管理 - AWS Organizations

  • 一括請求機能を使うことで複数アカウントのコスト管理を実現できる
  • 組織全体の利用料金をまとめることが可能
  • 既存アカウントの統合も新しいアカウントの作成も可能
  • 統合アカウントを作成してマスターに設定し、他アカウントをメンバーとして登録することで、統合アカウント上で各アカウントの使用量を確認することができる

アプリケーション単位- コスト配分タグ

  • AWSのリソースにはタグを設定可能
  • タグを「コスト配分タグ」として設定することでコスト把握に利用可能
  • タグはKey = Valueの形式

コスト可視化ツールの入り口 - 請求ダッシュボード

  • 各月の利用料が概要として表示される
  • 各GUIツールへの入り口になっているため、請求関連の操作はここから行う

コストをGUIで確認 - AWS Cost Explorer

  • サービス毎、アカウント毎など様々なビューで使用量と使用料金が確認可能
  • サービスごとのフィルタリングやタグに基づくグルーピングが可能
  • APIによる自動化やCSVへのエクスポートも可能
  • 利用には有効化操作が必要
  • 請求書には以下の情報が記載
    • 統合されたサービス毎の明細
    • 連結アカウント毎の明細
    • 合計利用料
    • サービス別
    • リージョン別
    • ご利用タイプ別

コストの監視・分析

コスト監視・分析する目的

  1. 想定外のコストが発生していないか
  2. 無駄なコストが発生していないか
  3. コスト最適化できる余地はないか

想定外の利用増加を監視 - AWS Budgets

  • サービス毎やアプリケーション(コスト配分タグ毎)アカウント毎など様々な単位で予算実績を管理
  • アラートの設定も可能

無駄を発見 - AWS Trusted Advisor

  • ベストプラクティスと実際の利用状況を比較してくれる
    • 使用率の低いインスタンス
    • アイドル状態のDBインスタンス
    • 利用頻度の低いEBSボリューム
    • 関連づけられていないElasticIP など

技術者と一緒に最適化の余地を探し分析する

  • S3で低頻度アクセスを使うべきではないか
  • CloudFrontの利用料金でRequestの利用料金に対して極端にインターネットへのデータトランスファー料金が少なくないか
  • SQSの利用料金で空のAPI呼び出しが多くないか

上記の複数サービスを組み合わせることにより、高度なコスト監視・分析が可能

 

コスト最適化のアプローチ

3つの側面でアプローチを行う

  1. 機能(ボリュームディスカウント、購入オプション)
  2. 技術(アーキテクチャの最適化)
  3. 運用(リソースの無駄をなくす)

ボリュームディスカウントとは

  • 使用量によってディスカウントが提供されるサービス(S3のストレージ容量やEC2からのデータ転送など)
  • 一括請求でまとめることによってボリュームディスカウントをより有効活用
  • 複数アカウント使用時には請求統合を検討いただくのがベター

EC2の購入オプション

  • オンデマンド
    • 予測不能なワークロードやより良いオプションを選択するためのデータ取得
  • リザーブドインスタンス
    • 予測可能で安定したワークロードでのご利用
  • スポットインスタンス
    • フォールトトレラントで柔軟なステートレスワークロード

リザーブドインスタンスの利用状況の把握

  • AWS Cost ExplorerのReserved Instance Coverage/Utilizationのレポート
  • RIが有効に活用されているか、より有効に活用できる余地がないか確認することが可能

リザーブドインスタンスの期限切れ防止

  • 期限が切れると割引が適用されなくなってしまう
  • CostExplorer上で通知を設定して期限が切れる前に知らせるとベター

コスト効率を意識したアーキテクチャの構築

  • 需要の変化に柔軟に対応できるようにする(LB, AutoScalingの活用、Lambdaなどの利用によるサーバレス化)
  • ステートとリソースを分離する(データはDynamoDB、ログはCloudWatch Logsに転送し、インスタンスに状態は持たない)
  • 変更を許容する(インスタンスタイプ・サイズを固定して考えない)
  • 幅広いインスタンスの種類から選択
    • ユースケース+性能+オプションで考えて最適化
    • 185以上のタイプあり
    • インスタンスタイプは常に拡張中

コスト効率を意識したアーキテクチャの構築

  • AWSのManaged Serviceの使用
  • 自動化を推進

 

まとめ

可視化し、監視・分析し、最適化する

  • 可視化
    • アカウント統合を検討
    • コスト配分タグの使用
  • 監視・分析
    • CostExplorerの活用
    • Trusted Advisorの活用
  • 最適化
    • 機能、技術、運用の3つの面でコスト最適化のアプローチを行う
上記の「可視化 > 監視・分析 > 最適化」のサイクルを回すことが大切
プロジェクト計画やシステムのライフサイクルにこのサイクル組み込めるとベター

AWSを最大限活用するためには

できるところからはじめてみる
  1. AWSの機能を使って状況を可視化
  2. AWSの利用状況を組織横断的に定期的に監視・分析
  3. 様々なサービスや機能を使って最適化
  4. コスト管理のフィードバックグループを回せる文化を作る

セッションの感想

AWSを使う以上コストに関する問題というのは避けては通れない部分だと思います。本セッションで紹介されているように、AWSにはコスト問題をうまく解決するソリューションが多数提供されているため、AWS始めたてでよくわからんという人でも、まずはコンソール画面で色々触って見てみるのが良いのではないのでしょうか。

以上、AWS事業本部の大前でした!