はじめに
第1章 AWS Organizations
第2章 AWS Cost Explorer
第3章 AWS Cost and Usage Report
第4章 AWS Budgets
第5章 AWS NAT Gateway
著者紹介
奥付
本書を手に取っていただきありがとうございます。本書はAmazon Web Services(AWS)のコスト最適化をマルチアカウントの観点で解説しており、次のAWSサービスについて扱っています。
前著「Amazon Web Servicesコスト最適化入門 第2版」およびその商業版「Amazon Web Servicesコスト最適化入門」は、主要AWSサービスの概要や料金体系、コスト最適化ポイントを中心に扱いました。またAWS Cost Explorer、AWS Cost and Usage Reportを用いた料金の可視化と分析や、AWS Budgets・コスト配分タグを活用したリソースや予算管理といった、コストに関して幅広く網羅的に紹介しています。
本書は前著の知識を前提として、マルチアカウント、特にAWS Organizationsにおける組織化したコスト最適化に特化しています。AWS Organizationsによる一括請求によって、個々のAWSアカウントで支払うよりもコストを押さえることができます。また、AWS請求書やビリングサービスに出てくる「ブレンド」「ブレンドレート」という謎のキーワードは、一括請求を理解するうえでは必要なのでしっかり解説しています。
前著で取り上げたAWS Cost Explorer、AWS Cost and Usage Report、AWS Budgetsは、個々のAWSアカウントにおいても十分な機能を果たしますが、マルチアカウント構成ではより強力に機能します。また本書では、前著の出版後に発表されたコスト異常検出、AWS Budgets Actionsについて紹介します。これらの機能を使いこなすことでコストの無駄な出費を押さえることができます。
5章「NAT Gateway」では、VPCフローログを用いたコスト分析方法を扱います。前著ではNAT Gatewayの料金体系とコスト最適化ポイントについて紹介していますが、本書では具体的なコスト分析する方法を紹介し、NAT Gatewayへのトラフィック量からコスト最適化するかの判断ポイントを解説しています。
昔はひとつのAWSアカウントに複数のVPCやサブネットなどでシステムを分断し、タグ付けなどの工夫をすることで管理してきた方が多いかと思います。2016年にAWS Organizationsが発表され、ここ数年で目的に特化したAWSアカウントに分けるマルチアカウント戦略が主流になってきました。それまでは請求アカウントにアカウントを連結して請求をひとまとめにするだけでしたが、AWS Organizationsの登場で変わりました。組織単位(OU)、サービスコントロールポリシーによる権限管理、AWS Control Towerによるセキュアな管理体制ができるようになってきました。今後もマルチアカウント化は加速してより便利なAWSサービスや機能が発表されるでしょう。
請求関連に関しては昔と今でほとんど変わっていませんが、今後のマルチアカウント化においてコストや予算管理の重要性が高まってきており、押さえておくべきだと筆者は考えています。本書が少しでもお役にたてれば幸いです。
AWS Organizationsは、複数のAWSアカウントを一元管理する機能です。AWS Organizationsが登場する前は一括請求機能によって支払いアカウントにAWSアカウントを連結させていました*1。AWS Organizationsの登場で一括請求機能に加えてAWSアカウント作成の自動化、セキュリティポリシーの適用などマルチアカウント構成するうえでは必要不可欠な機能を提供しています。
[*1] Consolidated billingという名前から、よくコンソリと呼ばれます。
本書ではAWS Organizationsについて細かい説明はしませんが、本書を読み進めていくうえで必要な用語を紹介します(図1.1)。
AWSアカウントを統合した集合体。ルートを最上位に、組織単位(OU)によってアカウントを階層構造で管理できます。
組織を作成・管理するためのAWSアカウント。一括請求による支払い先AWSアカウントでもあります。
組織に属する管理アカウント以外のAWSアカウント。
メンバーアカウントや組織単位(OU)内のアカウントに対してAWSサービスのアクセスを制御するポリシー。
AWS Organizationsで組織を作成すると、組織内すべてのメンバーアカウントの支払いは管理アカウントの請求書に統合されます。一括請求にすると、組織内すべてのAWSアカウントはひとつのアカウントとして扱われるようになります。
月中にメンバーアカウントが組織に参加した場合、参加した日から月末までの利用料金が管理アカウントに請求されます。月初から組織加入前に発生した利用料金はメンバーアカウントに対して請求されます。
個々のAWSアカウントでの支払いに比べて、一括請求では次のメリットがあります。
一括請求にすると管理アカウントに対して請求書が発行され、メンバーアカウントの請求もまとめられます。管理アカウントだけで支払い処理が済むため、経理担当に喜ばれるでしょう。一括請求にしない場合は個々のAWSアカウントで支払い処理をする必要があります。
一括請求にすることで、管理アカウントからメンバーアカウントの利用料金を見ることができます。AWS Cost Explorer(以下、Cost Explorer)、AWS Cost and Usage Report(AWSのコストと使用状況レポート、以下CUR)でメンバーアカウント単位のコストを可視化したり、AWS Budgetsでメンバーアカウントを含んだ予算管理ができます。第2章、第3章、第4章で解説します。
組織内のメンバーアカウントで購入したリザーブドインスタンス(以下、RI)、Savings Plans(以下、SP)が余った場合、他のメンバーアカウントの割引を自動的に計算して適用されます*2。RIが途中で不要になってしまったとしても、他のメンバーアカウントでRIの適用条件に合うようにEC2インスタンスを起動すれば無駄なくコストを最適化できます。また割引共有をメンバーアカウント単位で無効化もできます。
[*2] RIやSPがどのように適用されるかは前著「1.5 インスタンスサイズの柔軟性」をご参照ください。
一括請求を有効にすると、組織内すべてのAWSアカウントの使用量を合算します。データ転送料金やS3のストレージ料金など使用量によって単価が段階的に低くなる料金体系の場合、自動的に計算され低価格の料金階層で利用できます。個々のAWSアカウントでの支払いより一括請求の方がコストを押さえられます。
一括請求というよりもAWS Organizationsによる組織化のメリットですが、Amazon EC2オンデマンドキャパシティー予約(以下、オンデマンドキャパシティー予約)を組織内のメンバーアカウントで共有できます。オンデマンドキャパシティー予約は、指定したEC2インスタンスとその個数分のキャパシティーを予約できる機能です。予約をすることでAWSのキャパシティーを考慮せずにいつでも起動できます。予約が有効になるとオンデマンドインスタンスと同じ料金が発生しますが、RI、SPを購入すると割引が適用されます。任意のメンバーアカウントで予約をすることで、コストコントロールがしやすくなります。