AWS re:invent 2018 Digest: Database Tats Shibata Database Solutions Architect Amazon Web Services Japan
Agenda 新サービス Amazon Quantum Ledger Database (QLDB) Amazon Managed Blockchain Amazon Timestream Amazon RDS on VMware アップデート Amazon Aurora Global Databases Amazon Aurora: Custom endpoints Amazon Aurora Serverless: Data API Amazon Aurora with PostgreSQL 10 Compatibility Amazon RDS for Oracle 12.2 Amazon RDS for SQL Server: Always On availability groups Amazon DynamoDB Transactions Amazon DynamoDB On-Demand AWS Database Migration Service: Amazon Elasticsearch Service and Amazon Kinesis Data Streams as targets
Amazon Quantum Ledger Database (QLDB) フルマネージドな台帳データベース すべてのデータ変更を正確に順序づけられたエントリーとして格納 内部的には追記のみが行われ 各エントリーは変更不可能 変更不可能 暗号学に基づいた検証が可能 高いスケーラビリティ 簡単に使用可能 追記のみ可能な変更不可能 ジャーナルがすべての変更履歴を保存 すべての変更は暗号学に基づいて連鎖しており検証が可能 一般的なブロックチェーンに比べて 2 から 3 倍のスループット 柔軟なドキュメント型 SQL ライクなインターフェース
QLDB のユースケース ヘルスケア患者の医療記録の確認や追跡 政府機関各種履歴の追跡 製造業リコールされた製品の製造履歴を追跡 人事部門従業員プロフィールへの変更を追跡
既存技術で台帳を実現する際の課題 RDBMS での監査テーブル ブロックチェーン プロシージャの作成 / 管理 管理者による変更 / 削除 不必要な複雑さ 低いスループット 複雑なメンテナンス
QLDB の構成要素 C H L J C H 台帳データベース ジャーナル 現在値 履歴 L J 台帳が構成される 現在値 履歴ジャーナル ジャーナルが規定 現在値 履歴
C QLDB の具体例 current.cars ID Manufacturer Model Year VIN Owner 1 Tesla Model S 2012 123456789 Elmer Traci Ronnie Russell Hubbard Nash INSERT FROM cars INTO WHERE cars VIN << = '123456789' UPDATE owner = 'Elmer 'Ronnie Hubbard' Nash' { 'Manufacturer': 'Tesla', 'Model': 'Model S', 'Year': '2012', 'VIN': '123456789', 'Owner': 'Traci Russel' } >> H history.cars ID Version Start End Manufacturer Model Year VIN Owner 1 1 07/16/2012 NULL 08/03/2013 Tesla Model S 2012 123456789 Traci Russell 1 2 08/03/2013 09/02/2016 NULL Tesla Model S 2012 123456789 Ronnie Nash 1 3 09/02/2016 NULL Tesla Model S 2012 123456789 Elmer Hubbard J INSERT cars H(x) ID:1 Manufacturer: Tesla Model: Model S Year: 2012 VIN: 123456789 Owner: Traci Russell UPDATE cars H(x) ID:1 Owner: Ronnie Nash Metadata: { Date:08/03/2013 } UPDATE cars H(x) ID:1 Owner: Elmer Hubbard Metadata: { Date: 09/02/2016 } Metadata: { Date:07/16/2012 }
QLDB の機能まとめ 追加のみできるジャーナルデータを保存 暗号化ハッシュ関数を利用したトランザクションの整合性検証が可能 サーバーレス SQL ライクな文法 ドキュメント型データモデル ACID サポート 2018/12 現在 プレビューの申し込み受付中
Amazon Managed Blockchain オープンソースのブロックチェーンフレームワークである Hyperledger Fabric と Etherum* を使用した 素早く簡単に作成および管理できるフルマネージドなブロックチェーンネットワークサービス 2018/12 現在 プレビューの申し込み受付中
Amazon Managed Blockchain の特徴 Fully managed 数分でブロックチェーンネットワークを作成可能 Open-source variety 2 つのフレームワークをサポート Decentralized 民主的にネットワークの構築 Reliable & scalable バックエンドに QLDB を使用可能 Low cost 使用されたリソースのみのお支払い Integrated 安全な分析のために Amazon QLDB にデータを送信する
QLDB と Managed Blockchain の違い 信頼された中央機関が必要 台帳は信頼された中央機関が所有 信頼された中央機関が不要 台帳は複数組織で分散管理 Hyperledger Fabric または Etherium によってブロックチェーンネットワークを構築
Amazon Timestream 大量に発生する時系列データの追加に特化したデータベース RDBMS に比べて 10 分の 1 のコストで 1000 倍高速 1 日数兆件のイベントを処理 時系列データの分析に最適化 サーバーレス 秒間数百万 INSERT でのデータ収集が可能 安定した予測可能なパフォーマンスを維持 補完 スムージング 近似のための関数を内蔵 自動セットアップ 構成 プロビジョニング ソフトウェアパッチ
Amazon Timestream [2/3] BI ツールのプラグインによって SQL ライクなクエリーにより時系列データ分析 IT システムや 工業製品といった接続デバイスからデータを収集 Amazon Timestream を使用して 時系列データを効率的に格納 処理 また 補間 近似 スムージングなどの組込み解析機能を使用して データを分析 機械学習を使用して傾向 パターン 異常を特定
Amazon Timestream [3/3] IoT アプリケーション スムージング 近似 補間などの組込み解析関数を使用し IoT アプリケーションで生成された時系列データを迅速に解析 例えば Amazon Timestream 経由でデバイスセンサーからモーションや照度データを収集し 留守のときはライトをオフにするなど 産業用テレメトリ 産業機器の保守 やり取りの監視や ルーティング計画と最適化のために 時系列データを簡単に保存および分析 DevOps 各アプリケーションからデータおよびサーバー監視データなどをリアルタイムで分析し アプリケーションのパフォーマンスと可用性を向上させる DevOps アプリケーションを構築 2018/12 現在 プレビューの申し込み受付中
Amazon RDS on VMware VMware 上で Amazon RDS を実行可能に RDS の特徴であるマネージドサービス スケラービリティ 高可用性 高セキュリティを VMware 環境でも実現 災対用に RDS on VMware のスタンバイやリードレプリカを AWS に構築するハイブリッドクラウドを構成可能 既存オンプレミスデータベースを RDS on VMware に移行してから AWS に移行する Shift & Lift 戦略 2018/12 現在 プレビューの申し込み受付中
データカテゴリとユースケース Relational Key-value Document In-memory Graph Time-series Ledger 参照整合性 ACID トランザクション スキーマ 高スループット 低レイテンシ スケーラビリティ ドキュメントを保存し 任意の属性にクエリですばやくアクセス マイクロ秒レベルの key アクセス すばやく簡単にデータ間の関係を元にグラフ構造を作成 ナビゲート 時系列に特化した形でデータの収集 格納 処理 アプリケーションデータの全変更を完全 不変 検証可能な履歴として保存 Lift and shift, ERP, CRM, finance Real-time bidding, shopping cart, social, product catalog, customer preferences Content management, personalization, mobile Leaderboards, real-time analytics, caching Fraud detection, social networking, recommendation engine IoT applications, event tracking Systems of record, supply chain, health care, registrations, financial
AWS の提供するサービス Relational Key-value Document In-memory Graph Time-series Ledger Aurora Community Commercial
Amazon Aurora MySQL: Global Databases [1/5] Aurora with MySQL 5.6 のクロスリージョンリードレプリカが強化され Global Databases に 通常 1 秒未満の低レイテンシなレプリケーションと 通常 1 分以内の高速なフェールオーバーが可能に 従来はBinlogを基にしたレプリカインスタンスを作成していたが Global Databases では Auroraストレージレベルでのクラスター間の物理レプリケーションで実現 2018/12 時点では バージニア北部 オハイオ オレゴン アイルランドで利用可能 バージニア北部 Storage オレゴン Storage
Amazon Aurora MySQL: Global Databases [2/5]
Amazon Aurora MySQL: Global Databases [3/5] プライマリインスタンス (Writer) は 1 台のみ セカンダリにできるリージョンは 1 つまで セカンダリに作成できる読み取りインスタンス (Reader) は最大 16 台 セカンダリに使用したリージョンには プライマリからのクロスリージョンリードレプリカは作れなくなる 読み取りエンドポイントはクラスターごとに 1 つずつ グローバルな読み取りエンドポイントは存在しない プライマリインスタンス (Writer) 障害時は プライマリクラスター内の読み取りインスタンス (Reader) の 1 つが昇格する
Amazon Aurora MySQL: Global Databases [4/5] セカンダリを Remove して Regional Cluster ( 今までの通常のクラスター ) にすることが可能 それをプライマリに Global Database を作成して セカンダリを追加することが可能 バージニア北部 バージニア北部 バージニア北部 オレゴン オレゴン オレゴン オハイオ
Amazon Aurora MySQL: Global Databases [5/5] Aurora MySQL 5.6 のみサポート Cloning Backtrack Parallel Query Serverless は未サポート R3/R4 インスタンスのみサポート T2 は未サポート Global Database から Remove することでできた Regional Cluster ("EngineMode": "global") を Global Database に変更することは可能だが Regional Cluster として作成されたクラスター ("EngineMode": "provisioned") は Global Database には変更できない スナップショットからの復元 Percona XtraBackup や mysqldump
Amazon Aurora: Custom endpoints Aurora クラスター内のどのインスタンスを含めるかをユーザーが指定可能なエンドポイントが作成可能に オンラインクエリー用のリードレプリカと分析クエリー用のリードレプリカを分離することが可能に MySQL / PostgreSQL 両互換で対応
Amazon Aurora Serverless: Data API Aurora Serverless へのアクセス方法として MySQL ネイティブプロトコルに加え HTTPS エンドポイントおよび AWS SDK からのアクセスを提供 AWS Lambda や AWS AppSync から VPC にアクセスすることなく Aurora を利用可能 クエリー結果は JSON 形式で戻される 1000 行および 1MB が上限 同期 API であり 1 分以内に完了しない場合は中断される 2018/12 時点では バージニア北部でベータ版として提供
Amazon Aurora with PostgreSQL 10 Compatibility Aurora with PostgreSQL 2.0 として PostgreSQL 10.4 互換バージョンをリリース ネイティブパーティショニング ( 宣言的パーティショニング ) に対応 パラレルクエリーの強化 postgres_fdw の強化 2018/12 時点では バージニア北部 オハイオ オレゴン アイルランドで利用可能
Amazon RDS for Oracle 12.2 RDS for Oracle のサポートバージョンに 12.2 が追加 BYOL (Bring Your Own License) での Oracle Support による Extended Support 終了日が 2025 年 1 月に Oracle Multitenant には引きつづき未対応だが 一部の機能は RDS の機能で代替可能 Premier Support 終了 Extended Support 終了 11.2.0.4 2015/01 2020/12 12.1.0.2 2018/07 2021/07 12.2 2022/03 2025/03 http://www.oracle.com/us/support/library/lifetime-support-technology-069183.pdf
Amazon RDS for SQL Server: AlwaysOn availability group RDS for SQL Server が AlwaysOn 可用性グループを使用したマルチ AZ 構成をサポート AlwaysOn 可用性グループリスナーが使用可能に 従来のミラーリングに比べ フェイルオーバーがより短く 従来のミラーリングを利用するか AlwaysOn 可用性グループを利用するかは エディションとバージョンから RDS が自動選択 対応エディション : Enterprise Edition 対応バージョン : SQL Server 2016 13.00.5216.0 以降 2018/11 時点では SQL Server 2017 に未対応
Amazon DynamoDB: Transactions [1/2] DynamoDB が複数アイテム 複数テーブルに対する読み書きで ACID トランザクションをサポート 金融取引 商品の受注から決済までの管理などのユースケースでの使用が容易に 同一アカウント内の同一リージョン内で 最大 10 個の異なるアイテムに対して 最大 10 回の書き込みを 1 個のトランザクションに含められる
Amazon DynamoDB: Transactions [2/2] トランザクション分離レベルは Serializable で ロックは取らない トランザクションの進行中に アイテムがトランザクション外で変更された場合 トランザクションはキャンセルされ 例外が発生 複数のトランザクションが同一アイテムを頻繁に変更するようなワークロードには向かない グローバルテーブルではデフォルト無効 有効にした場合もトランザクションはリージョン単位 追加料金なし
Amazon DynamoDB: On-Demand DynamoDB で 読み書きリクエスト数に応じた Pay-per-Request モデルの請求モードが選択可能に 今までは事前にキャパシティ設計が必要だったが on-demand を利用することで不要に 既存テーブルでも どちらの請求モードにするか変更可能 ただし on-demand への変更は 1 日 1 回まで バージニア北部リージョンでの料金 100 万書き込みリクエスト当たり $1.25 100 万読み込みリクエスト当たり $0.25
AWS Database Migration Service (DMS): Amazon Elasticsearch Service and Amazon Kinesis Data Streams as targets DMS のデータ送信先に Elasticsearch Service と Kinesis Data Streams が追加 RDBMS への INSERT などの変更を RDBMS の外でリアルタイムに分析 / 監視できるように
Thank you! Tats Shibata