Upgrade to Pro — share decks privately, control downloads, hide ads and more …

FinJAWS_reinvent2024_recap_database

 FinJAWS_reinvent2024_recap_database

第38回 FIN-JAWSでの発表資料

Hidehiko ASAHI

January 22, 2025
Tweet

More Decks by Hidehiko ASAHI

Other Decks in Technology

Transcript

  1. 2 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.

    ◼朝日 英彦(ASAHI Hidehiko) ⚫金融業界向けのシステム基盤設計・構築、特にデータベース周りのチューニング等 ⚫金融業界のシステムモダナイズやクラウドマイグレ案件などに従事 ◼AWS関連の資格など ⚫Japan AWS Top Engineer (Database) 2022, 2023, 2024 ⚫AWS Community Builder (DATA) 2023, 2024 ⚫AWS Certified Database – Specialty (2022, 2023, 2024 Japan AWS All Certifications Engineer) ◼その他データベース関連の資格など ⚫Oracle ACE Pro(Database) ⚫Oracle Master Platinum ⚫Oracle Database Cloud Administrator 2023 Certified Professional ⚫My Oracle Support MOST VALUED CONTRIBUTER 2022, 2023 ⚫Azure Database Administrator Associate ⚫Google Cloud Certified Professional Cloud Database Engineer ⚫情報処理技術者(データベース) 自己紹介
  2. 3 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.

    目次 • re:Inevnt 2024 におけるデータベースのアップデート • Aurora DSQL • Oracle Database@AWS • まとめ
  3. 4 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.

    re:Inevnt 2024 におけるデータベースのアップデート
  4. 5 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.

    re:Inevnt 2024 におけるデータベースのアップデート 出典:https://pages.awscloud.com/rs/112-TZM-766/images/AWS-Black-Belt_2024_AWS-reInvent_1206_v1.pdf
  5. 6 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.

    Amazon Aurora DSQL 出典:https://pages.awscloud.com/rs/112-TZM-766/images/AWS-Black-Belt_2024_AWS-reInvent_1206_v1.pdf
  6. 7 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.

    ◼増永先生の本を引用 Amazon DynamoDB 出典:https://pages.awscloud.com/rs/112-TZM-766/images/AWS-Black-Belt_2024_AWS-reInvent_1206_v1.pdf
  7. 8 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.

    ◼増永先生の本を引用 Oracle Database@AWS 出典:https://pages.awscloud.com/rs/112-TZM-766/images/AWS-Black-Belt_2024_AWS-reInvent_1206_v1.pdf
  8. 9 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.

    ◼増永先生の本を引用 Amazon MemoryDB 出典:https://pages.awscloud.com/rs/112-TZM-766/images/AWS-Black-Belt_2024_AWS-reInvent_1206_v1.pdf
  9. 10 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.

    ◼増永先生の本を引用 AWS DMS 出典:https://pages.awscloud.com/rs/112-TZM-766/images/AWS-Black-Belt_2024_AWS-reInvent_1206_v1.pdf
  10. 12 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.

    Aurora DSQLとは? ◼データベースに今求められているもの? ⚫高可用性 ⚫マルチリージョン ⚫低レイテンシ ⚫強整合性 ⚫ゼロ運用負荷 ⚫SQL互換 出典:https://www.youtube.com/watch?v=LY7m5LQliAo ◼Amazon Aurora DSQL ⚫最速の分散データベース ⚫制限のないスケール ⚫インフラ運用ゼロ ⚫マルチリージョンで99.999%の高可用性 ⚫強整合性 ⚫PostgreSQLとの互換性
  11. 13 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.

    Fastest Distributed SQL Database? 出典:https://www.youtube.com/watch?v=LY7m5LQliAo
  12. 14 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.

    なんで最速なの? 出典:https://aws.amazon.com/jp/blogs/news/introducing-amazon-aurora-dsql/ https://aws.amazon.com/jp/blogs/news/concurrency-control-in-amazon-aurora-dsql/ ◼Concurrency Control(同時実行制御)とは? ⚫ OCC(楽観的同時実行制御:Optimistic Concurrency Control) ロックを利用せずにコミットのタイミングでトランザクションが破られていないかを確認し、問題ない場合にはコミット、問題 がある場合にはロールバックを実行する ⚫ PCC(悲観的同時実行制御:Pessimistic Concurrency Control) ロックを利用し、トランザクションがその他のトランザクションに影響を与えないようにブロックする。ロックオーナーがロックを 解放するまで競合するトランザクションは実行できない。多くのRDBMSではPCC(ロックシステム)が採用される (※)厳密にはOCCとPCCのみがあるのではなく、ロック方式、時刻印方式、楽観同時実行制御方式、タハン同時実行 制御方式などがあり、組み合わせて同時実行制御が行われています
  13. 15 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.

    なんで最速なの?(OCCとPCC) OCC:楽観的同時実行制御 PCC:悲観的同時実行制御 注:正確な説明ではありません!!
  14. 16 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.

    結局どうすればよいの? ◼基本的に向かない処理がある ⚫更新(Update)の競合が多い:リトライが多くなる ⚫ロングトランザクション(集計、バッチ処理)が多い(DWHも含む):10000行迄の制限 がある&ロックされないのでエラーリトライが発生する場合が多くなる ⚫厳密な順序性が必要になる:リトライ時に順序が変わる ◼どういったユースケースが対象なの?→ DynamoDB for SQL Applications ⚫E-Commerceとか? • Building Global Applications with Amazon Aurora DSQL (https://www.youtube.com/watch?v=-oHHwuFDKwE) ⚫世界最大級のE-CommerceであるAmazon.com自体はDynamo(KVS)で実装 (https://www.allthingsdistributed.com/files/amazon-dynamo-sosp2007.pdf) ◼使いたい場合には・・・ ⚫現在のボトルネックがDSQLで解消できるかの机上確認(w/有識者) ⚫アプリケーションでの実装ユースケースを利用した十分なテストを実施しましょう ⚫ジッターを伴うタイムアウト、再試行、およびバックオフを入れましょう (https://aws.amazon.com/jp/builders-library/timeouts-retries-and-backoff-with-jitter/) Serverlessなので見積 もりしづらい・・・
  15. 17 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.

    Cloud Spannerとの比較 ◼マルチリージョンなRDBMSというと・・・・Cloud Spanner Aurora DSQL Cloud Spanner ベンダ AWS Google Cloud 特長 低レイテンシ 書き込みのスケールアウト 高可用性(※1) シングルリージョン:99.99% マルチリージョン:99.999% シングルリージョン:99.99% デュアルリージョン:99.999% マルチリージョン:99.999% バージョン なし なし データベースパラメータ なし なし メンテナンスダウンタイム なし なし エンドポイント リージョン毎 一つ 互換性 PostgreSQL Google SQL PostgreSQL(pgAdapterの利用(※2)) トランザクション分離レベル Repeatable Read(Snapshot Isolation) Serializable 同時実行制御 OCC PCC 分散アーキテクチャ Calvin(?) PAXOS コスト 未定 (サーバレス、スモールスタート可能) 最低構成で月20,000円くらい? エディションが選択可能 (サーバレス、スモールスタート可能) その他 Graphモデルもサポート BigQueryとの連携もサポート ※1:シングルリージョンに比べてマルチリージョンはレイテンシが落ちる https://qiita.com/asahide/items/1b3bb4b907871aa51394 ※2:pgAdapterはプロキシが必要だが、プロキシのCPU負荷が高くなる場合がある https://ascii.jp/elem/000/004/215/4215340/ • Cloud Spannerは書き込み スケールアウトが特長となる • 比較すべきはLimitless Databaseかも・・
  16. 19 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.

    Oracle Database@AWS ◼Oracleが提供しているマルチクラウドサービス(時期はプレビュー含む) サービス名 概要 AWS Azure Google Cloud 相互接続(クロスクラウド接続) OCIと他クラウドを直接接続する方 式 ? 〇(2019~) 〇(2024~) Oracle Database for 他クラウド 他クラウドのコンソールで相互接続や サービス利用を完結することができる サービス (Oracle Database@クラウド方式 に収れんされると想定) × 〇(2022~) × Oracle Database@他クラウド Oracle Databaseの筐体を他のクラ ウドのデータセンタの中に配置して利 用できるようにするもの 〇(2024~) 〇(2023~) 〇(2024~)
  17. 20 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.

    マルチクラウド構成の課題 ◼AP-DB分離構成 出典:https://speakerdeck.com/hk_shino/2023-09-05-ocijp-mareniyokuarumarutikurautotedb-apfen-li-gou-cheng-nokoto?slide=4
  18. 21 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.

    Oracle Database@AWSのアーキテクチャ ◼Oracle Database@AWSのアーキテクチャ ⚫シングルAZ内での接続が低レイテンシを実現できる 出典:https://docs.aws.amazon.com/odb/latest/UserGuide/what-is-odb.html
  19. 22 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.

    Oracle Database@AWSのアーキテクチャ ◼Oracle Database@AWSのアーキテクチャ ⚫シングルAZ内での接続が低レイテンシを実現できる 出典:https://docs.aws.amazon.com/odb/latest/UserGuide/what-is-odb.html
  20. 23 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.

    ODB network ◼AWSのAZ内のネットワーク ⚫OCIのネットワークへとマップされている 出典:https://docs.aws.amazon.com/odb/latest/UserGuide/how-it-works.html#how-it-works.odb-network
  21. 24 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.

    Oracle Database@AWSのアーキテクチャ ◼Oracle Database@AWSのアーキテクチャ ⚫シングルAZ内での接続が低レイテンシを実現できる 出典:https://docs.aws.amazon.com/odb/latest/UserGuide/what-is-odb.html
  22. 25 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.

    ODB peering ◼VPCとのピアリング ⚫1つのVPCとODB networkをプライベートルーティングする ⚫VPCは複数のAZに通常跨るが・・・??? 出典:https://docs.aws.amazon.com/odb/latest/UserGuide/configuring.html
  23. 26 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.

    Oracle Database@AWSの構成 ◼シングルAZ内にアプリケーションからDBまでを配置することで、レイテンシ含めたExadataのパワーを享受す ることができる 出典:https://docs.aws.amazon.com/odb/latest/UserGuide/what-is-odb.html
  24. 27 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.

    Oracle Database@AWSの高可用性 ◼高可用性は? ⚫ AP:AZ内でのActive/StandbyやActive/Active構成など 出典:https://docs.aws.amazon.com/odb/latest/UserGuide/what-is-odb.html or/and
  25. 28 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.

    Oracle Database@AWSの高可用性 ◼高可用性は? ⚫ DB:Oracle Data Guardなどによるマルチリージョン構成等を活用 出典:https://docs.aws.amazon.com/odb/latest/UserGuide/what-is-odb.html 東京リージョン 大阪リージョン Oracle Data Guardなど
  26. 29 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.

    ゴールドマンサックスの事例 ◼ゴールドマンサックスの事例におけるレジリエンシはシングルAZ・マルチリージョンの構成・・・AWS上ではマルチ AZがデファクトだが、それに縛られるものではない →お客様に提案する際にはこの辺を引き合いに出して設計を理解してもらう必要があると想定 出典:AWS re:Invent 2024 - Replatforming for reinvention: Modernizing mainframes at Goldman Sachs (FSI312) https://www.youtube.com/watch?v=lscQmFvnL5M
  27. 30 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.

    AWS上でOracle Databaseを利用したい場合 Amazon RDS RDS Custom AutonomousDB ExaDB-D 管理形態 Full-Managed Automated Full-Managed Automated ライセンス利用形態 SE2は一部ライセンス込 も可、BYOL BYOL ライセンス込、BYOL ライセンス込、BYOL データベースバージョン 19c、21c 19c 19c、23ai 19c、23ai 最大コア数 128vCPU 128vCPU 256vCPU 992vCPU 機能 制限あり 制限あり 制限あり 全機能利用可能 スケーリング 可能(要再起動) 可能(要再起動) 無停止で可能(上限アリ) 無停止で可能 可用性(HA)、DR Multi-AZ、Data Guard AutoRecovery機能、 Data Guard RAC、Autonomous Data Guard RAC、Data Guard 運用(DBパッチ適用) ベンダ(タイミングは選択 可能) ユーザ(適用はAWS) ベンダ(タイミングは選択 可能、条件付き) ユーザ ログ監視 Cloud Watch Logsを 利用可能 オンプレと同様 ログ監視不要 ←大丈夫? オンプレと同様 バックアップ マネージド マネージド、手動 マネージド マネージド、手動 ストレージ 64TiB オートスケール可能 64TiB オートスケール不可 384TB、 オートスケール可能 769TB IOPS(読み取り) オートスケール可能 ◼RDS for Oracleと似た形で利用できるのはAutonomous DB
  28. 31 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.

    (補足)クラウド上でのOracleライセンスの考え方 ◼クラウド上でのOracleライセンスの考え方 ◼OCIの場合 ◼AWS, Azure, Google Cloud(承認されたクラウド環境)の場合 出典:https://www.ashisuto.co.jp/db_blog/article/oracle-database-license-rule04.html https://www.oracle.com/assets/procr-core-factor-table-suplmnt-jp-3304645-ja.pdf https://www.oracle.com/a/ocom/docs/cloud-lic-170290-ja.pdf 4vCPU (2コア、2OCPU) ライセンス換算で二倍 お得!
  29. 32 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.

    Oracle@AWS をどう使う? ◼Oracle@AWSで利用できるシステムはExadata基盤を利用したシステム (Autonomosu DB、ExaDB-D(&ExaDB-XS))のみとなり、通常のRDSのようなライト なデータベースは提供されない →基本的にコア単価は高くなる(ただしライセンス含めると係数により安くなるかも?) →ライトな分野は引き続きRDS? ◼Oracle@AWSは基本的にシングルAZが前提となるため、利用する場合には全体のシ ステムアーキテクチャもシングルAZをイメージして活用する必要がある ◼(ぶっちゃけExaDBの運用は大変、Auroraとかを運用しているのと段違いで大変、メン テナンススケジュールとかパッチバージョンの互換性とかいろいろと気にする必要がある)
  30. 34 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.

    まとめ ◼Aurora DSQL → DynamoDB for SQL Applications ⚫ 小規模なアプリケーション、例えばLambda などからのアクセスから、大規模なソリューショ ン迄対応が可能! ⚫ 楽観的同時実行制御(OCC)での制御となるため、リトライ処理などは個別に実装が 必要←小規模な開発でトライしてみて動きを確認していくと良いのでは? ◼Oracle@AWS → Exadataなどの強力なパワーが必要な場合の選択肢 ⚫ 基本的にはOCIベースなので運用・監視などどこまでAWSと統合できるかは現時点では不 明(IAMとかの統合を見る限りはなるべくAWS内で完結させたいようには見える) ⚫ シングルAZで密に結合させることでExadataのパワーを享受できる、そのためマルチAZを前 提とした構成の場合には考慮が必要となる
  31. 36 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.

    Aurora DSQLとは? ◼Amazon Aurora DSQL ⚫最速の分散データベース ⚫制限のないスケール ⚫インフラ運用ゼロ ⚫マルチリージョンで99.999%の高可用性 ⚫強整合性 ⚫PostgreSQLとの互換性 出典:https://www.youtube.com/watch?v=LY7m5LQliAo
  32. 37 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.

    PostgreSQLとの互換性 ◼DSQLではサポートされていないPostgreSQL機能 出典:https://docs.aws.amazon.com/aurora-dsql/latest/userguide/working-with-postgresql-compatibility-unsupported-features.html
  33. 38 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.

    Aurora DSQLとは?(高可用性) ◼Amazon Aurora DSQL ⚫最速の分散データベース ⚫制限のないスケール ⚫インフラ運用ゼロ ⚫マルチリージョンで99.999%の高可用性 ⚫強整合性 ⚫PostgreSQLとの互換性 出典:https://www.youtube.com/watch?v=LY7m5LQliAo
  34. 39 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.

    Aurora DSQLの高可用性(シングルリージョン) ◼シングルリージョン構成:99.99% ⚫3つのAZにそれぞれ コンピュートレイヤ、トランザクションログレイヤ、ストレージレイヤが存在する ⚫書き込みが全てのトランザクションログに記録され、同期的にストレージにも複製される 出典:https://aws.amazon.com/jp/blogs/news/introducing-amazon-aurora-dsql/
  35. 40 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.

    Aurora DSQLの高可用性(マルチリージョン) ◼マルチリージョン構成:99.999% ⚫複数(二つ)のリージョンエンドポイントを持ち、どちらでも読み書きが可能(どちらに書き込んでも整合 性が維持される) ⚫コミットされたトランザクションからの変更が他のリンクされたリージョンに複製される ⚫第3のリージョンとしてWitnessリージョンが必要で、Witnessリージョンには暗号化されたトランザクショ ンログのみ連携される 出典:https://aws.amazon.com/jp/blogs/news/introducing-amazon-aurora-dsql/
  36. 41 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.

    Aurora DSQLとは?(高可用性) ◼Amazon Aurora DSQL ⚫最速の分散データベース ⚫制限のないスケール ⚫インフラ運用ゼロ ⚫マルチリージョンで99.999%の高可用性 ⚫強整合性 ⚫PostgreSQLとの互換性 出典:https://www.youtube.com/watch?v=LY7m5LQliAo
  37. 42 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.

    OCC(Optimistic Concurrency Control) ◼Concurrency Control(同時実行制御)とは? ⚫OCC(楽観的同時実行制御:Optimistic Concurrency Control) ロックを利用せずにコミットのタイミングでトランザクションが破られていないかを確認し、問題 ない場合にはコミット、問題がある場合にはロールバックを実行する ⚫PCC(悲観的同時実行制御:Pessimistic Concurrency Control) ロックを利用し、トランザクションがその他のトランザクションに影響を与えないようにブロック する。ロックオーナーがロックを解放するまで競合するトランザクションは実行できない。多くの RDBMSではPCC(ロックシステム)が採用される (補足) 厳密にはOCCとPCCのみがあるのではなく、幾つか定義されています。また、どれかのみを 利用するのではなく、複数組み合わせて利用されています。(ネイティブなPostgreSQLは ①と④、DSQLは②、③、④) ①ロックを用いた同時実行制御 ②時刻印を用いた同時実行制御(Timestamp Ordering) ③楽観的同時実行制御(OCC:Optimistic Concurrency Control) ④多版同時実行制御(MVCC:Multi version Concurrency Control) 出典: 北川博之(2020)データベースシステム改訂2版 第10章 同時実行制御
  38. 43 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.

    トランザクションって?(ACID特性) ◼ACID特性 出典:https://e-words.jp/w/ACID%E7%89%B9%E6%80%A7.html
  39. 44 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.

    Isolation(トランザクション分離レベル) ◼トランザクション分離レベル(ANSI-SQL92)の定義 出典:https://nyamage.github.io/post/2017/07/23/sql_92_isolation_level/ https://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt 発生してはならない状態 のみが定義されている
  40. 45 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.

    トランザクション分離レベルの歴史 ◼1992年:ANSIにてトランザクション分離レベルを定義 ◼1995年:ANSIのトランザクション分離レベルでは定義できていない状態がある ⚫“A Critique of ANSI SQL Isolation Levels” By マイクロソフト/UMB (https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/tr-95-51.pdf) ◼厳密なトランザクション分離レベル(DBMSによって同じレベルでも実装が違う場合アリ) Aurora DSQLの分離 レベル 出典:https://github.com/ept/hermitage/blob/master/README.md OracleはSerializableレ ベルが低い (23aiではロックフリーな ども提供)