ゲオを支える DB 基盤の歴史と未来 ~Oracle から Amazon Aurora へ~

Similar documents
Enterprise Cloud + 紹介資料

データベースの近代化:シンプルなクロスプラットフォーム、最小のダウンタイムで実現するクラウド移行

利用約款別紙 SkyCDP for AWS 基本サービス仕様書 この仕様書は SkyCDP for AWS の基本サービスに関する内容 方法について記述したものです 尚 SkyCDP for AWS オプションサービスをご利用のお客様は各 SkyCDP for AWS オプションサービスのご契約内容

以下の事項は 弊社の一般的な製品の方向性に関する概要を説明するものです また 情報提供を唯一の目的とするものであり いかなる契約にも組み込むことはできません 以下の事項は マテリアルやコード 機能を提供することをコミットメント ( 確約 ) するものではないため 購買決定を行う際の判断材料になさらな

PowerPoint Presentation

Oracle Un お問合せ : Oracle Data Integrator 11g: データ統合設定と管理 期間 ( 標準日数 ):5 コースの概要 Oracle Data Integratorは すべてのデータ統合要件 ( 大量の高パフォーマンス バッチ ローブンの統合プロセスおよ

日本 PostgreSQL ユーザ会第 28 回しくみ + アプリケーション勉強会 Zabbix を使って PostgreSQL を監視してみよう 2014 年 2 月 1 日 TIS 株式会社中西剛紀 (Yoshinori Nakanishi)

AWS Deck Template

Oracle 入門 ~ 研修受講後のスキルアップサポート ~ 対応バージョン :Oracle 10gR1 ~ 12cR1 本資料は アシスト Oracle 研修をご受講いただいたお客様からのご質問や 研修ではご案内できなかった情報などを FAQ にまとめたものです 研修受講後のスキルアップの一助とし

PowerPoint_template_v1.3.pptx / パワーポイントテンプレート

タイトルを1~2行で入力 (長文の場合はフォントサイズを縮小)

ソニー銀行におけるクラウドの活用状況と今後の展望

10年オンプレで運用したmixiをAWSに移行した10の理由

PowerPoint プレゼンテーション

PostgreSQL による クラスタ構成の可能性 SRA OSS, Inc. 日本支社 取締役支社長 石井達夫

スライド 1

今さら聞けない!? Oracle入門 ~後編~

Presentation Title Here

AWS Simple Monthly Calculator (簡易見積ツール) 使い方説明

今さら聞けない!? Oracle入門 ~前編~

3/7 マイグレーション開発方針 顧客名 0 作成者 根岸正 < プログラム移行方針 > システム名称 A-VX システムマイグレーション作成日 2015/09/01 < COBOL 資産のプログラム移行 > COBOLソース ( メインとCOPYLIB) を入力としてSCC 言語変換ツールにてVB


PowerPoint プレゼンテーション

よくある問題を解決する~ 5 分でそのままつかえるソリューション by AWS ソリューションズビルダチーム

アジェンダ Oracle サーバの見える化はなぜ必要? WebSAMApplicationNavigator で簡単 安心に監視を実現 Oracle 監視の導入コスト 2 NEC Corporation 2009

そこが知りたい!AWSクラウドのセキュリティ

MaxGauge_診断分析プロセス

PostgreSQL Plus 管理者ガイド

新製品 Arcserve Backup r17.5 のご紹介 (SP1 対応版 ) Arcserve Japan Rev. 1.4

はじめに コースの概要と目的 Oracle をより効率的に使用するための SQL のチューニング方法について説明します また 索引の有無 SQL の 記述方法がパフォーマンスにどのように影響するのかを実習を通して理解します 受講対象者 アプリケーション開発者 / データベース管理者の方 前提条件 S

使用する前に

ライフサイクル管理 Systemwalker Centric Manager カタログ

Oracle SQL Developerの移行機能を使用したOracle Databaseへの移行

久原本家グループ本社

メール全文検索アプリケーション Sylph-Searcher のご紹介 SRA OSS, Inc. 日本支社技術部チーフエンジニア Sylpheed 開発者 山本博之 Copyright 2007 SRA OSS, Inc. Japan All right

CLUSTERPROXSingleServerSafe SingleServerSafe ご紹介 2007 年 10 月

内容 Visual Studio サーバーエクスプローラで学ぶ SQL とデータベース操作... 1 サーバーエクスプローラ... 4 データ接続... 4 データベース操作のサブメニューコンテキスト... 5 データベースのプロパティ... 6 SQL Server... 6 Microsoft

スライド 1

Slide 1

スライド 1

PHP 開発ツール Zend Studio PHP アフ リケーションサーハ ー Zend Server OSC Tokyo/Spring /02/28 株式会社イグアスソリューション事業部

Oracle Database から Aurora & Redshift に移行するための実践ガイド

スライド 1

Oracle SQL Developer Data Modeler

PowerPoint Presentation

PowerPoint プレゼンテーション

ブランドを統一 GUI とマニュアル上の製品表記をすべて Arcserve に統一 Arcserve Backup Arcserve Unified Data Protection Arcserve Replication/HA 2

PowerPoint プレゼンテーション

スライド 1

使ってみよう!データベースとストレージ ~ Getting Started with AWS Database and Storage Services ~

PostgreSQL カンファレンス 2013 証券取引バックオフィスにおける Oracle から PostgreSQL への マイグレーション SBI ジャパンネクスト証券株式会社 イアン バーウィック

PowerPoint プレゼンテーション

【Cosminexus V9】クラウドサービスプラットフォーム Cosminexus

PowerPoint プレゼンテーション

PowerPoint Presentation

SIOS Protection Suite for Linux v9.3.2 AWS Direct Connect 接続クイックスタートガイド 2019 年 4 月

PowerPoint プレゼンテーション

Microsoft Word - nvsi_050090jp_oracle10g_vlm.doc

vdi_service_details

製品概要

データベース暗号化ツール「D’Amo」性能検証

スライド 1

Microsoft Word - nvsi_100222jp_oracle_exadata.doc

Nintendo Switch(TM)向け プッシュ通知システム 「NPNS」

HDC-EDI Manager Ver レベルアップ詳細情報 < 製品一覧 > 製品名バージョン HDC-EDI Manager < 対応 JavaVM> Java 2 Software Development Kit, Standard Edition 1.4 Java 2

変更履歴 項番版数内容更新日 版新規作成 2013 年 11 月 18 日 1

MotionBoard Ver.5 総合カタログ

Automation for Everyone <デモ で実感できる、組織全体で活用できるAnsible Tower>

Exadata MAAベスト・プラクティス

IBM i ユーザーの課題 モバイルや IOT に対応した新しい開発案件への対応 RPG COBOL など既存アプリのメンテナンス 要員の確保 属人化しない運用 管理体制 2

アジェンダ はクラウド上でも十分使えます 1. の概要 とは の導入事例 で利用される構成 2. をクラウドで使う クラウドサービスの分類 Amazon Web Services による構成例 2

Transcription:

ゲオを支える DB 基盤の歴史と未来 ~Oracle から Aurora へ ~ 2017/05/31 株式会社ゲオホールディングス業務システム部ゼネラルマネージャー神野旬 1

アジェンダ 1. 会社紹介 2. インフラ概要 3.DBの歴史と遷移 4.ExadataからOracleEE on EC2への移行 5.OracleからAuroraPostgreSQL 互換への移行 6.AWS 移行後 2

アジェンダ 1. 会社紹介 2. インフラ概要 3.DBの歴史と遷移 4.ExadataからOracleEE on EC2への移行 5.OracleからAuroraPostgreSQL 互換への移行 6.AWS 移行後 3

会社紹介 自己紹介 社名 株式会社ゲオホールディングス 会社設立 1989年1月 本社 愛知県名古屋市 売上高 2,680億円 (2017年3月期) 店舗数 1,805店 (グループ全体) メディアショップGEO 2nd STREET JUMBLE STORE ウェアハウス 神野 旬 かんの じゅん 業務システム部 ゼネラルマネージャー 4

自社プリペイドカード セルフレジ 自社プリペイドカード ルエカ ゲオグループで利用できるオリジナルプリペイドカードチャージ方法は現金 or 買取を選択可買取チャージの場合 10% の割増あり セルフレジ 751 店舗 合計 1,521 台導入済店別利用率は最大 92% 平均 46% レンタル利用でポイント付与 5

2nd STREET USA ロサンゼルスのメルローズに この夏 オープン予定 6

アジェンダ 1. 会社紹介 2. インフラ概要 3.DBの歴史と遷移 4.ExadataからOracleEE on EC2への移行 5.OracleからAuroraPostgreSQL 互換への移行 6.AWS 移行後 7

使用AWSサービス Direct Connect VPC VPC peering EC2 S3 EBS RDS Redshift DMS Cloud Watch Cloud Trail Config Trusted Advisor IAM Auto Elastic Load Lambda Scaling Balancing SNS Work Spaces Cloud Front Athena Certificate Manager 8

インフラ概要 Azure 事務所 Production 店舗 Confidential DC キャリア網 Internet VPN UTM Proxy SSUSA Development 1,800 Internet 9

AWS 使用例 2nd STREET USA 東京 オレゴン Work Spaces その他システム USA 店舗 Internet Internet HTTPS WEB WEB PC タブレット POS 管理業務 接客業務 10

AWS 使用例 AmazonRedshift 全店のレンタル実績に応じて 新作 旧作等の区分を集計 変更するシステム 月間レンタル件数 :5,000 万件 RDS For MySQL 1 必要なデータの転送 3 集計データの書き戻し 2 集計 Redshift 処理時のみ起動でコスト節約 OracleExadata: 10 時間 AmazonRedshift: 2.5 時間 (+ 転送 書き戻しの時間 ) 同じロジックのままでも高速化ただしExadataは他処理もあるため 平等な比較ではない 11

AWS使用例 監視 運用系 サーバの死活監視 Zabbix Agent 障害 検知 緊急性 低 Slack 緊急性 高 Twilio 検証中 リソース運用 ON OFF Job Arranger for Zabbix AWS CLI EC2 RDS等の ON OFFを行う 12

AWS 使用例監視 運用系 バックアップ CPU クレジット監視 EBS スナップショットの取得タグ設定通りの世代 時間 エラー CloudWatch Events Lambda T2 インスタンス CPU クレジット枯渇監視 閾値超え SNS 通知 ログ保管 検索 Slack Lambda S3 Athena 13

アジェンダ 1. 会社紹介 2. インフラ概要 3.DBの歴史と遷移 4.ExadataからOracleEE on EC2への移行 5.OracleからAuroraPostgreSQL 互換への移行 6.AWS 移行後 14

DB の歴史と遷移 店舗 DC 店舗 DBLink Oracle DBLink Oracle DBLink Oracle DBLink 店舗 DBLink Oracle Oracle 15

DB の歴史と遷移 店舗 DC 店舗 Oracle Oracle Oracle 店舗 Oracle Oracle 16

DB の歴史と遷移 店舗 DC DR Oracle バッチ系 店舗 転送 店舗 Oracle RAC 会員 DB オンライン系 DataGuard Oracle 17

DB の歴史と遷移 店舗 DC DR OracleExadata V2 (RAC) OracleExadata X2 ActiveDataGuard 店舗 DR & DWH 店舗 Oracle RAC 会員 DB オンライン系 DataGuard Oracle 18

DB の歴史と遷移 店舗 DC ここの移行 DR OracleExadata V2 (RAC) OracleExadata X2 ActiveDataGuard 店舗 DR & DWH Oracle RAC 会員 DB オンライン系 Oracle 店舗 DataGuard 19

DB の歴史と遷移 店舗 DR OracleEE on EC2 OracleExadata X2 ActiveDataGuard 店舗 Aurora Mysql 互換 DR & DWH アプリ OracleEE on EC2 会員 DB DataGuard Oracle 20

DB の歴史と遷移 店舗 DR OracleEE on EC2 OracleExadata X2 ActiveDataGuard 店舗 Aurora Mysql 互換 DR & DWH アプリ OracleEE on EC2 会員 DB DataGuard Oracle ここの移行 21

DBの歴史と遷移 Azure 店舗 OracleEE on EC2 Data Guard Oracle DR用途 店舗 Aurora Mysql互換 アプリ AuroraPostgreSQL互換 会員DB Azure SQL DataWarehouse 22

アジェンダ 1. 会社紹介 2. インフラ概要 3.DBの歴史と遷移 4.ExadataからOracleEE on EC2への移行 5.OracleからAuroraPostgreSQL 互換への移行 6.AWS 移行後 23

Exadata から OracleEE on EC2 への移行 目的 Exadata 保守切れのタイミングでコスト DOWN と可用性 UP のため 別 DB へ移行する 移行スケジュール 2015/04 移行先決定 (AWS 上の OracleEE) 2015/05 プロジェクト開始 2015/09 移行完了 24

移行前構成 店舗実績データ DC DR DR & DWH その他システム処理 ActiveDataGuard リクエスト Oracle Exadata V2 (RAC) Oracle Exadata X2 25

移行後構成 店舗実績データ DR OracleEE on EC2 DR & DWH その他システム処理 ActiveDataGuard リクエスト 部分一致検索 インメモリ DB 高負荷バッチ処理 Redshift Oracle Exadata X2 26

移行のポイント Full アクセスをやめてディスク IO を減らし CPU を使用するインデックスチューニングを実施 普通の Oracle で Exadata に劣る部分は別の仕組みへオフロード ( インメモリ DB Redshift) EBS は複数の汎用 SSD を並べることで コストを抑えつつ スループット IOPS を確保 停止できないシステムは 移行前にデータを差分転送し 停止時間を極力短くして移行 27

EBS 構成 Oracle on EC2 PIOPS 3.4TB 2 本 汎用 SSD 3.4TB 11 本 汎用 SSD 3.4TB 2 本 UNDO TEMP 用 データ領域用 REDO 用 合計約 50TB / 実容量 11TB OracleASM でボリュームを分散 UNDO TEMP はスループット確保のために PIOPS を選択 28

移行でつまずいたところ EBSのIOPS/スループット上限 汎用SSD 10,000 IOPS スループット160MB/s PIOPS 20,000 IOPS スループット320MB/s EC2のスループット上限 r3.8xlarge 10Gbit 350 スループット(MB/s) 300 320MB/s 150 100 50 0 IOPS 12000 10000 250 200 14000 160MB/s 平均 最大 8000 6000 4000 2000 平均 最大 0 29

アジェンダ 1. 会社紹介 2. インフラ概要 3.DBの歴史と遷移 4.ExadataからOracleEE on EC2への移行 5.OracleからAuroraPostgreSQL 互換への移行 6.AWS 移行後 30

OracleEE から AuroraPostgreSQL 互換への移行 目的脱 Oracle を行いコスト DOWN を行うマネージドな DB を採用し 運用コストを下げる 移行スケジュール 2016/09 移行先 DB 検討 2016/12 移行先決定 プロジェクト開始 2017/06 移行完了予定 (GA 待ち ) 31

移行対象システム構成 Confidential Production HTTPS HTTPS 踏み台 WEB WEB 操作は全て録画 CloudTrail CloudWatch Events SNS AWSの操作は IAMで制限 特権ユーザが 使用されたら通知 会員DB Oracle on EC2 32

移行対象システム構成 Confidential Production HTTPS HTTPS 踏み台 WEB WEB 操作は全て録画 CloudTrail CloudWatch Events SNS AWSの操作は IAMで制限 特権ユーザが 使用されたら通知 会員DB ここの移行 Oracle on EC2 33

ワークロード 小さめの SQL が多く 並列度が高い稀にバッチ系の大きめな SQL メインテーブルのレコード件数は 4,000 万件超通常時 5,000~6,000 件 / 分のリクエストアプリプッシュ時 最大 17,000 件 / 分 400 件 / 秒リクエスト 34

移行候補 DB の比較 EDB Postgres RDS PostgreSQL AuroraMysql 互換 AuroraPostg resql 互換 移行し易さ 可用性 運用 EC2 ストレージが自前管理 フルマネージド フルマネージド コスト 小さい SQL 大きい SQL JOIN 少サブクエリ苦手 パラレルクエリ 9.6 から 9.6 から 9.6 互換 35

移行候補DBの比較 EDB Postgres RDS PostgreSQL AuroraMysql AuroraPostg 互換 resql互換 移行し易さ 可用性 運用 EC2 ストレー ジが自前管理 コスト 小さいSQL 大きいSQL パラレルクエリ 9.6から 9.6から フルマネージド フルマネージド JOIN少 サブクエリ苦手 9.6互換 36

Oracle と PostgreSQL の違い Oracle PostgreSQL DBLink FDW で実装 ( 速度はあまりでない ) パーティション テーブルの継承 CHECK 制約 トリガーで実装 シノニム 監査ログ log_statement ストアド PL/SQL PL/pgSQL データ取込 SQLLoader COPY コマンド 空文字の扱い 前方一致検索での索引 NULL と同等空文字と同等 無しビューや検索パスで一部代用可能 ロケール次第で使用されない CREATE INDEX index_name ON table_name (column_name text_pattern_ops) 37

Oracle と PostgreSQL の違い ヒント句 トランザクション中の DDL トランザクション中のエラー発生後 Merge 文 サブクエリの別名 ROWID Oracle 暗黙のコミット 以降も継続可能 不要 PostgreSQL 無し pg_hint_plan 拡張で実現可能 コミットされない DDL もロールバック可能 以降は SQL を受け付けず ロールバックしかできない INSERT INTO ~ ON CONFLICT ~ DO UPDATE 必要 SELECT * FROM (SELECT ~) T 無し oid ctid が似ているが違う 38

Oracle と PostgreSQL の違い Oracle PostgreSQL DUAL 表必要不要 SELECT test FROM DUAL 表の外部結合 Oracle 結合 (+) LEFT JOIN, RIGHT JOIN NULL 値変換 NVL NVL2 COALESCE CASE 指定レコード抽出 ROWNUM OFFSET LIMIT 日時取得 日付取得 SYSDATE TRUNC(SYSDAT E) date_trunc('second', clock_timestamp()) select date_trunc('day', clock_timestamp()) 日付変換 TO_DATE to_timestamp 同じ名前の関数が存在しても意味が違う 引数が違う等 様々 39

移行先データベース作成 AWS Schema Conversion Tool (SCT) 異なる DB 間でオブジェクトの移行を補助してくれるツール ソース DB スキーマ情報の読み込み SCT 拡張パックスキーマ作成変換後定義を適用 ターゲット DB SQL ファイルに出力可能 SCT で出力したファイルがそのまま使用できなかったため 一部修正し 各スキーマを作成 SCT はスキーマ単位のため GRANT は自前で実行するシノニムが存在しないため 検索パスを設定 40

本番データ転送 AWS Database Migration Service (DMS) RDB 間でデータ移行支援をしてくれるサービス フルロード 差分転送 ソース DB DMS ターゲット DB 容量 200GBのデータをDMSで転送テーブル数 :131 合計レコード数 :6.4 億件転送時間 :3 日 11 時間 10 時間並列度 CommitRate インスタンスタイプ変更で速度改善 41

テスト 新旧比較テスト : 両 DB に同じリクエストで同じ結果か総合テスト : POS やアプリから正しく動作するか負荷テスト : 本番と同等以上の負荷で動作するか 本番 移行先 AP 本番同等以上のリクエスト WEB WEB リクエスト log レスポンス log WEB WEB 42

移行手順 1. DMSでデータを同期 2. 既存アプリケーションの停止 3. DMSの同期が完了したことを確認 4. 新アプリケーションのリリース 数分の停止で移行できるのは DMS のおかげ! 43

アジェンダ 1. 会社紹介 2. インフラ概要 3.DBの歴史と遷移 4.ExadataからOracleEE on EC2への移行 5.OracleからAuroraPostgreSQL 互換への移行 6.AWS 移行後 44

AWS を 2 年間使ってみて 良かったこと 開発エンジニアがインフラに興味を持つようになった ハードにかかるコスト意識増 サイジング不要 構築しながら調整ができる インフラを用意する時間の短縮 待ち時間減 エンジニアのモチベーションUP 本番同等の環境が構築できるため テスト品質 効率 UP オンプレに比べ 故障の頻度が少ない( 当社比 ) 45

AWS を 2 年間使ってみて 気をつけたほうが良いこと 簡単に何でも作れてしまうため ルールが無いと無法地帯に最低限のルールは作り クラウドの自由度は残す 何でもタグ付けをしておかないと 後から分からなくなるサービスによってはタグをつけれないものも リザーブドインスタンスの購入がドキドキするこのインスタンスを買う ではなく このプラットフォーム このタイプを なので 実際に買わないと適用されたかが分からない AWS 側都合の EC2 再起動依頼は少し手間 46

AWS を 2 年間使ってみて 気をつけたほうが良いこと 落ちる前提で作る 必要に応じて冗長化 EC2 の R4 系等 新しいタイプは稀に起動できないことがある平日日中しか使用しないサーバは ジョブで 9 時 ON-18 時 OFF をしていたが その AZ に確保できるリソースが無いというエラー発生 AWS 側の障害が発生した際 待つことしかできない Oracle が動いている EC2 の EBS で 読み取り遅延発生復旧が遅い時があった ( 発生 2 時 復旧 12 時 ) 47

DB を移行して Exadata OracleEE on EC2 可用性シングル構成のため RAC より可用性は下がっているが 実際の停止時間は減った コスト新たに Exadata を購入するよりは少し安い位レスポンス UP のための EBS が想定よりコストがかかった 性能 CPU は 5 年前の Exadata より速い純粋な IO 速度は負けるが チューニングや他サービスとの組合せで 同等以上の速度をだせる 48

DB を移行して OracleEE AuroraPostgreSQL 互換 可用性 :UP コスト :DOWN 性能: 同等以上 ( と思われる ) その他: Auroraは良いところがかなり多い運用に手がかからなくなるため DBAが不要 49

まとめ レガシーな基幹系でも やり方次第でコストを抑えて AWS に移行できる 基幹系で使用する大規模な Oracle を PostgreSQL や Aurora に移行することは十分可能 データベース移行時 DMS SCT はかなり効果的 AWS やマネージドなデータベースを活用することで リソースをビジネス側に集中できる 50

最後に 一緒に働く仲間を募集しています! ご清聴ありがとうございました 51