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

今まで生き残ってきたRDBMSとこの先10年戦えるデータストア戦略 / Database now and in the past

soudai sone
February 15, 2022

今まで生き残ってきたRDBMSとこの先10年戦えるデータストア戦略 / Database now and in the past

soudai sone

February 15, 2022
Tweet

More Decks by soudai sone

Other Decks in Technology

Transcript

  1. 自己紹介
 曽根 壮大(37歳)
 Have Fun Tech LLC 代表社員
 
 そ 

    ね  た け と も
 • 日本PostgreSQLユーザ会 勉強会分科会 担当
 • 3人の子供がいます(長女、次女、長男)
 • 技術的にはWeb/LL言語/RDBMSが好きです
 • コミュニティが好き
  2. • Oracle Database 11g Release 1 のリリースは2007/9
 ◦ バージョン 11.2.0.4

    でも2020/12/31でサポート終了
 • Oracle Database 12c Release 1 のリリースは2013/7
 ◦ バージョン 12.1.0.2 は 2022/7/31 でサポート終了
 ◦ 12.2.1の延長として18c(12.2.0.2)、19c(12.2.0.3)がリリース
 • Oracle Cloudの東京リージョンの開始は2019/5/8
 ◦ Oracle Cloudでのみ21cを提供している(2022/02/15現在)
 OracleDBのこれまで状況
  3. • 2010/1/27/ SunがOracleに買収された
 ◦ MySQL 5.5のリリースは2010/12/15 → 2018/12 EOL
 ◦

    MySQL 5.6のリリースは2013/2/5 → 2021/2 EOL
 ◦ MySQL 5.7のリリースは2015/10/21 → 2023/10 EOL予定
 ◦ MySQL 8.0のリリースは2018/4/19 → 2026/4 EOL予定
 • この10年でMySQLは無くなるのでは?という懸念は払拭された
 ◦ 現在もユーザーコミュニティも活発に活動中
 ◦ 3ヶ月毎に機能リリースがされ、パワフルな進化をしている
 MySQLのこれまで状況
  4. • PostgreSQL 9.2のリリースが2012年9月10日
 • これまではバージョンの表記がx.y.zのx.yがメジャーバージョンであったが、 PostgreSQL 10(9.6のNext)からxがメジャーバージョンに変更
 • PostgreSQLは毎年、メジャーバージョンをリリース
 ◦

    リリースされてから5年間サポート
 ◦ 2022/11/10のPostgreSQL 10がEOL
 • パラレルクエリ、パーテーション、ロジカルレプリケーション、マテリアライズド・ ビューなど商用DBで期待されるような機能が次々と追加された
 PostgreSQLのこれまで状況
  5. • Amazon Web Service
 ◦ 東京リージョンのサービスインは 2011/03/02 
 ◦ Amazon

    Aurora MySQLがリリースされたのは 2014/10 
 ◦ Amazon DynamoDB がリリースされたのは 2012/3/1 
 • Microsoft Azure
 ◦ 東京リージョンのサービス開始は 2014/02/26 
 ◦ Azure Cosmos DBがリリースされたのは 2017年 
 • Google Cloud Platform
 ◦ 東京リージョンのサービス開始は 2016/11/8 
 ◦ Google Cloud Spannerの論文は2012年には発表されていたが、一般ユーザが利用でき るようになったのは2017年から
 クラウドの台頭
  6. • フルマネージドサービスによるDevOpsの実現
 ◦ RDBMSのフルマネージドサービスによるDBAの開放
 ◦ Redisなどの提供によるNoSQLの普及
 ◦ インフラの調達が容易になり、スケールアップ、シャーディングなどの 選択肢がより充実した
 •

    AWS S3のような高可用性でElasticにスケールするオブジェクトストレージ の出現
 ◦ logを簡単に、適切に、大量に保存できる
 ◦ 大規模なデータをクラウドに保存する時代の到来
 クラウドによるデータベースの変化 その1
  7. • 一定の規模までに対するインフラアーキテクチャのパターン化
 ◦ 本当の大規模・高負荷以外は対応できる
 ◦ クラウドベンダーの提供するホワイトペーパーを適切に活用すること が勘所になった
 • クラウドベンダー独自の技術によるNewSQLの到来
 ◦

    NewSQLもクラウドベンダーが提供する答えの一つ
 • ビジネスのコアにより注力できるよう変化
 ◦ ビジネスの実現する上でのインフラのボトルネックがほぼ皆無
 ◦ つまりよりソフトウェアの開発速度がビジネスの速度を決める
 クラウドによるデータベースの変化 その2
  8. • 商用DBはより堅牢・高速・高機能に
 ◦ INDEXの自動作成などは当たり前に
 ◦ クラウドプラットフォームとセットにすることでハードウェアも合わせて チューニングされる
 ◦ アクセス制限、logなどの観点でもセキュアに
 ◦

    Amazon AuroraもOSSベースの商用DBと言える
 • OSS RDBMSも進化
 ◦ 一般的に必要な機能は出揃っている
 ◦ 豊富な事例とコストメリットで広く普及
 RDBMSの技術の螺旋
  9. • 商用DBはより堅牢・高速・高機能に
 ◦ INDEXの自動作成などは当たり前に
 ◦ クラウドプラットフォームとセットにすることでハードウェアも合わせて チューニングされる
 ◦ アクセス制限、logなどの観点でもセキュアに
 ◦

    Amazon AuroraもOSSベースの商用DBと言える
 • OSS RDBMSも進化
 ◦ 一般的に必要な機能は出揃っている
 ◦ 豊富な事例とコストメリットで広く普及
 RDBMSの技術の螺旋 最新版を使うだけで高速化などのメリットを享受できる 商用DBもOSS DBも塩漬けにせずにバージョンアップ戦略が大事 またAWSなどでもサポート終了したバージョンは強制終了している
  10. • ハードウェアリソースの制限
 ◦ クラウドと言えど無限ではない
 ▪ インスタンスサイズの限界など
 ◦ CPU、Network I/O、Disk I/O

    の上限はオンプレの方が高い
 ▪ しかし自分でメンテナンスすることとトレードオフ
 • ソフトウェアの制限
 ◦ 事前にチューニングされているが反面、制限がある
 ◦ 使えない機能・拡張がある
 ◦ ソースコードに手を入れれない
 フルマネージドの制限
  11. • ハードウェアリソースの制限
 ◦ クラウドと言えど無限ではない
 ▪ インスタンスサイズの限界など
 ◦ CPU、Network I/O、Disk I/O

    の上限はオンプレの方が高い
 ▪ しかし自分でメンテナンスすることとトレードオフ
 • ソフトウェアの制限
 ◦ 事前にチューニングされているが反面、制限がある
 ◦ 使えない機能・拡張がある
 ◦ ソースコードに手を入れれない
 フルマネージドの制限 これらの制限とトレードオフで、 エラスティックなスケーラビリティと バックアップ設計やHA構成の フルマネージドなどの運用面のメリットがある
  12. • 常に追従が必要なバージョン
 ◦ 本来はあるべき姿がオンプレ時代は臭いものに蓋をしていた
 • データは基本的に追加なので増加していく
 ◦ サービスが成長すればするほどデータ容量は増える
 ◦ エラスティックにストレージは増強できるので容量は問題ない


    ◦ コストは?ビジネスの成長と比例している?
 ▪ 無料利用ユーザが増えてストレージを圧迫したり
 ▪ 無限にログを残してストレージを圧迫したり
 • クラウドで解決できないパターンの時はどうする?
 10年後のクラウドのデータベース
  13. • 常に追従が必要なバージョン
 ◦ 本来はあるべき姿がオンプレ時代は臭いものに蓋をしていた
 • データは基本的に追加なので増加していく
 ◦ サービスが成長すればするほどデータ容量は増える
 ◦ エラスティックにストレージは増強できるので容量は問題ない


    ◦ コストは?ビジネスの成長と比例している?
 ▪ 無料利用ユーザが増えてストレージを圧迫したり
 ▪ 無限にログを残してストレージを圧迫したり
 • クラウドで解決できないパターンの時はどうする?
 10年後のクラウドのデータベース • クラウドを活用して最適解を出すタイプ • クラウドで解けない問題を打開していくタイプ あなたはどちらを目指す?または両方?
  14. ”データベースよりアプリケーションのほうが絶対的に 変化に強いです。 テストコードも書きやすいし、振る 舞いのテストもしやすいし、振る舞いの変更もしやす いしです。 
  そしてデプロイもデータベースに比べて簡単です。 データベースだとデプロイするときに、ロックのことを 考えなきゃいけないですし、マスター・スレーブのデー タの整合性を考えないといけません。


     例えば同じことが、トリガーやストアドとアプリケー ションで出来ることが同じ場合、なぜアプリケーション が良いかというと圧倒的に元に戻しやすいし、変更し やすいからです。 
  だからこそシステムの柔軟性を意識する際にRDBと アプリケーション側の責任分界点を意識することが大 切です。”
 https://soudai.hatenablog.com/entry/2017/12/27/080000