MEGAZONEブログ
Using Aurora Serverless to simplify manageability and improve costs
Aurora Serverlessを使用して管理機能を簡素化し、コストを改善する
Pulisher : Managed & Support Center ムン・ボンギ
Description : Amazon Aurora Serverlessのデータベース容量の管理方法やコスト効率化について紹介したセッション
はじめに
DBAとして業務を遂行する中で、最近の課題となるのは、AWSの効率最適化策の模索とright sizingのようです。 そこで、データベースの容量管理を簡素化し、最も要求の厳しいワークロードもコスト効率よくサポートするAmazon Aurora Serverlessが適しているかどうか、Aurora Serverless v2のアーキテクチャ、データベースをすぐに拡張できる方法を知り、拡張、HAおよびDRの主な改善点について知りたいと思いました。
セッションの概要紹介
クラウドで運用されるコストが高く、互換性の高いリレーショナルデータベースがあります。このデータベースは商用ですが、5分の1のコストで利用でき、非常に高速に成長します。
しかし、予測を超えると、より大きなサイズのマシンをプロビジョニングして作業を行う必要があるかもしれません。
数十万のアプリケーションが単一または複数のデータベースをサポートする場合、各データベースの容量管理が重要になり、管理が難しくなります。
Aurora Serverless v2の自動サイズ調整とオンデマンド機能をサポートします。
これにより、アプリケーションの負荷が変化するにつれてデータベースが自動的に拡張されるため、データベースを拡張する必要がなくなります。データベースが消費するデータベースリソースに対して、単純に従量課金制で支払います。 そして、この新しいバージョンでは、お客様のワークロードを綿密に監視します。
データベースは、そのリソースを確保すると拡張されます。私たちが行うことは、実行中のデータベースプロセスを取得して、より多くのリソースを提供し、より多くのメモリを提供することです。
マシンを変更したり、そのようなことはしません。 そのため、拡張時に中断が発生することはありません。
数十万のトランザクションを実行することができ、データベースはリソースをインポートする際に継続的に拡張されます。 そのため、私たちは中断のない拡張体験を提供します。
サーバーレスで高可用性を保証するために、すべてのクラスターはインスタンスのクラスター容量構成と同じであり、Tier 0とTier 1の専用レプリカは基本インスタンスのサイズと一致し、可用性99.99をサポートするMult-AZ Auroraクラスターです。
Aurora Serverless v2はAuroraのリーダーの役割と同様に動作し、異なるノードのいずれかをServerlessに設定することができます。これにより、Provisioned AuroraとServlessインスタンスを混合してクラスターを構成することができます。
データは複数の可用性領域に6つのコピーで保存され、どのコピーに問題が発生しても、残りの5つのコピーでサービスが継続されます。
データサイズが増加するにつれて、ストレージ層も自動的に拡張され、使用されている量に対してのみコストが発生します。 また、Aurora ServerlessとAuroraのリードレプリケーションと自動ログ機能の説明も含まれています。これらの機能は、クラスタレベルで容量範囲を指定し、すべてのインスタンスがその容量範囲を継承できるようにし、可用性と自動ログ機能を提供します。
グローバルなアプリケーション要件やディザスタリカバリが必要な場合は、グローバルデータベースを有効にして、ストレージを第2の関係としてレプリケーションします。
これはストレージレイヤのレプリケーションであり、レプリケーションサーバーとエージェントも作成されます。グローバルデータベースを使用すると、さまざまなリージョン間で低遅延で読み取りスケーラビリティを実現できます。
各リージョンに最大15個のリーダーノードを作成し、最大90個のリーダーノードを持つことができます。
グローバルデータベースは、時折発生する書き込みを補助リージョンから元のリージョンに転送する機能を提供し、災害が発生した場合、代替リージョンが代わりになり、通常1分未満のダウンタイムが発生します。保有しているノードはサーバーレスノードとして活用することができ、活性化されていない場合、最小限の容量を支払うだけで済みます。
リージョン障害時、代替リージョンは、ワークロードをサポートするためにインスタンスを拡張したり、読み取りスケーラビリティのためにそのリージョンでワークロードが発生するとインスタンスを拡張します。
多くのクエリを処理するアプリケーションでは速い応答時間が必要で、サーバーレスアプリケーションであるラムダ関数などを拡張することができます。
データベースは使用されていない接続でもリソースを消費する可能性があるため、これを防ぐためにRDSプロキシを使用します。RDSプロキシは高可用性データベースプロキシで、AuroraとRDSを完全に管理し、接続を共有することで負担を軽減します。DNSの伝搬遅延がないため、障害交換時間が66%速くなります。
運用の複雑さを軽減し、コストを削減するのにどのように役立つかを見てきました。
また、Auroraと同じアーキテクチャ、Multi-AZ、読み取りクローン、Auroraグローバルデータベース、RDS Proxyなど、Auroraのすべての機能を確認しました。
セッションを終えて
実際にRDSの運用業務を行っていると、PRD用途のRDSも重要ですが、DEVやSTG領域のRDSの活用度や管理も重要です。これはコスト削減にも直結する問題であるため、Aurora Serverlessは適材適所に適切なRDSを見つけるための良い代替手段になると思います。