「AWS Black Belt Tech Webinar 2014 – Cost Explorer & AWS Trusted Advisor」レポート

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、虎塚です。

普段なら水曜日のこの時間帯(18時台)は、Black Belt Tech Webinarを聴いているところですが、今週はre:Invent開催中につき、Webinarはお休みなのだそうです。re:Inventでは、サービスの機能アップデートの情報が次々と出ていて、続報が楽しみですね。

というわけで、今日は先週のBlack Belt Tech Webinarについてレポートします。先週のテーマは「Cost Explorer & AWS Trusted Advisor」でした。渋い! でも重要ですね。

講師は、アマゾンデータサービスジャパンの舟崎さんです。すでに公式資料が公開されていますので、ご覧ください。

以下のレポートは、ライブ聴講した内容の書き起こしと要約になります。

注意

レポート本編に入る前に、ご注意いただきたい事項について説明です。

今回のセッションには、AWS Support APIが登場します。しかし、法人としてAWSをご利用で、請求をAWS代理店(パートナー)にコンソリデートされている場合、Support APIの使用が制限されている場合があります。IAMの権限で技術的に制限されていることもあれば、規約として運営上制限されていることもあるかと思います。

そのような場合、今回のWebinarの内容を実際にお試しいただくには、個人用のAWSアカウントか、コンソリデートされていない社用AWSアカウントをご用意ください。

アジェンダ

このセッションの目的は、「Cost ExplorerとAWS Trusted Advisorの使い方、メリットを受講者が理解すること」。そのための前提知識を最初におさらいする。

  • 前提知識のおさらい
  • Cost Explorer
    • 概要
    • Cost ExplorerのView形式
    • 利用例
  • AWS Trusted Advisor
    • 概要
    • Trusted Advisorのチェック項目
    • 利用例
  • まとめ

前提知識のおさらい

リザーブドインスタンスとは

リザーブドインスタンス
予約金を先に支払うことで、時間単価が割引になる。キャパシティの予約が可能
オンデマンドインスタンス(通常はこちらを利用)
初期費用は一切なく、1時間ごとの利用料を支払う。時間を追うごとに利用料は右肩上がりになる

リザーブドインスタンスを利用した場合、一定期間が経過すると、オンデマンドインスタンスを使い続けた場合よりも安くなるタイミングが来る。

Consolidated Billingとは?

  • AWSの費用請求をまとめられるサービス
    • (利用例)1つの会社の中で複数のアカウントを取得したり、協力会社さんに別途アカウントを作成したりする時に、請求をまとめたいというニーズに対応できる
  • 親アカウントに子アカウントの料金がまとめて請求される。合算された費用に対して、ボリュームディスカウントが適用される

Detailed Billing Reportとは?

  • 1時間ごとのAWSの利用料金を表示するCSVのレポート
    • デフォルトではダウンロードできない。AWS Management Consoleで明示的に有効にすると利用できるようになる
  • 親アカウントのレポートに子アカウントの料金も表示される
  • リザーブドインスタンスが使われているかどうかも表示される

数千〜数万行のレポートになった場合、CSVでダウンロードできるのは便利。

今回のトピックに関連する主なAWSのサービスや機能について

その他、EC2、セキュリティグループ、Elastic IP、IAM、ELB、RDSが今回のトピックに関連する。必要に応じておさらいしましょう。

Cost Explorer

Introduction for Cost Explorer

Cost Explorerは、経営者や経理担当などの次のようなニーズに応える。

  • AWSの利用料金を逐一確認したい。が、Detailed Billing Reportでは細かすぎる
  • 手間をかけずに課金データをグラフで可視化したい
  • 親アカウント、子アカウントのそれぞれでどれくらい使われているか知りたい

Cost Explorerとは

  • AWSの利用料金をグラフで可視化
  • サービスごと/子アカウントごと/カスタムタグごとに、課金をフィルタ可能
  • 追加料金なしで使用できる

Cost Explorerの使用開始方法

  • デフォルトでは無効なので、Management ConsoleのBilling画面で有効化する
    • 当月分が約24時間以内に閲覧可能になる
    • 過去4ヶ月分は数日後に閲覧可能になる

なお、Detailed Billing Reportを有効化するとCost Explorerも有効化されるが、Cost Explorerを有効化しただけではDetailed Billing Reportは有効化されないことに注意する。

Cost ExplorerのView形式

構成済みのView形式

構成済み(ビルトイン)のView形式として、次の3種類がある。いずれもグラフおよび表形式で表示され、CSVデータをダウンロードできる。

AWSサービスごとの月別課金View
サービスごとに色分けされて棒グラフで表示される
サポートの利用件数なども表示される
アカウントごとの月別課金View
Consolidated Billingで複数アカウントの支払いを統合している場合、アカウント別にAWSの利用料金が表示される
日別課金View
1ヶ月内で特定の日にいくらの料金がかかったかが分かる
どの日に利用料金が跳ね上がるか、といった傾向を見ることができる

カスタムView

上記以外にユーザがカスタマイズできるView形式もあり、これをカスタムViewという。カスタムViewを使うと、たとえば、インスタンスに付けたタグごとに料金を見ることができる。

カスタムViewでカスタマイズ可能な項目は次のとおり。

  • 1. 時間の粒度を選択
    • Daily / Monthly
  • 2. 期間を選択
    • Custom / 7 Days / 14 Days / This Month / 3 Months / This Year
    • Customを選んだ場合、Start Date, End Dateを指定できる
  • 3. Filterを選択
    • Linked Accounts / Services / Tags

例として、事前につけたNameタグごとに課金データを表示する例を紹介(※スライド資料を参照ください)。プロジェクトごとにName=Project-fooのようにタグをつけておけば、プロジェクトごとにかかった料金を見ることができる。

また、カスタムViewでは複数のフィルターを併用できる。たとえば、「特定の子アカウントのEC2料金を月別に3ヶ月分表示する」といったことができる。

Cost Explorerの利用例

  • 社内や協力会社との定期的な打ち合わせで、AWSの利用料金レビューに利用する
  • プロジェクトの関係メンバー間で、過剰な利用による課金が発生していないかを目視で確認する

AWSの営業担当が、お客様の前でCost Explorerの画面を開き、一緒に確認することがあるらしい。

Cost Explorerの注意事項

  • Cost Explorerの表示データはその時点での見積り金額であり、実際の請求金額とは若干異なる可能性がある
  • データは少なくとも24時間に1回更新される
  • IAMでBilling and Cost Management Consoleの閲覧権限をつけたユーザは、Cost Explorerを見ることができる
  • Consolidated Billingを使用している場合、親アカウントはすべての子アカウントの課金データを見ることができる
    • 子アカウントのオーナーは、子アカウント自身の課金データだけを見られる。親や他の子のデータは見られない
  • 親アカウントでCost Explorerが有効化されていると、子アカウントでも自動的に有効になる

※最後の1つは、資料公開時に追加で紹介された重要なポイントです。

AWS Trusted Advisor

Introduction for AWS Trusted Advisor

Trusted Advisorは、次のような考えを持つAWSアカウント管理者や経理担当者に活用して欲しい。

  • セキュリティグループの設定が間違っていてポートが開いていないか知りたい
  • 未活用のリソースがあって、もっとコスト削減できるのではないか知りたい
  • AWS上で構築したシステムが、AWSのベストプラクティスに則っているかを知りたい

AWS Trusted Advisorとは?

  • ユーザのAWS環境を精査し、推奨事項をお知らせしてくれるサービス
  • 多数の顧客にAWSのサービスを提供してきた経験から得られたベストプラクティスを活用して提供
  • 4つのカテゴリ(後述)に分けてお知らせする

Trusted Advisorの機能

以下の4つのカテゴリに分類される項目をチェックする。

コスト最適化
節約できる可能性のある推奨事項
セキュリティ
セキュリティ弱体化に繋がる恐れのあるものの特定
耐障害性
可用性や冗長性を高めるための推奨事項
パフォーマンス
アプリケーションの性能(速度、応答性)改善に役立つ推奨事項

また、通知機能として次の4つがある。

  • ダッシュボードでの表示
  • メール通知
  • Trusted Advisorへのアクセスコントロール
  • AWS Support APIを使ったチェック結果の取得

Trusted Advisorのダッシュボード機能

AWS Management Consoleで、上記4つのカテゴリごとに、次のステータスが表示される。

緑のチェックアイコン
問題が検出されなかった項目
黄色の注意アイコン
調査が推奨される項目
赤の注意アイコン
即時の対応が推奨される項目

表示されるチェック項目の詳細の例は、次のとおり。

アラート基準
どんな場合にそのチェック項目に引っかかるかの説明が表示される
推奨アクション
アラートに引っかかった場合に取るべきアクションの説明が表示される
チェック結果の詳細
画面を下にスライドすると、チェック結果の具体的な詳細を一覧で見ることができる
[非表示にする]ボタン
表示不要な項目を非表示にできる
ここでチェックした対象はアラート基準の適用対象から外されるので、チェック結果を見やすくすることができる

Trusted Advisorの通知機能

  • チェックステータスと改善の見積りの概要がEmailで通知される
  • 利用方法
    • ダッシュボードで通知を有効化する(デフォルトでは無効)
    • 送り先として、請求、オペレーション(運用)、セキュリティの3つのアドレスを指定できる
    • 木曜日と金曜日に送信される
  • 無料で利用できる

Trusted Advisorへのアクセスコントロール

IAMのポリシーにTrusted Advisorのアクセス可否を記述できる。たとえば、経理専用のIAMユーザを作ることができる。(※Trasuted Advisorの閲覧およびすべてのアクション権限を許可したポリシー例は、スライド資料を参照ください)

注意事項として、「ユーザの環境を精査する」といっても、すべてのAWSサービスと同様にユーザのプライバシーは尊重される。ユーザの同意なしにユーザのデータやEC2インスタンスにAWSがアクセスすることはない

AWS Trusted Advisorが誰でも利用可能になりました

  • 2014年8月4日から、次の4つの精査項目に関しては、誰でも無料で利用できるようになった
    • サービス上限のチェック
    • セキュリティグループでの開かれたポートのチェック
    • IAM使用有無のチェック
    • ルートアカウントでMFA(Multi-Factor Authentication)が利用されているかのチェック
  • その他のベストプラクティスは、ビジネスまたはエンタープライズサポートに加入すると利用できる

Trusted Advisorのチェック項目

コスト最適化のチェック項目

6項目あり、すべてビジネスまたはエンタープライズサポートに加入すると利用できる。詳細は次のページを参照。

上記から抜粋して2項目紹介する。

Amazon EC2リザーブドインスタンス最適化
前月の利用履歴を見て、ずっと起動されているインスタンスがあれば、重度使用リザーブドインスタンスへの置き換えが最適なインスタンス数を教えてくれる
Amazon EC2の利用率が少ないインスタンス(※項目名は「Amazon EC2 軽度利用インスタンス」)
毎日のCPU使用率が10%以下で、14日間連続で稼働しているインスタンスがある場合、警告する
多くの場合、インスタンス数とサイズを最適化するとコスト削減可能なため

セキュリティのチェック項目

7項目あり、そのうち3項目を無料で利用できる。詳細は次のページを参照。

上記から抜粋して1項目紹介する。

セキュリティグループ 開かれたポート
無制限のアクセスを許可しているポートがある場合、そのポートの種別によってアラートを出す
たとえば、DBアクセスによく使われるポート番号が無制限にアクセスできる状態の場合、赤色のアラートが表示される

耐障害性のチェック項目

11項目あり、すべてビジネスまたはエンタープライズサポートに加入すると利用できる。詳細は次のページを参照。

上記から抜粋して2項目紹介する。

ロードバランサーの最適化
ELBを使う時は、耐障害性を高めるために複数のAZ(Availability Zone)に均等に配置することを推奨している。ELBのバックエンドのインスタンスを複数のAZにまたがって起動することで、ELBも複数のAZに置ける。
ELBが単一AZに配置されていると黄色アラート
バックエンドインスタンスが存在しないと黄色アラート
Amazon RDS Multi-AZ
Multi-AZになっていないとアラートが上がる

パフォーマンスのチェック項目

7項目あり、そのうち1項目を無料で利用できる。詳細は次のページを参照。

上記から抜粋して3項目紹介する。

サービス制限
各サービスのデフォルトの上限値に対して、80%以上利用されている場合にアラートが上がる
上限の緩和申請をすることでさらに多くを利用できる。Trusted Advisorの画面には、上限緩和申請へのリンクが貼られている
使用率の高いAmazon EC2インスタンス
インスタンスタイプのスペックに対して利用率が90%以上の日が4日間以上あると、アラートが上がる
EC2セキュリティグループ内の多数のルール
設定したルールが多すぎるとパフォーマンスの劣化があるといわれているため、アラートが上がる

Trusted AdvisorはAWS Management Console以外でも利用可能

AWS Support APIを使って、Trusted Advisorの項目ごとにチェック結果の内容を取得できる。このAPIを活用して、サポートのケース管理もできる。ただし、ビジネスあるいはエンタープライズのサポートに加入していないと、APIを実行してもデータ取得できない。

API実行時にjaと指定すると結果を日本語表示させることができる。(※Javaのコード例はスライド資料を参照ください)

Trusted Advisorの利用例

  • 社内もしくは協力会社との定期的な打ち合わせでのレビュー時に利用する
  • Trusted Advisorには通知機能があるので、メール通知させるのも推奨

まとめ

  • Cost ExplorerでAWSの利用料金をグラフに可視化できる
  • Trusted AdvisorでAWSの推奨事項を把握できる
    • すべての項目を利用するにはサポート加入必要
    • Support APIで自動化できる
  • いずれも定期的なレビュー等で活用するとよい

Q&A

Q: Cost Explorerでは、月の境を超えたら(たとえば、2月が終わったら1月の)正確な値が表示されますか?
A: Detailed Billing Reportは、S3にレポートを上げ続けます。2月1日なった時点で、1月分のアップロードは終了します。2月以降に、1月のデータを確定後の内容に書き換えることはしません。
Q: 子アカウントでリザーブドインスタンスを購入して、使われていない場合は、親アカウントで使えますか?
A: 親アカウントを含むコンソリグループで、リザーブドインスタンスを共有することができます
Q: Trusted Advisorからのメール通知を、任意のタイミングにすることはできませんか?
A: AWS側で自動送信されるため、指定できません。
Q: 親アカウントだけがビジネスサポートに入っているとき、Trusted Advisorでのチェック対象に子アカウントも含まれますか?
A: Trusted Advisorの無料で使える項目以外は、サポートに加入しているアカウントのみで利用できます

感想

数年前に比べると、課金レポート周りやサポート周りでもAPIが出揃って、とても便利になりましたね。

Trusted Advisorについては、ビジネスまたはエンタープライズサポートに加入していないと利用できない項目についても、詳細を公開してくれているのは太っ腹だなぁと思いました。この情報があれば、ある程度は自力でチェックできるので、サポートに入っていない個人のユーザも参考にできそうです。ちなみに、AWSサポートの種別は、次のページに掲載されています。

最終的にはこういった観点を自然に取り入れて、AWSを上手く活用できるように精進したいと思います。

それでは、また。