MEGAZONE

MEGAZONEブログ

Optimize your Amazon Aurora resources to reduce costs
Database re:Invent 2023

Optimize your Amazon Aurora resources to reduce costs

Pulisher : Mass Migration & DR Center ムン・ポンギ
Description : Amazon Auroraデータベースのコスト構成要素とワークロードのコストを最適化する方法の紹介セッション

Amazon Auroraのデータベースのコスト構成要素について詳しく知り、コスト重視の機能とツールを使用して、パフォーマンスや規模を犠牲にすることなくワークロードのコストを最適化する方法を知りたいと思い、申し込みました。

本日の議題は以下の通りです。
・Amazon Auroraのコストモデル
・Auroraのコスト構成要素
・Auroraのコストを監視し、最適化する方法
・コスト監視と最適化のためのツール

本日の議題は、Auroraのコストモデルを見て、コストコンポーネントを理解し、コストを監視し、各コストコンポーネントを最適化する方法を検討することです。

伝統的なコストモデルとAuroraのコストモデルを比較すると、伝統的なモデルは事前にリソースを割り当てて使用するかどうかに関わらず支払いを行うのに対し、Auroraモデルは柔軟性を重視し、実際の使用量に基づいて支払いを行います。

主な違いは、リソースの割り当てと支払い方法にあり、Auroraモデルは、使用したリソースに対してのみ支払う柔軟性を提供します。

2種類のコンポーネントがあります。

基本的なコスト構成要素は常に計算とストレージであり、コストの大部分を占めるのはこの2つです。使用しているコンピューティングの種類とサイズによってコストが決まります。

また、ストレージサービスシステムがあり、ストレージサブシステムといえば、ストレージのサイズ、または使用するボリュームのサイズです。 これらのうち、コンピューティングとIOPsが主な消費者です。バックアップは付加的なコスト要素であり、最適化されたバックアップコストに関する専用セクションもあります。Auroraは、機能の使用に対して別料金を請求することはなく、リソースの使用に対してのみ課金されます。

グローバルデータベースやコピーストレージなどの機能を使用するには、そのリソースに対して課金されます。これは、コストコンポーネントがどのように機能するかを示しています。

この例ではインスタンス超大型を使用しており、このインスタンスは10日間アクティブで、240ドルです。 したがって、米国東部では、私たちの罪の代償は1時間あたり553セントです。

もし私たちが簡単な麻薬を作るとしたら、132ドルと1セントがかかります。

コストの計算方法を理解したので、コストを節約または最適化するために何ができるでしょうか? まず最初にすべきことの1つは、これらのコストがどこで発生しているかを理解することです。

Amazon Serverless v2の利点は、自動拡張構成が可能で、コンピューティング容量の自動調整と必要に応じてコンピューティング容量の拡張(拡大及び縮小)が可能であることです。

下記のServerless v2の例は、プロビジョニングされたAuroraよりServerless v2が料金体系ではるかに経済的である計算式を示しています。

データを追加するたびに10ギガバイト単位でストレージを拡張します。課金用語として「GP月次増分」という用語を使用していますが、これは理解しにくいかもしれません。 しかし、この例を見て、それがどのように機能するかを見てみましょう。 この用語を導入したのは、ストレージを消費しない、または課金されないようにするためです。

例えば、100ギガバイトで開始し、毎日30ギガバイトを追加するとすると、初日には100ギガバイトを30日間保存するので、100に30を掛けます。次の日に30ギガバイトを追加しましたが、それは翌日のことなので、残りの日は29日、つまり30から1を引いた日数なので、30ギガバイトのうち29ギガバイト分しか請求されません。

次の日にさらに30ギガバイトを追加すると、28日間だけ課金されます。これを30で割って319を得ると、1GBあたりの費用が10セントなので、それを掛けると30を支払うことになります。

データを追加するほど継続的に費用が請求され、さらに重要なのは、縮小も行われるという点です。 したがって、テーブルを削除すると、そのストレージスペースに対する費用は請求されません。

支払わなければならない3番目のコンポーネントはIOです。IOは、ストレージからコンピュータにページを読み込むたびに、そしてストレージに書き込むたびに支払うものです。

例えば、Aurora Postgresqlではページサイズは8k、Aurora MySQLでは16kです。リポジトリから100ページが読み込まれた場合、それは100 IOであり、これらの100 IOに対して課金されます。

書き込みの場合、Auroraでは、従来のブロックストレージではなく、ログベースのストレージであることが興味深いところです。Auroraに書き込むのはログレコードであり、そのログを4Kブロックに詰めてストレージに送信します。 そして、1000個の4Kライトを行った場合、それは1000個のIO単位であり、それに対して課金されます。

バックアップは完全にあなたのために管理されます。バックアップについて心配する必要はありません。 基本的に、自動バックアップか多くのチェックのどちらかを選択することができます。

自動バックアップの場合、基本的にどのくらいの期間バックアップを維持したいかを教えてください。1日から35日までどこでも設定することができます。1日、2日、7日、35日まですべて可能です。自動バックアップを有効にすると、この期間のバックアップを継続的に維持します。

そして、この期間中に皆さんは複数の復元をすることができます。バックアップがストリームで発生するため、他のリレーショナルデータベースとは異なり、通常5分間隔ではなく、ストリーミング方式でAuroraで行われます。

通常、時間を戻してポイントを復元する能力は、通常は数秒以内に行うことができます。自動バックアップについて説明しましたが、手動でスナップショットを作成する機能もあります。

ここで面白いことが起こるのですが、お客様が手動スナップショットと自動バックアップの違いを理解できない場合があります。自動バックアップは期間が過ぎると自動削除されます。手動スナップショットは自動削除されません。 一度手動スナップショットを撮ると、削除するまで永遠に保持されます。

そして、数テラバイトのデータベースがある場合、事実上、作成するすべての手動スナップショットに対して課金されます。 誤って作成したり、誰かが後で使用すると言って10個のスナップショットを作成した場合、あなたはそれらを支払うことになります。 したがって、スナップショットコストとバックアップコストを最適化することは非常に重要です。

データ転送コストはかなり簡単です。EC2や他のサービスを利用したことがあるなら、かなり簡単です。注意すべき点は、クライアントとAuroraクラスターが同じ場所にある場合、データ転送コストは発生しないということです。 また、レプリケーション中のすべてのレプリケーションにはコストがかかりません。 ただし、クライアントがAZを横断したり、リージョン間を移動する場合は、その時点からコストが発生します。

クライアントとAuroraクラスターが同じように構成されている場合、データ転送コストやイベントレプリケーションに関連するコストは発生しません。

ただし、クライアントがAZを横断したり、リージョン間を移動する場合は、追加料金が発生します。 特に、複数のクライアントがAZに接続し、クロストラフィックが発生する場合は、追加料金が発生します。

特に、複数のクライアントがAZに接続され、クロストラフィックが発生する場合、コストが発生する可能性があります。

機能の使用には課金されませんが、リソースの使用にはコストが発生します。

例えば、グローバルデータベースを使用すると、あるリージョンから別のリージョンにリポジトリ全体を複製することになります。 この過程で追加のリポジトリを作成することになり、その補助リージョンでそのリポジトリの費用が請求されます。 また、リプレイの費用も発生し、追加の読み取りレプリカを接続すると、その費用が請求されます。

このセッションはChalk Talkということで、上記の内容を説明してくれて、自由に質問して答えてくれるセッションでした。Auroraでどのようなポイントでコストが発生するのかを詳しく理解することができ、これをもとにアーキテクチャを構成したり、ライトサイジングをする作業にもかなり役立つと思います。

ブログ一覧

この記事の読者はこんな記事も読んでいます