【AWS Summit Japan 2024】Amazon Aurora の技術とイノベーション Deep dive(AWS-39)
2024.6.25
こんにちは。Cold-Airflow です。
本記事は、AWS Summit Japan 2024 のセッション「Amazon Aurora の技術とイノベーション Deep dive」のレポート記事です。
Aurora の基本的なアーキテクチャから最近の機能の紹介までが含まれていました。
もし、Aurora をご利用中もしくは、データベースで課題を抱えていた場合、それらを解決してくれる機能があるかもしれません。
セッション概要
Amazon Aurora の技術とイノベーション Deep dive
AWS セッション(Level 400: 上級者向け)
テーマ:生成 AI,AWS for Data
スピーカー
アマゾン ウェブ サービス ジャパン合同会社 塚本 真理
概要
Amazon Aurora は、ストレージとコンピューティングを分離する革新的なアーキテクチャと、グローバル データベースや低レイテンシーのリードレプリカなどの高度な機能を備えており、リレーショナル データベースのあり方を再構築します。
Aurora は、オープンソースの MySQL および PostgreSQL との完全な互換性を備え、比類のないパフォーマンスと大規模な高可用性を提供する最新のデータベース サービスです。
このセッションでは、Aurora I/O-Optimized、Aurora zero-ETL と Amazon Redshift の統合、Aurora Serverless v2 など、Aurora が提供する新機能について詳しく説明します。
pgvector 拡張機能の追加により、ベクター埋め込みの保存と生成 AI のベクター類似性検索のサポートがどのように可能になるかについても紹介します。
レポート
アジェンダ
- Amazon Aurora の基本
- アーキテクチャ
- グローバルデータベース
- 管理性の向上に役立つ機能
- Aurora Serverless
- Managed Blue/Green Deployment
- Amazon Redshift との Amazon Aurora ゼロ ETL 統合
- 新しいストレージタイプと Optimized Read
- 生成 AI に活用できる機能
Amazon Aurora
- 概要
- MySQL と PostgreSQL の完全な互換性を備え、世界規模で比類のない高いパフォーマンスと可用性を提供
- データベースの 10 分の 1 のコストで実現するように設計されています。
- 特徴
- パフォーマンスと拡張性
- 一般的な MySQL の 5 倍、PostgreSQL の 3 倍のスループット
- 最大 15 個のリードレプリカまでスケールアウト
- ストレージとコンピューティングを分離することでコストの最適化を実現
- 高速なデータベースクローン作成
- 動的にスケーリングする分散型ストレージサブシステム
- 可用性と耐久性
- 3 つの AZ にわたる 6 つのデータのコピー (1 つ分の料金支払いのみ)
- ポイントインタイムリカバリ(PITR) を備えた自動、継続的、増分バックアップ
- フォールトトレラント、自己修復、自動スケールのストレージ
- 災害復旧のためのグローバルデータベース
- 高い安全性
- ネットワークの分離
- 保存時/転送時の暗号化
- 複数の安全な認証メカニズムと監査制御をサポート
- フルマネージド
- ハードウェアのプロビジョニング、データベースのセットアップ、パッチ適用、バックアップなどの時間のかかる管理タスクの管理を自動化
- サーバーレス構成オプション
- パフォーマンスと拡張性
Aurora ストレージとレプリカ
- 可用性と耐久性
- 最初に作成されるインスタンスはライターインスタンス
- 3AZ にわたって展開
- 6 つのブロックにデータを書き込み – 4 つの箇所に書き込みができれば正常とみなす – 1AZ がつぶれても継続可能
- 拡張性とパフォーマンス
- リードレプリカを起動できる
- レプリケーションはストレージのアタッチを行うだけなので起動速度が早い
- 非同期で更新ログをレプリケーション
- バッファ上のデータも更新される
- リードレプリカは 15 インスタンスまで利用可能
- 別のインスタンスタイプを選択したり、プロビジョニングとサーバレスを混ぜることも可能
- フェールオーバー
- ライターが利用できなくなったらリードレプリカにフェイルオーバー
- DNS 経由でアクセスしているのでアプリは DNS から宛先を取得して接続できる
- AWS が提供する JDBC を使えば変更を待たずに切り替わる
- 最大で接続時間が 66%短縮される
- New open-source AWS Advanced Python Wrapper driver now available for Amazon Aurora and Amazon RDS – AWS
- aws/aws-advanced-python-wrapper: The AWS Advanced Python Driver is complementary to and extends the functionality of an existing Python database driver to help an application take advantage of the features of clustered databases such as Amazon Aurora.
Amazon Aurora Global Database
- 概要
- リージョンをまたいだ構成
- 以前はバックアップを使っていたが、即時復旧が難しいという課題があった
- Global Database は設定を有効化するだけで用意できるので簡単
- レプリケーションの管理不要
- レプリケーションを並行してできる
- エージェントを通じてストレージに転送
- ストレージの転送も行っているのでストレージの障害でも負荷なく復旧ができる
- Switchover
- 別リージョンに切り替える方法
- トポロジをそのまま別リージョンに切り替える
- ロックして → データ検証 → 切り替える
- レプリケーションは逆方向に再構築される
- セカンダリーとして利用される
- Failover
- 単純に切り替える
- 障害が発生したときに行われる
- 非同期レプリケーション
- クラスターに達しているデータを切り替える
- プライマリ、セカンダリーでデータが違うが迅速にできる
- 全て自動的に行われる
- write forwarding
- グローバル規模のレイテンシーを改善する
- 近いリージョンにデータをコピーする
- アプリの書き込み読み込みを分けて実装するのは大変
- 書き込み転送という機能がある
- セカンダリーの書き込みがプライマリに転送できる
- 読み込みと書き込みを分離できる
管理性 Aurora Serverless
- Amazon Aurora Serverless v2
- CPU とメモリのリソースを追加することで 1 秒以内に自動的にスケールし、秒単位で課
- 数十万のトランザクションを実行してもスケーリングによる影響なし
- シンプルな 1 秒ごとの従量課金制
- ワークロードの変化や重い処理が行われたときサーバーのリソースを増やす必要がある
- レイテンシーが発生する場合でも負荷に合わせてスケールしてリソース不足を解消できる
- メモリと CPU が追加される
Amazon Aurora Managed Blue/Green deployment
- アプリの停止を気にする作業
- バージョン変更、スキーマ変更
- 上記の作業を短いダウンタイムで実現できる
- エンドポイントが変更されない
- ターゲットの名前も自動で変わる
RDS Blue/Green Deployments による DB 入れ替えのダウンタイム最小化
Getting Started with Amazon Aurora & Amazon RDS Blue/Green Deployments
管理性 – Amazon Redshift との Amazon Aurora ゼロ ETL 統合の導入
- 大規模なトランザクション分析
- 複雑なセットアップが必要になる
- アーキテクチャが複雑になる
- ペタバイト規模のトランザクション データに対してほぼリアルタイムの分析を可能にする簡単かつ安全な方法
- シンプルさとパフォーマンスを重視した設計
- Amazon Redshift 統合ターゲットを簡単に作成
- ストレージ層での自動データシーディングと継続的レプリケーション
- 取り込みと並行して分析を実行する
- Amazon Redshift システムテーブルと Amazon CloudWatch から進行状況、遅延、パフォーマンスを監視します
新しい Aurora ストレージタイプ
- Aurora クラスターストレージ
- Standard→ 従来
- コンピューティング (オンデマンド / RI)
- ストレージ (標準 – 従量課金制)
- I/O (従量課金制)
- I/O-Optimized→ 新登場
- コンピューティング (オンデマンド / RI) + 30%
- ストレージ (標準 – 従量課金制) + 125%
- I/O – コストなし
- Aurora I/O-Optimized
- すべてのワークロードに対する予測可能な価格
- IO 負荷の高いワークロードのコストパフォーマンスの向上
- 新しいクラスター構成により、顧客はコンピューティングとストレージの料金のみを支払う
- 読み取り/書き込み IO の料金は発生しない
- すべてのワークロードに対する予測可能な価格
- IO 支出が Aurora データベースの合計支出の 25% を超えた場合に有用
- 最大 40% のコスト削減により価格パフォーマンスが向上
- Aurora Serverless v2、オンデマンド、およびリザーブドインスタンス全体の Aurora MySQL および Aurora PostgreSQL で利用可能
- リザーブドインスタンスを使用すると、お客様はさらに IO を節約できます
- Aurora クラスターは月に 1 回ストレージ オプション (標準から I/O 最適化) を変更し、いつでも元に戻すことができます
- Aurora PostgreSQL 13.x 以降、および Aurora MySQL 3.0.3.1 以降で利用可能
- 以下の互換性があります
- Intel ベースの Aurora データベース インスタンス タイプ (t3、r5、r6i )
- Graviton ベースのデータベース インスタンス タイプ (t4g、r6g、r7g、x2g )
- Aurora サーバーレス v2
- Aurora Global Database クラスターはクラスターレベルで異なる Aurora ストレージ構成を持つことが可能
- IO パフォーマンスの向上も見込める
- より大きいインスタンスサイズだとパフォーマンスがより高くなる
Optimized Reads
- ローカル NVMe を利用して、よりレイテンシーの小さい I/O を実現
- 一時オブジェクト(Temp Object): ローカル NVMe 上に一時オブジェクトを置いてパフォーマンスを向上
- 階層型キャッシュ(Tiered Cache): ローカル NVMe のキャッシュにアクセスし、レイテンシーを改善
- IO を減らすことでレイテンシーを減らせる
pgvector
- オープンソースの拡張機能で、距離検索を提供しストレージ、インデックス作成、検索、メタデータをサポート
- Aurora でベクトルデータが扱える
- Aurora を使うメリットになる
pgvector/pgvector: Open-source vector similarity search for Postgres
感想
Aurora は運用でよく使っていますが、あまり使わない機能の仕組みや機能について解説されており、とても勉強になり満足しました。
RDS ではなく Aurora を選択する理由として、様々な機能で運用コストを削減できる点がかなり大きいと思いました。
今回紹介された機能は、技術的な課題からフィードバックを得て開発されているため、機能追加に歓喜したユーザーは多いのではないでしょうか。
この他にも、様々なアップデートがあり、別セッションではまだプレビュー中の「Aurora Limitless Database」について紹介されているためそちらも合わせてチェックすると良いです。
テックブログ新着情報のほか、AWSやGoogle Cloudに関するお役立ち情報を配信中!
Follow @twitter2021年新卒入社。インフラエンジニアです。RDBが三度の飯より好きです。 主にデータベースやAWSのサーバレスについて書く予定です。あと寒いのは苦手です。
Recommends
こちらもおすすめ
Special Topics
注目記事はこちら
データ分析入門
これから始めるBigQuery基礎知識
2024.02.28
AWSの料金が 10 %割引になる!
『AWSの請求代行リセールサービス』
2024.07.16