この質問をよく耳にします。AmazonAuroraはどうなっているのですか?組織に最適なマネージドデータベースサービスを決定する際には、考慮すべき複数の要素があります。それらすべてを実行する共通のスレッドは、必要な制御の程度です。 AmazonはAuroraDBaaS製品の背後に大きな重みを置いていますが、要件と優先順位によっては、AmazonEC2または別のAmazon以外のサービスでMariaDBなどのデータベースを実行することを選択する方が適している場合があります。
AmazonAuroraについておそらく知らなかった4つのことを次に示します。
古くて時代遅れのデータベース
AmazonAurora2.xは古いバージョンのMySQL5.7を使用しています。
Aurora 2.0.1は、2016年4月にリリースされたMySQL5.7.12を使用して2018年2月にリリースされました。Aurora2.xは引き続き古いバージョンのMySQL5.7を使用しています。ただし、Amazonは使用するメンテナンスバージョンを公開しなくなりました。これは当然のことです。 5.7.12以降、MySQLのメンテナンスリリースは12を超えています。それらに含まれるバグ修正のうち、Amazonがバックポートしたものはいくつありますか? 17…数百のうち。
- Aurora 2.02.0:バグ#22833364
- Aurora 2.02.3:バグ#24929748、#26867509、#22843444、#25080442
- Aurora 2.03.0:バグ#24929748、#26867509、#22843444、#25080442
- Aurora 2.03.3:バグ#25361251、#26734162、#27460607、#22343910、#23074801、#25287633
- Aurora 2.04.0:バグ#26225783
- Aurora 2.04.2:バグ#24829050
新しいデータベースを選択できるとしたら、3年以上前にリリースされたデータベース、3年間のバグ修正、セキュリティパッチ、改善、新機能が欠落しているデータベースを選択しますか?
必要なダウンタイムと中断
Auroraは、メンテナンスのためにダウンタイムが必要です。一部のメンテナンスはオプションであり、無期限に延期することができますが、セキュリティパッチや信頼性パッチなどの他のメンテナンスが必要なだけでなく、ランダムな30分のメンテナンスウィンドウ中にダウンタイムが発生します。さらに、データベースのアップグレード(つまり、データベースエンジンの更新)は、クラスター内のすべてのデータベースインスタンスで同時に実行されるため、20〜30秒のダウンタイムが発生します。
一方、MariaDBプラットフォームは、適切なスイッチオーバーを備えたローリングアップグレードをサポートしているため、DBAはダウンタイムゼロのメンテナンスをオンデマンドで実行できます。
Auroraは、メンテナンスとアップグレード以外に、自動フェイルオーバーの実行に最大2分かかることがあり、その結果、ダウンタイムが長くなります。さらに、自動フェイルオーバーにより、接続、セッション、および処理中のトランザクションが失われます。
MariaDBプラットフォームは、Auroraとは異なり、マルチマスタークラスタリングをサポートして、予期しない障害によるダウンタイムを排除します。さらに、MariaDBプラットフォームは、接続の移行、セッションの復元、トランザクションの再生をサポートしており、予期しない障害がアプリケーションに影響を与えないようにします。
エンタープライズセキュリティの欠如
Auroraには、データベースファイアウォール、動的データマスキング、役割、キーローテーション、TLS 1.3など、最新のデータベースに期待されるエンタープライズセキュリティ機能の多くが欠けています。
AuroraはAmazonKeyManagement Serviceをサポートしていますが、データベースインスタンスのキーローテーションはサポートしていません。むしろ、キーエイリアスを使用して、新しいデータベースインスタンスのキーを変更できます。そのため、新しいキーが追加された場合でも、既存のデータベースインスタンスは、古いキーを使用してデータの暗号化と復号化を続行します。
MariaDBプラットフォームはキーローテーションをサポートしており、新しいキーが追加されると、新しいキーを使用してデータを自動的に再暗号化できるため、古いキーを破棄できます。
Auroraには、MariaDBプラットフォームで利用できる強力なデータベースファイアウォールと動的データベースマスキング機能がありません。また、Auroraは古いバージョンのMySQLに基づいているため、役割もありません。さらに、TLS 1.0、1.1、および1.2に制限されています。
最小公分母
Auroraは、最小公分母を満たすことを目的としたCookie-Cutterテンプレートを使用して作成された最低限のデータベースをユーザーに提供します。 MariaDBプラットフォームは、Spiderストレージエンジンを介して透過的なシャーディングで読み取り、書き込み、ストレージをスケールアウトできますが、MyRocksストレージエンジン(Facebookで開発)を介してSSDの書き込みおよびスペース最適化ストレージの恩恵を受けることもできますが、Auroraにはどちらもありません。 InnoDBストレージエンジンに限定されています。
次に、分散型の列型ストレージと、MariaDBColumnStoreによる大規模な並列処理があります。これは、Auroraでは利用できないもう1つのストレージエンジンです。 Amazonはトランザクション処理にAuroraを使用し、分析にRedshiftを使用することを提案しますが、どちらもMariaDBプラットフォームで実行でき、ハイブリッドトランザクション/分析処理(HTAP)を有効にします。
ワークロードが最適化されたストレージエンジン以外にも、Oracleデータベースの互換性(PL / SQLなど)、テンポラルテーブル、ポイントインタイムロールバック、ストリーミング変更データキャプチャなど、Auroraにはない多くの機能がMariaDBプラットフォームで利用できます。 、Apache Kafkaプロデューサー、透過的な読み取り/書き込み分割、チェック制約、デフォルト値式、共通表式、集合演算子、ウィンドウ関数、ユーザー定義関数(スカラー、集計、ウィンドウ)、シーケンスなど。
Amazon自身のAuroraでの経験は、上記の考慮事項の重要性を示しています。一部のデータベースをAuroraに移動した直後、AmazonはPrime Day 2018中に広範囲にわたる停止やその他のデータベースの問題を経験しました。PrimeDay2019が近づくにつれ、Amazonの幸運を祈っています!