ゲオを支える db 基盤の歴史と未来 ~oracle から amazon aurora … · data guard api...

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

Upload: others

Post on 29-Oct-2019

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ゲオを支える DB 基盤の歴史と未来 ~Oracle から Amazon Aurora … · Data Guard API API API OracleEE on EC2 Aurora ... 4.ExadataからOracleEE on EC2への移行

1 GEO HOLDINGS CORPORATION

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

株式会社ゲオホールディングス

業務システム部 ゼネラルマネージャー

神野 旬

2017/05/31

Page 2: ゲオを支える DB 基盤の歴史と未来 ~Oracle から Amazon Aurora … · Data Guard API API API OracleEE on EC2 Aurora ... 4.ExadataからOracleEE on EC2への移行

2 GEO HOLDINGS CORPORATION

アジェンダ

1.会社紹介

2.インフラ概要

3.DBの歴史と遷移

4.ExadataからOracleEE on EC2への移行

5.OracleからAuroraPostgreSQL互換への移行

6.AWS移行後

Page 3: ゲオを支える DB 基盤の歴史と未来 ~Oracle から Amazon Aurora … · Data Guard API API API OracleEE on EC2 Aurora ... 4.ExadataからOracleEE on EC2への移行

3 GEO HOLDINGS CORPORATION

アジェンダ

1.会社紹介

2.インフラ概要

3.DBの歴史と遷移

4.ExadataからOracleEE on EC2への移行

5.OracleからAuroraPostgreSQL互換への移行

6.AWS移行後

Page 4: ゲオを支える DB 基盤の歴史と未来 ~Oracle から Amazon Aurora … · Data Guard API API API OracleEE on EC2 Aurora ... 4.ExadataからOracleEE on EC2への移行

4 GEO HOLDINGS CORPORATION

会社紹介 & 自己紹介

• 社名:株式会社ゲオホールディングス • 会社設立:1989年1月 • 本社:愛知県名古屋市 • 売上高:2,680億円 (2017年3月期) • 店舗数:1,805店 (グループ全体)

メディアショップGEO 2nd STREET JUMBLE STORE ウェアハウス

神野 旬(かんの じゅん) 業務システム部 ゼネラルマネージャー

Page 5: ゲオを支える DB 基盤の歴史と未来 ~Oracle から Amazon Aurora … · Data Guard API API API OracleEE on EC2 Aurora ... 4.ExadataからOracleEE on EC2への移行

自社プリペイドカード「ルエカ」 ゲオグループで利用できる オリジナルプリペイドカード チャージ方法は現金 or 買取を選択可 買取チャージの場合10%の割増あり

5 GEO HOLDINGS CORPORATION

自社プリペイドカード・セルフレジ

セルフレジ 751店舗、合計1,521台導入済 店別利用率は最大92%、平均46% レンタル利用でポイント付与

Page 6: ゲオを支える DB 基盤の歴史と未来 ~Oracle から Amazon Aurora … · Data Guard API API API OracleEE on EC2 Aurora ... 4.ExadataからOracleEE on EC2への移行

6 GEO HOLDINGS CORPORATION

2nd STREET USA

ロサンゼルスのメルローズに

この夏 オープン予定!!

Page 7: ゲオを支える DB 基盤の歴史と未来 ~Oracle から Amazon Aurora … · Data Guard API API API OracleEE on EC2 Aurora ... 4.ExadataからOracleEE on EC2への移行

7 GEO HOLDINGS CORPORATION

アジェンダ

1.会社紹介

2.インフラ概要

3.DBの歴史と遷移

4.ExadataからOracleEE on EC2への移行

5.OracleからAuroraPostgreSQL互換への移行

6.AWS移行後

Page 8: ゲオを支える DB 基盤の歴史と未来 ~Oracle から Amazon Aurora … · Data Guard API API API OracleEE on EC2 Aurora ... 4.ExadataからOracleEE on EC2への移行

8 GEO HOLDINGS CORPORATION

使用AWSサービス

EC2 Auto Scaling

VPC VPC peering

Lambda Elastic Load Balancing

S3 EBS RDS Redshift DMS

Cloud Front

Direct Connect

Cloud Watch

Cloud Trail

Config Trusted Advisor

Certificate Manager

IAM

Athena SNS Work Spaces

Page 9: ゲオを支える DB 基盤の歴史と未来 ~Oracle から Amazon Aurora … · Data Guard API API API OracleEE on EC2 Aurora ... 4.ExadataからOracleEE on EC2への移行

9 GEO HOLDINGS CORPORATION

インフラ概要

DC

店舗

×1,800

Internet VPN

Internet

UTM・Proxy

キャリア網

SSUSA

Azure

事務所

Development

Production

Confidential

Page 10: ゲオを支える DB 基盤の歴史と未来 ~Oracle から Amazon Aurora … · Data Guard API API API OracleEE on EC2 Aurora ... 4.ExadataからOracleEE on EC2への移行

Internet

Work Spaces

10 GEO HOLDINGS CORPORATION

AWS使用例 2nd STREET USA

オレゴン

USA店舗

Internet

WEB WEB

東京

PC タブレット POS

HTTPS

その他 システム

接客業務 管理業務

Page 11: ゲオを支える DB 基盤の歴史と未来 ~Oracle から Amazon Aurora … · Data Guard API API API OracleEE on EC2 Aurora ... 4.ExadataからOracleEE on EC2への移行

①必要なデータの転送

11 GEO HOLDINGS CORPORATION

AWS使用例 AmazonRedshift

全店のレンタル実績に応じて、 新作・旧作等の区分を集計、変更するシステム

OracleExadata: 10時間 AmazonRedshift: 2.5時間 同じロジックのままでも高速化 ただしExadataは他処理もあるため、平等な比較ではない

RDS For MySQL

Redshift ③集計データの書き戻し ②集計

処理時のみ起動でコスト節約

月間レンタル件数:5,000万件

(+転送、書き戻しの時間)

Page 12: ゲオを支える DB 基盤の歴史と未来 ~Oracle から Amazon Aurora … · Data Guard API API API OracleEE on EC2 Aurora ... 4.ExadataからOracleEE on EC2への移行

12 GEO HOLDINGS CORPORATION

AWS使用例 監視・運用系

サーバの死活監視

Zabbix Agent

Slack

Twilio(検証中)

障害検知

緊急性

緊急性

リソース運用

AWS CLI

ON

OFF

EC2、RDS等の ON・OFFを行う

Job Arranger for Zabbix

Page 13: ゲオを支える DB 基盤の歴史と未来 ~Oracle から Amazon Aurora … · Data Guard API API API OracleEE on EC2 Aurora ... 4.ExadataからOracleEE on EC2への移行

13 GEO HOLDINGS CORPORATION

AWS使用例 監視・運用系

バックアップ、CPUクレジット監視

EBSスナップショットの取得 タグ設定通りの世代、時間

T2インスタンス CPUクレジット枯渇監視 CloudWatch

Events Lambda 閾値超え

SNS 通知

エラー

Slack Lambda S3 Athena

ログ保管、検索

Page 14: ゲオを支える DB 基盤の歴史と未来 ~Oracle から Amazon Aurora … · Data Guard API API API OracleEE on EC2 Aurora ... 4.ExadataからOracleEE on EC2への移行

14 GEO HOLDINGS CORPORATION

アジェンダ

1.会社紹介

2.インフラ概要

3.DBの歴史と遷移

4.ExadataからOracleEE on EC2への移行

5.OracleからAuroraPostgreSQL互換への移行

6.AWS移行後

Page 15: ゲオを支える DB 基盤の歴史と未来 ~Oracle から Amazon Aurora … · Data Guard API API API OracleEE on EC2 Aurora ... 4.ExadataからOracleEE on EC2への移行

15 GEO HOLDINGS CORPORATION

DBの歴史と遷移

店舗

店舗

店舗

DC

Oracle

Oracle

Oracle

Oracle

Oracle

DBLink DBLink

DBLink DBLink

DBLink

Page 16: ゲオを支える DB 基盤の歴史と未来 ~Oracle から Amazon Aurora … · Data Guard API API API OracleEE on EC2 Aurora ... 4.ExadataからOracleEE on EC2への移行

16 GEO HOLDINGS CORPORATION

DBの歴史と遷移

店舗

店舗

店舗

DC

Oracle

Oracle

Oracle

Oracle

Oracle

Page 17: ゲオを支える DB 基盤の歴史と未来 ~Oracle から Amazon Aurora … · Data Guard API API API OracleEE on EC2 Aurora ... 4.ExadataからOracleEE on EC2への移行

17 GEO HOLDINGS CORPORATION

DBの歴史と遷移

店舗

店舗

店舗

DC

Oracle バッチ系

DR

転送

DataGuard

API

API

API Oracle RAC 会員DB オンライン系 Oracle

Page 18: ゲオを支える DB 基盤の歴史と未来 ~Oracle から Amazon Aurora … · Data Guard API API API OracleEE on EC2 Aurora ... 4.ExadataからOracleEE on EC2への移行

18 GEO HOLDINGS CORPORATION

DBの歴史と遷移

店舗

店舗

店舗

DC DR

Oracle RAC 会員DB オンライン系

DataGuard

Oracle

API

API

API

ActiveDataGuard

DR & DWH

OracleExadata V2 (RAC)

OracleExadata X2

Page 19: ゲオを支える DB 基盤の歴史と未来 ~Oracle から Amazon Aurora … · Data Guard API API API OracleEE on EC2 Aurora ... 4.ExadataからOracleEE on EC2への移行

19 GEO HOLDINGS CORPORATION

DBの歴史と遷移

店舗

店舗

店舗

DC DR

Oracle RAC 会員DB オンライン系

DataGuard

Oracle

API

API

API

ActiveDataGuard

DR & DWH

ここの移行

OracleExadata V2 (RAC)

OracleExadata X2

Page 20: ゲオを支える DB 基盤の歴史と未来 ~Oracle から Amazon Aurora … · Data Guard API API API OracleEE on EC2 Aurora ... 4.ExadataからOracleEE on EC2への移行

20 GEO HOLDINGS CORPORATION

DBの歴史と遷移

店舗

店舗

DR

ActiveDataGuard

DR & DWH

OracleExadata X2

DataGuard

Oracle

API

API

API

アプリ

OracleEE on EC2

Aurora Mysql互換

OracleEE on EC2 会員DB

Page 21: ゲオを支える DB 基盤の歴史と未来 ~Oracle から Amazon Aurora … · Data Guard API API API OracleEE on EC2 Aurora ... 4.ExadataからOracleEE on EC2への移行

21 GEO HOLDINGS CORPORATION

DBの歴史と遷移

店舗

店舗

DR

ActiveDataGuard

DR & DWH

OracleExadata X2

DataGuard

Oracle

API

API

API

OracleEE on EC2

Aurora Mysql互換

OracleEE on EC2 会員DB

ここの移行

アプリ

Page 22: ゲオを支える DB 基盤の歴史と未来 ~Oracle から Amazon Aurora … · Data Guard API API API OracleEE on EC2 Aurora ... 4.ExadataからOracleEE on EC2への移行

22 GEO HOLDINGS CORPORATION

DBの歴史と遷移

店舗

店舗

Data Guard

API

API

API

OracleEE on EC2

Aurora Mysql互換

AuroraPostgreSQL互換 会員DB

Azure

Azure SQL DataWarehouse

Oracle DR用途

アプリ

Page 23: ゲオを支える DB 基盤の歴史と未来 ~Oracle から Amazon Aurora … · Data Guard API API API OracleEE on EC2 Aurora ... 4.ExadataからOracleEE on EC2への移行

23 GEO HOLDINGS CORPORATION

アジェンダ

1.会社紹介

2.インフラ概要

3.DBの歴史と遷移

4.ExadataからOracleEE on EC2への移行

5.OracleからAuroraPostgreSQL互換への移行

6.AWS移行後

Page 24: ゲオを支える DB 基盤の歴史と未来 ~Oracle から Amazon Aurora … · Data Guard API API API OracleEE on EC2 Aurora ... 4.ExadataからOracleEE on EC2への移行

24 GEO HOLDINGS CORPORATION

ExadataからOracleEE on EC2への移行

目的 Exadata保守切れのタイミングで

コストDOWNと可用性UPのため、別DBへ移行する

移行スケジュール 2015/04 移行先決定(AWS上のOracleEE)

2015/05 プロジェクト開始

2015/09 移行完了

Page 25: ゲオを支える DB 基盤の歴史と未来 ~Oracle から Amazon Aurora … · Data Guard API API API OracleEE on EC2 Aurora ... 4.ExadataからOracleEE on EC2への移行

25 GEO HOLDINGS CORPORATION

移行前構成

Oracle Exadata V2 (RAC)

DR

Oracle Exadata X2

DR & DWH

DC 店舗実績データ

API リクエスト

その他 システム処理

ActiveDataGuard

Page 26: ゲオを支える DB 基盤の歴史と未来 ~Oracle から Amazon Aurora … · Data Guard API API API OracleEE on EC2 Aurora ... 4.ExadataからOracleEE on EC2への移行

26 GEO HOLDINGS CORPORATION

移行後構成

店舗実績データ

DR

DR & DWH

ActiveDataGuard

インメモリ DB

Redshift

OracleEE on EC2

Oracle Exadata X2

API リクエスト

その他 システム処理

部分一致 検索

高負荷 バッチ処理

Page 27: ゲオを支える DB 基盤の歴史と未来 ~Oracle から Amazon Aurora … · Data Guard API API API OracleEE on EC2 Aurora ... 4.ExadataからOracleEE on EC2への移行

27 GEO HOLDINGS CORPORATION

移行のポイント

・FullアクセスをやめてディスクIOを減らし、

CPUを使用するインデックスチューニングを実施

・普通のOracleでExadataに劣る部分は

別の仕組みへオフロード(インメモリDB、Redshift)

・EBSは複数の汎用SSDを並べることで、

コストを抑えつつ、スループット、IOPSを確保

・停止できないシステムは、移行前にデータを差分転送し、

停止時間を極力短くして移行

Page 28: ゲオを支える DB 基盤の歴史と未来 ~Oracle から Amazon Aurora … · Data Guard API API API OracleEE on EC2 Aurora ... 4.ExadataからOracleEE on EC2への移行

28 GEO HOLDINGS CORPORATION

EBS構成

PIOPS 3.4TB×2本

Oracle on EC2

汎用SSD 3.4TB×11本

UNDO、TEMP用

データ領域用

汎用SSD 3.4TB×2本 REDO用

合計約50TB / 実容量11TB OracleASMでボリュームを分散 UNDO、TEMPはスループット確保のためにPIOPSを選択

Page 29: ゲオを支える DB 基盤の歴史と未来 ~Oracle から Amazon Aurora … · Data Guard API API API OracleEE on EC2 Aurora ... 4.ExadataからOracleEE on EC2への移行

29 GEO HOLDINGS CORPORATION

移行でつまずいたところ

・EBSのIOPS/スループット上限 汎用SSD 10,000 IOPS、スループット160MB/s PIOPS 20,000 IOPS、スループット320MB/s

・EC2のスループット上限 r3.8xlarge 10Gbit

0

50

100

150

200

250

300

350

平均

最大

0

2000

4000

6000

8000

10000

12000

14000

平均

最大

スループット(MB/s) IOPS

160MB/s

320MB/s

Page 30: ゲオを支える DB 基盤の歴史と未来 ~Oracle から Amazon Aurora … · Data Guard API API API OracleEE on EC2 Aurora ... 4.ExadataからOracleEE on EC2への移行

30 GEO HOLDINGS CORPORATION

アジェンダ

1.会社紹介

2.インフラ概要

3.DBの歴史と遷移

4.ExadataからOracleEE on EC2への移行

5.OracleからAuroraPostgreSQL互換への移行

6.AWS移行後

Page 31: ゲオを支える DB 基盤の歴史と未来 ~Oracle から Amazon Aurora … · Data Guard API API API OracleEE on EC2 Aurora ... 4.ExadataからOracleEE on EC2への移行

31 GEO HOLDINGS CORPORATION

OracleEEからAuroraPostgreSQL互換への移行

目的 脱Oracleを行いコストDOWNを行う

マネージドなDBを採用し、運用コストを下げる

移行スケジュール 2016/09 移行先DB検討

2016/12 移行先決定、プロジェクト開始

2017/06 移行完了予定(GA待ち)

Page 32: ゲオを支える DB 基盤の歴史と未来 ~Oracle から Amazon Aurora … · Data Guard API API API OracleEE on EC2 Aurora ... 4.ExadataからOracleEE on EC2への移行

32 GEO HOLDINGS CORPORATION

移行対象システム構成

WEB API

Confidential Production

HTTPS

HTTPS

Oracle on EC2

WEB API

踏み台

操作は全て録画

SNS CloudTrail CloudWatch Events

AWSの操作はIAMで制限 特権ユーザが 使用されたら通知

会員DB

Page 33: ゲオを支える DB 基盤の歴史と未来 ~Oracle から Amazon Aurora … · Data Guard API API API OracleEE on EC2 Aurora ... 4.ExadataからOracleEE on EC2への移行

33 GEO HOLDINGS CORPORATION

移行対象システム構成

WEB API

Confidential Production

HTTPS

HTTPS

Oracle on EC2

WEB API

踏み台

操作は全て録画

SNS CloudTrail

AWSの操作はIAMで制限 特権ユーザが 使用されたら通知

ここの移行

CloudWatch Events

会員DB

Page 34: ゲオを支える DB 基盤の歴史と未来 ~Oracle から Amazon Aurora … · Data Guard API API API OracleEE on EC2 Aurora ... 4.ExadataからOracleEE on EC2への移行

34 GEO HOLDINGS CORPORATION

ワークロード

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

Page 35: ゲオを支える DB 基盤の歴史と未来 ~Oracle から Amazon Aurora … · Data Guard API API API OracleEE on EC2 Aurora ... 4.ExadataからOracleEE on EC2への移行

35 GEO HOLDINGS CORPORATION

移行候補DBの比較 EDB Postgres

RDS PostgreSQL

AuroraMysql互換

AuroraPostgreSQL互換

移行し易さ ◎ ○ △ ○

可用性 ○ ○ ◎ ◎

運用 △ EC2、ストレージが自前管理

○ ◎ フルマネージド

◎ フルマネージド

コスト △ ○ ◎ ◎

小さいSQL ○ ○ ◎ ○

大きいSQL ◎ ◎ △ JOIN少 サブクエリ苦手 ◎

パラレルクエリ ○ 9.6から ○ 9.6から × ○ 9.6互換

Page 36: ゲオを支える DB 基盤の歴史と未来 ~Oracle から Amazon Aurora … · Data Guard API API API OracleEE on EC2 Aurora ... 4.ExadataからOracleEE on EC2への移行

36 GEO HOLDINGS CORPORATION

移行候補DBの比較 EDB Postgres

RDS PostgreSQL

AuroraMysql互換

AuroraPostgreSQL互換

移行し易さ ◎ ○ △ ○

可用性 ○ ○ ◎ ◎

運用 △ EC2、ストレージが自前管理

○ ◎ フルマネージド

◎ フルマネージド

コスト △ ○ ◎ ◎

小さいSQL ○ ○ ◎ ○

大きいSQL ◎ ◎ △ JOIN少 サブクエリ苦手 ◎

パラレルクエリ ○ 9.6から ○ 9.6から × ○ 9.6互換

Page 37: ゲオを支える DB 基盤の歴史と未来 ~Oracle から Amazon Aurora … · Data Guard API API API OracleEE on EC2 Aurora ... 4.ExadataからOracleEE on EC2への移行

37 GEO HOLDINGS CORPORATION

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)

Page 38: ゲオを支える DB 基盤の歴史と未来 ~Oracle から Amazon Aurora … · Data Guard API API API OracleEE on EC2 Aurora ... 4.ExadataからOracleEE on EC2への移行

38 GEO HOLDINGS CORPORATION

OracleとPostgreSQLの違い Oracle PostgreSQL

ヒント句 ○ 無し pg_hint_plan拡張で実現可能

トランザクション中のDDL

暗黙のコミット コミットされない DDLもロールバック可能

トランザクション中のエラー発生後

以降も継続可能 以降はSQLを受け付けず、ロールバックしかできない

Merge文 ○ INSERT INTO ~ ON CONFLICT ~ DO UPDATE

サブクエリの別名 不要 必要 SELECT * FROM (SELECT ~) T

ROWID ○ 無し oid、ctidが似ているが違う

Page 39: ゲオを支える DB 基盤の歴史と未来 ~Oracle から Amazon Aurora … · Data Guard API API API OracleEE on EC2 Aurora ... 4.ExadataからOracleEE on EC2への移行

39 GEO HOLDINGS CORPORATION

OracleとPostgreSQLの違い Oracle PostgreSQL

DUAL表 必要 不要 SELECT test FROM DUAL

表の外部結合 Oracle結合 (+) LEFT JOIN, RIGHT JOIN

NULL値変換 NVL、NVL2 COALESCE、CASE

指定レコード抽出 ROWNUM OFFSET、LIMIT

日時取得 SYSDATE date_trunc('second', clock_timestamp())

日付取得 TRUNC(SYSDATE)

select date_trunc('day', clock_timestamp())

日付変換 TO_DATE to_timestamp

同じ名前の関数が存在しても意味が違う、引数が違う等、様々

Page 40: ゲオを支える DB 基盤の歴史と未来 ~Oracle から Amazon Aurora … · Data Guard API API API OracleEE on EC2 Aurora ... 4.ExadataからOracleEE on EC2への移行

変換後定義を適用

拡張パックスキーマ作成 スキーマ情報の読み込み

40 GEO HOLDINGS CORPORATION

移行先データベース作成

AWS Schema Conversion Tool (SCT)

異なるDB間でオブジェクトの移行を補助してくれるツール

SCTで出力したファイルがそのまま使用できなかったため、

一部修正し、各スキーマを作成

SCTはスキーマ単位のため、GRANTは自前で実行する

シノニムが存在しないため、検索パスを設定

ターゲットDB ソースDB

SCT

SQLファイルに出力可能

Page 41: ゲオを支える DB 基盤の歴史と未来 ~Oracle から Amazon Aurora … · Data Guard API API API OracleEE on EC2 Aurora ... 4.ExadataからOracleEE on EC2への移行

41 GEO HOLDINGS CORPORATION

本番データ転送

容量200GBのデータをDMSで転送 テーブル数 :131 合計レコード数:6.4億件 転送時間 :3日11時間 → 10時間

並列度、CommitRate、インスタンスタイプ変更で速度改善

AWS Database Migration Service (DMS)

RDB間でデータ移行支援をしてくれるサービス

DMS

フルロード、差分転送

ターゲットDB ソースDB

Page 42: ゲオを支える DB 基盤の歴史と未来 ~Oracle から Amazon Aurora … · Data Guard API API API OracleEE on EC2 Aurora ... 4.ExadataからOracleEE on EC2への移行

42 GEO HOLDINGS CORPORATION

テスト

新旧比較テスト:両DBに同じリクエストで同じ結果か

総合テスト: POSやアプリから正しく動作するか 負荷テスト:本番と同等以上の負荷で動作するか

WEB API

WEB API リクエストlog

レスポンスlog

本番

WEB API

WEB API

移行先

本番同等以上 のリクエスト

AP

Page 43: ゲオを支える DB 基盤の歴史と未来 ~Oracle から Amazon Aurora … · Data Guard API API API OracleEE on EC2 Aurora ... 4.ExadataからOracleEE on EC2への移行

43 GEO HOLDINGS CORPORATION

移行手順

数分の停止で移行できるのは DMSのおかげ!

1. DMSでデータを同期

2. 既存アプリケーションの停止

3. DMSの同期が完了したことを確認

4. 新アプリケーションのリリース

Page 44: ゲオを支える DB 基盤の歴史と未来 ~Oracle から Amazon Aurora … · Data Guard API API API OracleEE on EC2 Aurora ... 4.ExadataからOracleEE on EC2への移行

44 GEO HOLDINGS CORPORATION

アジェンダ

1.会社紹介

2.インフラ概要

3.DBの歴史と遷移

4.ExadataからOracleEE on EC2への移行

5.OracleからAuroraPostgreSQL互換への移行

6.AWS移行後

Page 45: ゲオを支える DB 基盤の歴史と未来 ~Oracle から Amazon Aurora … · Data Guard API API API OracleEE on EC2 Aurora ... 4.ExadataからOracleEE on EC2への移行

良かったこと

45 GEO HOLDINGS CORPORATION

AWSを2年間使ってみて

・オンプレに比べ、故障の頻度が少ない(当社比)

・本番同等の環境が構築できるため、テスト品質、効率UP

・エンジニアのモチベーションUP

・インフラを用意する時間の短縮、待ち時間減

・サイジング不要、構築しながら調整ができる

・ハードにかかるコスト意識増

・開発エンジニアがインフラに興味を持つようになった

Page 46: ゲオを支える DB 基盤の歴史と未来 ~Oracle から Amazon Aurora … · Data Guard API API API OracleEE on EC2 Aurora ... 4.ExadataからOracleEE on EC2への移行

46 GEO HOLDINGS CORPORATION

AWSを2年間使ってみて

気をつけたほうが良いこと

・AWS側都合のEC2再起動依頼は少し手間

・リザーブドインスタンスの購入がドキドキする このインスタンスを買う、ではなく、 このプラットフォーム、このタイプを、なので、 実際に買わないと適用されたかが分からない

・何でもタグ付けをしておかないと、後から分からなくなる サービスによってはタグをつけれないものも

・簡単に何でも作れてしまうため、ルールが無いと無法地帯に 最低限のルールは作り、クラウドの自由度は残す

Page 47: ゲオを支える DB 基盤の歴史と未来 ~Oracle から Amazon Aurora … · Data Guard API API API OracleEE on EC2 Aurora ... 4.ExadataからOracleEE on EC2への移行

47 GEO HOLDINGS CORPORATION

AWSを2年間使ってみて

気をつけたほうが良いこと

・AWS側の障害が発生した際、待つことしかできない Oracleが動いているEC2のEBSで、読み取り遅延発生 復旧が遅い時があった(発生2時、復旧12時)

・EC2のR4系等、新しいタイプは稀に起動できないことがある 平日日中しか使用しないサーバは、 ジョブで9時ON-18時OFFをしていたが、 そのAZに確保できるリソースが無いというエラー発生

・落ちる前提で作る、必要に応じて冗長化

Page 48: ゲオを支える DB 基盤の歴史と未来 ~Oracle から Amazon Aurora … · Data Guard API API API OracleEE on EC2 Aurora ... 4.ExadataからOracleEE on EC2への移行

48 GEO HOLDINGS CORPORATION

DBを移行して

Exadata → OracleEE on EC2 ・可用性 シングル構成のため、RACより可用性は下がっているが、 実際の停止時間は減った

・コスト 新たにExadataを購入するよりは少し安い位 レスポンスUPのためのEBSが想定よりコストがかかった

・性能 CPUは5年前のExadataより速い 純粋なIO速度は負けるが、チューニングや他サービスとの 組合せで、同等以上の速度をだせる

Page 49: ゲオを支える DB 基盤の歴史と未来 ~Oracle から Amazon Aurora … · Data Guard API API API OracleEE on EC2 Aurora ... 4.ExadataからOracleEE on EC2への移行

49 GEO HOLDINGS CORPORATION

DBを移行して

OracleEE → AuroraPostgreSQL互換 ・可用性:UP

・コスト:DOWN

・性能:同等以上(と思われる)

Auroraは良いところがかなり多い 運用に手がかからなくなるため、DBAが不要

・その他:

Page 50: ゲオを支える DB 基盤の歴史と未来 ~Oracle から Amazon Aurora … · Data Guard API API API OracleEE on EC2 Aurora ... 4.ExadataからOracleEE on EC2への移行

・レガシーな基幹系でも、やり方次第で コストを抑えてAWSに移行できる

50 GEO HOLDINGS CORPORATION

まとめ

・データベース移行時、DMS、SCTはかなり効果的

・基幹系で使用する大規模なOracleを、 PostgreSQLやAuroraに移行することは十分可能

・AWSやマネージドなデータベースを活用することで、 リソースをビジネス側に集中できる

Page 51: ゲオを支える DB 基盤の歴史と未来 ~Oracle から Amazon Aurora … · Data Guard API API API OracleEE on EC2 Aurora ... 4.ExadataからOracleEE on EC2への移行

51 GEO HOLDINGS CORPORATION

最後に

一緒に働く仲間を募集しています!

ご清聴ありがとうございました