2018年11月11日日曜日

Amazon Aurora Day

 

AuroraAWS史上最も急成長しているサービスであるということから、今後もAWSAuroraに力を入れてくるでしょう。今時、システム全体をクラウドに乗せるのに、DBだけCPUライセンスが必要というのは確かに現実的ではありません。商用DBからオープンソースDB、そしてAuroraへの流れは自然な流れなのかもしれません。

Keynote1Amazon Aurora with MySQL compatibility最新情報~MySQL5.7対応やプレビュー機能の狙い~

スピーカー

Sirish Chandrasekaran Principal Product Manager

なぜAuroraを作ったのか?

·         Intuit社の事例

Auroraとは

·         DBをクラウド環境のために再構築

特徴

·         スケールアウト、分散、マルチテナントデザイン

·         AWSを活用した、サービス指向アーキテクチャ

·         フルマネージドサービス、自動化されたタスク

·         ハイエンドDBのような性能と可用性

·         オープンソースDBのようなシンプルさとコスト効率

·         MySQLPostgreSQLとの互換性

·         利用した分だけ支払うモデル

·         マネージドサービスとして提供

Auroraを入れてもらえれば他は何もしなくていい、というようにしたい

1. スケールアウト、分散、マルチテナントデザイン

·         コンピュートレイヤをストレージレイヤと分離している

o    DB専用に作られたログストレージ

o    ストレージボリュームは3つのAZにすトライピング

o    AZ2つずつ、計6つのデータのコピーを保持

§  AZ+1の障害にも対応可能

o    Masterとレプリカが同じストレージを参照している

2. AWSを活用した、サービス指向アーキテクチャ

·         エコシステムを利用した構成

o    Lambda

§  ストアドプロシージャ、トリガーからLambdaイベントを実行

o    S3

§  S3からデータをロードしたり、スナップショットをS3に保存

o    IAM

§  IAMロールをDBアクセス管理に利用

o    CloudWatch

§  システムメトリクスや監査ログを保存

3. フルマネージドサービス、自動化されたタスク

·         ユーザ

o    スキーマデザイン

o    クエリ作成

o    クエリの最適化

·         AWS

o    自動化されたフェイルオーバー

o    バックアップとリカバリ

o    分離とセキュリティ

o    自動パッチ適用

o    定期的なメンテナンス

·         時間のかかるDB管理タスクを自動化することで、アプリの改善やビジネスに専念してもらう

o    AWS史上最速で成長しているサービス

o    AWSTOP100のうち、3/4が利用している

§  なぜAuroraに移行したのか?

§  オープンソースを使っていたユーザ

§  より高いパフォーマンス(最大5倍)

§  コストを最大60%削減

§  簡単な移行。アプリの変更なし

§  コマーシャルDBを使っていたユーザ

§  1/10のコスト。ライセンスなし

§  Cloudシステムとの統合

§  同等のパフォーマンスと可用性

o    今のトレンドは、NoSQLからAuroraへの移行

§  ハイパフォーマンスアプリ用のデータストア

§  Cassandra>100nodesAurora(10clusters)

§  大規模な遺伝子情報を扱う会社が、Auroraに移行することで、10ms未満の読み取りレイテンシと大幅なコスト削減

パフォーマンス

·         MySQL5.6&5.7と比較

o    R3ベースで約5倍の性能

·         リードレプリカレイテンシ

·         I/O

o    RDSの場合

§  プライマリインスタンス>EBSEBSミラー

§  プライマリからレプリカへ

§  レプリカインスタンス>EBSEBSミラー

§  それぞれボリュームが独立しているため時間がかかる

§  両方のインスタンスで同様の作業負荷が発生する

o    Auroraの場合

§  シェアードストレージに書き込むのみ

§  物理的なIOは発生していない

§  RDSとくらべて8倍速い

·         Auroraでのパフォーマンス向上

o    DMLスループット

§  Fast B-tree insert

§  Z-order spatial indexes

§  Smart read-node selector

§  どのノードを読むのが一番早いかを判断

o    クエリ実行

§  ハッシュjoin

§  一部のクエリでは8倍性能が向上した

o    DDL

§  パフォーマンスの高い監査機能

可用性について

·         パフォーマンスはDBが正常に稼働しているときに気にすること

·         なぜ6つのコピーが必要なのか?

o    AZ+1の障害に対応する

§  大規模な環境だと常に何かしらの障害は起きる

§  AZ障害は運命共同

§  AZ+1障害にも対応できて、修復も可能である必要がある

·         15台までの昇格可能なレプリカ

o    Masterが失われても10秒以内に昇格できる

Auroraは簡単

·         RDSはたくさんのことを処理してくれる

·         さらに64TBまで10GBずつ自動スケールするストレージ

·         DBcloneも簡単にできる

o    コピーではないので早い

なぜ安価なのか?

·         RDS

o    シェアードストレージがないので、プライマリ・レプリカごとにストレージが必要

·         Aurora

o    ストレージは1つのみ

§  このため、RDSよりも30%削減できる

o    地裁インスタンスサイズにするとさらにコスト削減できる

移行も容易

·         各種マイグレーションツールを用意している

Auroraの新機能

1. Multi-Master

·         1つのMASTER15のリードレプリカが現状

·         シングルAZなら全部がMasterになる?(要確認)

·         Auroraのダウンタイムをゼロにしたい!という要望 ex.ECサイト

·         書込みの性能(20/秒以上の性能が必要)ex.ゲームなど

·         継続した書込み可用性

o    M1接続中に障害発生しても、他のノードへ接続を再接続

o    シェアードストレージなので影響はゼロ

2. パラレルクエリ

·         クエリをストレージノードの数千のCPUにプッシュダウン

·         Auroraストレージには数千のCPUがある

·         ユースケース

o    OLTPワークロードの分析クエリ

o    アドホッククエリに対するETLパイプラインを作らなくてよい

o    複数の分析クエリを同時実行

3. サーバレス

·         可変ワークロードを持つアプリ用のオンデマンド、自動スケーリングDB

·         ユースケース

o    スケールアップ・ダウン

o    0からスケール

4. パフォーマンスインサイト

·         DB管理をしやすくするもの

·         DBの負荷を表示するダッシュボード

·         ボトルネックの原因を表示

o    TOP SQL

5. MySQL5.7 compatibility

·         互換性

o    JSONサポート

Keynote2Amazon Aurora with PostgreSQL compatibility最新情報~ついに東京リージョンでも利用可能に~

スピーカー

Kevin Jernigan Sr.Product Manager

RDSの歴史

·         2006年 S3リリース

·         2009年 RDSリリース

·         2012年 Oracleサポート

·         2013年 PostgreSQLサポート

·         2014年 Auroraをアナウンス

·         2015年 Aurora with MySQLGA

·         2017年 Aurora with PostgreSQL compatibilityGA

これまでのDBはスケールが難しい

·         複数の機能レイヤーが1つのアプリケーションになっている

·         従来のアプローチ

o    アプリレイヤでシャーディング など

·         RDBをもう1度考える

o    Cloudでやるならどうするか?

o    Auroraの誕生

Auroraをよりよく

·         PostgreSQL

o    オープンソースDBである

o    20年の歴史がある

o    コミュニティが所有している

o    扱いやすいオープンソースライセンス

o    高性能

o    標準SQL

o    12言語でのストアドプロシージャサポート(JavaRubyなど)

o    Oracleからの移行先としても採用しやすい

o    AWS移行ツールによる自動変換率は、OracleからPostgreSQLが最も高い

PostgreSQL compatibilityが意味するもの

·         PostgreSQL9.6 + Aurora

o    パフォーマンス向上(2~3倍)

o    可用性(30秒未満でのフェールオーバー)

o    堅牢性(3AZ6レプリカ)

o    リードレプリカ(15台まで)

·         セキュリティと暗号化

o    KMS

o    IAM

·         RDSによる管理機能

·         データロード・アンロード

o    AWSマイグレーションツール

·         PostgreSQLとの互換性

o    互換性のためのレイヤーがあるのではない

o    PostgreSQLの実装をそのまま利用している

o    互換性に関してはバグはない

パフォーマンス

·         同じサイズのインスタンスで比較

o    PostgreSQL

§  3つのEBS

·         pgbenchでの比較結果

o    ピーク性能の1.6倍以上

o    最多クライアント数で実行した際の2.9倍以上のスループット

·         Sysbench出の比較結果

o    ピーク性能の2倍以上

o    最多クライアント数で実行した際の5倍以上のスループット

·         AWSの見解

o    保守的に見ても、標準のポスグレよりも2~3倍性能がいいと言える

·         スループット比較

o    DBサイズが10GBから100GBに増えるとどうなるか?

o    1.8倍から4.4倍違う

§  GQ版はプレビュー版よりもさらに高性能になっている

o    DBロードでは、標準の2倍以上速く完了

§  コピー

§  バキューム処理

§  特にAuroraはバキューム処理が早い

§  標準よりも86%削減できる

§  Writeの回数が圧倒的に減っているため

§  インデックス構築

·         レスポンスタイム比較

o    標準に比べて2倍以上短い

o    スパイクも99%削減

§  標準はチェックポイント時に跳ね上がる

§  Auroraはチェックポイントのスパイクはない

§  標準よりも99%削減

§  チェックポイントを持たない

·         スループット比較

o    標準に比べて3倍以上一貫した結果が得られた

·         リカバリ時間比較

o    ストレージシステムのリカバリが高速に実行可能

o    標準よりも97%短く

§  標準

§  redoログサイズとともにクラッシュリカバリの時間が増加

§  redoログ3GB19

§  redoログ30GB123

§  Aurora

§  redoを持たない

§  極めて高いスループットを維持

§  3秒以内にリカバリを完了

パフォーマンスインサイト

·         DBの可視化をするダッシュボード

·         データサンプリングを自動化する

o    Top SQLも見れる

·         まだプレビュー版

o    GA提供はまだ

DBマイグレーションサービス

·         AWS DB Migration Service

o    データ移行の開始まで10分以下

o    移行中もアプリを実行可能

o    同種・異種間DBにて移行可能

·         AWS Schema Conversion Tool

o    RDBのコンバート

o    DWHのコンバート

o    利用すると評価が得られる

§  自動コンバートできないものがあれば理由も表示される

o    様々なターゲットを比較できる

§  例えば、OracleからどのオープンソースDBがいいかを教えてくれる

§  MySQLか?

§  PostgreSQLか?

Aurora with PostgreSQLについて

·         10/24ローンチ

·         セキュリティ

o    KMS

o    SSL

o    VPC default

·         高可用性

o    15代のリードレプリカ

o    高速なクラッシュリカバリ

·         高性能

o    標準の23倍のスループット

·         運用/互換性

o    機能レベルでの標準ポスグレとの互換性

§  10.3もサポートする

§  メジャーバージョンは3年サポートする

§  マイナーバージョンは1年サポートする

直近のアップデート

·         GAローンチ(12のリージョン。東京含む)

·         HIPAA認証

·         暗号化されたRDSスナップショットのインポート

·         RDS for PostreSQLから、Aurora PostgreSQLリードレプリカの作成

o    ダウンタイムを減らすことができる

·         Aurora PostgreSQL 1.1リリース(標準9.6.6との互換性)

今後

·         PostgreSQL10のサポート(1か月以内)

·         クロスリージョンレプリカ

·         アウトバウンドレプリケーション

·         マルチマスタ

·         サーバレス

·         これらは来年早々にはできるようになると思う

Auroraファミリー

·         Aurora MySQLに早く追いついていく

Session1】徹底検証!!Aurora with PostgreSQL compatibility

スピーカー

株式会社アクアシステムズ 影山さん

内容

ブログへの掲載禁止のため割愛。

Session2】マルチリージョンのテレビ会議クラウドをAurora+DMSで実現した話

スピーカー

株式会社リコー 井上さん

関連発表

サービス全断はダメ、ゼッタイ。途切れないテレビ会議システムを目指して。 去年のAWSサミット発表資料

Ricoh USCとは

·         ビジネス向けテレビ会議システム

·         専用端末+クラウド

·         グローバル

o    お客様に近い映像配信サーバから届ける

o    AWS11のリージョンを使っている

·         多拠点つなげる

·         2011年からprivateクラウドで運用開始

·         2017年に全サービスのパブリッククラウド移行完了

o    Aurora運用開始

現構成

·         呼制御系

o    AWSの公式ページに構成図あり

o    ECSなど活用

·         映像配信

·         サービス監視

AWS移行直後の構成

·         オンプレからほぼそのままの構成で移行

·         MySQL/RDS1セット配置

·         課題

o    インスタンス数が多い

§  複数リージョンで協調動作するシステム

§  データは主に3種類

§  主リージョンで書き込み、全リージョンで参照

§  全リージョンで読み書き、主リージョンに集約

§  SPOFの内向性が必要

o    フェイルオーバー時間に不満

§  アプリ対応に限界

o    ストレージ不足に拡張処理が必要

o    小サイズのRDSは効率が悪い

§  GBで十分なDBもある

§  GP2ストレージの性能不足、補うには33GB以上が必要!!

·         進構成の検討

o    Auroraの利用

o    しかし

§  数が多いため高コストで無駄が多い

o    そこで

§  DMSによる柔軟なレプリケーション構成を検討

·         DMS

o    移行を行うマネージドサービス

§  RDBMSからS3などもできる

o    一括コピー、継続的コピーが可能

o    テーブルを取捨選択してコピー可能

o    スキーマを変換しながらのコピー可能

·         DMSMySQL

o    変更検知はBinary Logを使用

§  checksumなし

o    注意点

§  文字セットの制限

§  以下は使えない

§  utf8mb4

§  us_ascii

§  開始点は秒単位の時刻で指定

·         最終的なDMS導入決定

o    想定外の問題はAWSと協力してつぶしていく!!

新構成と移行

·         リージョンごとに1つのAuroraクラスタをマルチAZで設置

·         検証

o    Auroraのサイジング

o    アプリの機能テスト・性能テスト

o    ソースおよびターゲットDBのフェイルオーバー

o    DMSの機能・性能

·         検証で分かったこと

o    機能や性能に問題はない

o    Auroraのフェイルオーバー追従に課題

·         Auroraのフェイルオーバー

o    マルチAZでは30秒くらいで切り替わる

·         クライアントから見た課題

o    読み書きするクライアントがレプリカにつながってしまう

·         対策

o    JavaアプリはMariaDB Connector/Jを利用

§  高速フェイルオーバーの恩恵を受けれる

o    クライアントを修正する

§  泥臭い修正

·         DMSの挙動

o    ターゲットのAuroraが切り替わる:自動接続

o    ソースのAuroraが切り替わる:自動接続しない

§  DMS1.9時点

·         対策

o    DMSタスク監視

·         移行手順1

o    MySQLからAuroraのリードレプリカを用意してレプリケーション

o    そのほかのDBからもAuroraへレプリケーション

·         移行手順2

o    当日の作業は30分くらい

§  DBからAuroraへのレプリケーション停止

§  DMSで処理できないDBをダンプから投入

§  DMSタスク作成&開始

9か月分かったこと

·         Auroraクラスタは毎日作るものではない

o    開発環境は毎日構築・破棄

o    Auroraクラスタのスナップショットからの構築は遅い。時々失敗する

o    Auroraクラスタだけ残してもコストはS35倍程度

o    句ら鵜s他を残し、DBインスタンスのみ毎日構築するようにした

·         Auroraアップっグレードとの付き合い方

o    必須アップグレードは所定の期間内にメンテナンスが必要

o    20~30秒のダウンタイムが発生

§  本番環境以外で影響確認したい

o    旧バージョンのAuroraを顧客が作る方法はない

§  本番以外で常時稼働環境が必要になる!!

·         Zero Downtime Patching

o    接続を維持したままアップグレードできる機能

o    DBの使い方によって背教が出る

§  サーバサイドのプリペアドステートメントが消える、など

まとめ

·         すこしずつ移行するのがおすすめ

·         最終形ではない

o    日々のキャッチアップ

Session3Oracle DatabaseからAurora with PostgreSQL compatibilityへの移行~orafceの活用による活用事例&メリット~

スピーカー

NTTテクノクロス株式会社 勝俣さん

orafceとは?

PostgreSQL上でOracleの機能を使えるようにする拡張モジュール 以下が使えるようになる - Data Type - SQL Queries - SQL Functions - SQL Operators - Packages

意外と多い細かな違い

·         Varchar2(n)

o    Oraclebyte数指定

o    PostgreSQL:文字数指定

·         DATE

o    Oracle:年月日時分秒

o    PostgreSQL:年月日

メリット

·         移植の効率化

o    ポスグレ標準+orafceがサポートする関数カバー率:34%

o    実案件で使うだろう関数のカバー率:73%

Session4Oracle DatabaseからAmazon Auroraに移行するための実践ガイド

スピーカー

アマゾンウェブサービスジャパン株式会社 江川さん

お客様の声

·         クラウドにシステム全体を移すのであれば、RDBMSもクラウドネイティブにしたい

·         RDBMSもオートスケールさせたいが、CPUライセンスだとできない

·         IT予算の多くをOracleライセンスを占めている

現場の悩み

·         業務部門・アプリ開発部門

o    アプリへの影響はどれくらい?

o    移行の業務停止は短くしたい

·         IT・インフラ部門

o    業務部門に何をガイドしたりいいの?

o    従来の管理腫瘍がどう変わる?

o    移行費用はかけたくない

決めないといけないこと(5W1H

1. What?(対象システムは?)

2. Why?(移行理由は?)

3. How?(移行戦略は?)

AWSの考える6つの戦略

1.    Re-Host(ホスト変更)

2.    Re-Platform(プラットフォーム変更)

3.    移行の複雑さ2

4.    Re-Purchase(買い替え)オンプレのOracleを、ライセンス込のRDS for Oracle

5.    Refactor(書き換え)オンプレのOracleAuroraに変更する、など

6.    移行の複雑さ1

7.    その分のメリットは大きい

8.    Retire(廃止)このタイミングで古いDBやシステムを破棄する

9.    Retain(保持)オンプレを使い続ける(Oracle9iに依存してるアプリなど)

4. Where?(移行先は?)

·         RDS

o    Aurora MySQL

o    Aurora PostgreSQL

§  結合法方

§  ネステッドループ

§  ハッシュ

§  ソートmerge

§  インデックス

§  Bツリー

§  関数

§  空間

§  全文

§  ゾーンマップ

§  制約

§  NOT NULL

§  PK

§  UNIQUE

§  FK

§  CHECK

·         Redshift

o    データウェアハウス用途

·         on EC2

5. When?(期限は?)

·         工数見積が必要

o    工数=移行先との違いの量

6. Who?(担当者は?)

·         工数見積が必要

o    工数=移行先との違いの量

移行支援サービス

·         計画

o    AWS CTO Calculator

·         移行

o    AWS DMS

·         運用

AWS DMSとは

·         既存DBを最小限のダウンタイムでマイグレーションするサービス

·         同種はもちろん異種プラットフォームの移行にも対応

·         移行中もアプリケーションは稼働したまま

o    AWS上にDMS用のAurora起動

o    移行元のDBDMSを以下で接続

§  Internet

§  VPN

§  Direct Connect

o    DB同期が完了したら、アプリ側のDBの向き先を変える(ダウンタイムはここだけ)

·         マルチAZ構成が可能

AWS Schema Conversion Tool

·         ソースDBのビューやFunctionをターゲットDB向けに変換

·         デスクトップアプリで提供

·         できること

o    自動変換&自動変換の補助

o    評価レポートの作成

§  どこができるか色分けされたグラフが出る

§  緑:自動変換

§  青:検討が必要

§  赤:深い検討が必要

o    アプリケーションSQLにも対応

事例

·         レコチョク

o    Oracle RACからAurora移行

§  1000万会員のDB

o    DMS/SCTリリース前に手動で移行

o    結果

§  Auroraによる障害はこれまでゼロ

§  DBサーバ運用に工数はほとんど咲かなくてよい

Oracleとの違い

·         Objectの主な違い

o    MySQLのシーケンス

§  AUTO_INCREMENT属性を付与

§  NULLまたは0を入れる

o    PostgreSQLのマテリアライズドビュー

§  リフレッシュは手動のフルリフレッシュのみ

§  読み取り専用のみ対応

o    PostgreSQLDBリンク

§  dblink

§  関数として実装されている

§  ビューで隠ぺいするのが一般的

§  postgres_fdw

o    パーティショニング

§  MySQL

§  RANGEHASHLISTKEY

§  PostgreSQL

§  RANGELIST

§  v10~宣言的パーティショニング

§  ストアドプロシージャ/ストアドファンクション

§  AuroraJavaプロシージャに未対応

·         互換性がないとどうなるのか

o    文法ERRORになる

§  地道に対応する

o    文法ERRORにならず結果が異なる

§  このパターンが厄介

結果相違を起こしやすい2大ポイント

1.    NULLと空文字の扱いの違い

2.    OracleSQL標準からずれている

o    Oracleでは区別しない

o    MySQLPostgreSQLは区別する

3.    対策

o    ''grepするとよい

o    外部結合した後の||にも注意

4.    CHARの埋められた空白の扱いの違い

5.    Oracleは末尾の空白を保持する

6.    MySQLPostgreSQLは、末尾の空白を無視する

トランザクション分離レベル

·         数やデフォルトがDBで違う

バキューム

·         postgreSQL独自

·         運用設計が必要

o    今は自動になっている

Session5】移行の前には移行アセスメントを~移行難易度や工数を事前に確認する~

スピーカー

アマゾンウェブサービスジャパン株式会社 北川さん

現実では・・・

簡単にDB移行できないこともある(外字が入っているとか)

移行前に実施すべき内容

1.    システムの棚卸

2.    移行対象DBを使っているシステムの把握

3.    システム間連携の有無

4.    データの流れの把握

5.    障害発生時の復旧プロセス

6.    そもそもDMSがサポートしているDBバージョン・エディションか?

7.    移行対象の決定

8.    ミドルウェアのサポート終了期間の確認(緊急度)

9.    アセスメントの実施

10.  プロシージャの数

o    DDLSCTで自動変換できる

o    プロシージャはDCTの自動変換率が比較的低い

§  SCTで評価レポートを作成する

§  予想工数が色分けされる

§  青:1時間未満

§  黄:4時間未満

§  赤:4時間以上

11.  SELECT文の数

o    自動変換率が比較的低い

12.  テストの洗い出し、工数確認

o    SQL解釈の方言で同じSQLでも結果が違う可能性がある

o    データが正しく移行されたかの確認が必要

o    テストフレームワークがあればよいが、なければ大変

o    工数だけで判断しない

§  重要度と緊急度も考慮する

13.  移行計画

o    ダンプツール

o    CSVアンロード

o    レプリケーション

o    DMS

§  何でもかんでもDMSでやろうとしない

§  ネイティブの方法がベストな時もある

14.  事前検証の実施

15.  選択した移行方法で留意事項を確認

o    ¥マーク、外字など

o    同期レプリケーションか?非同期レプリケーションか?

§  どれくらい時間差があるのか

§  非同期の場合クラッシュしたらどうするか?

§  マルチAZ構成

§  DMSで二重障害が起きるとどこから再開するかが困難

§  「十分な時間がとれるか?」を再度検討すべき

16.  スケジュールの策定

17.  事前検証結果から、移行方法が妥当か確認

18.  連携状況から他のシステムを含めた影響を確認

o    本当に並行移行させる必要があるのか?

o    1日止めれば難易度は下がるのでは?(安全かつ確実)

§  など

19.  トラブルを見越したスケジュールを組む

20.  検証には可能な限り実データを使用する

https://www.yokoyan.net/entry/2018/03/30/220000

 

 

 

 

 

 

0 件のコメント:

コメントを投稿