SlideShare a Scribd company logo
1 of 32
Download to read offline
MySQLでDevOps!
Cloud Native Week 2022 autumn
⽣駒 眞知⼦/Machiko IKOMA
⽇本オラクル株式会社
Principal Solution Engineer
MySQL Global Business Unit
Sep. 14, 2022
進んでますか︖クラウドネイティブ
2 Copyright © 2022, Oracle and/or its affiliates
1,020万⼈
コンテナ関連技術者の⼈数
84%
本番環境でクラウドネイティブ技術
を利⽤している組織*の割合
Source, CNCF Survey, Sample Size: 1337,
51% of organizations had 500+ employees
23%
69%
73%
84%
2016 2017 2018 2019
Source, /DATA and CNCF Survey
障害/問題発⽣時の対応策が導⼊の課題
Copyright © 2022, Oracle and/or its affiliates
3
23.1%
23.7%
30.2%
32.5%
0% 5% 10% 15% 20% 25% 30% 35%
モニタリング/パフォーマンス管理
データ管理/統合
セキュリティ対策
障害/問題発⽣時の対応策
コンテナ/Kubernetes導⼊時の課題
Source, 2021年 国内コンテナ/Kubernetesに関するユーザー導⼊調査結果(抜粋)
アジェンダ
1. MySQLとクラウドネイティブ
2. データ損失ゼロの⾼可⽤性ソリューション
3. MySQL Operator for Kubernetes
4 Copyright © 2022, Oracle and/or its affiliates
MySQLとクラウドネイティブ
MySQLが選択される理由
5 Copyright © 2022, Oracle and/or its affiliates
WHY MySQL?
世界でもっとも普及している、オープンソースデータベース
LAMPスタックの"M"
• Webアプリケーションを開発する時のデファクトスタンダード
マルチプラットフォーム対応
• Windows, Linux, macOS
⾼性能、軽量、⾼信頼
• 特にOLTP系の処理が得意
導⼊や運⽤の容易性
• ダウンロードからデータベース起動まで15分以内
• 管理不要なシンプルさ
6
「⼩さく始めて⼤きく育てる」
Copyright © 2022, Oracle and/or its affiliates
MySQLのユーザー
Copyright © 2022, Oracle and/or its affiliates
7
Social ECommerce SaaS Finance FinTech
CNCF Cloud Native Interactive Landscape
Copyright © 2022, Oracle and/or its affiliates
8
Databaseカテゴリのひとつ
CNCF Cloud Native Interactive Landscape | https://landscape.cncf.io/
MySQLがDevOpsに最適な理由
どのインフラでもMySQLを柔軟に利⽤可能
9 Copyright © 2022, Oracle and/or its affiliates
オンプレミス&仮想環境で
MySQL HeatWave
Database Service
• MySQLチームが100%開発・
提供するクラウド・サービス
• Amazon RDS (MySQL)の
1/3以下のコスト
• OLTP/OLAPのワークロードに
対応したマネージドサービス
MySQL Operator for k8s
• MySQL InnoDB Clusterを
Kubernetes上に構築し運⽤管理
MySQL Server Dockerイメージ
• DockerコンテナへMySQL Serverを
デプロイ
オンプレミスでのMySQL
• バージョン選択や構成を
最も柔軟に選択可能
IaaS上でのMySQL
• OCIのマーケットプレイスの
イメージから簡単に環境構築
クラウド・マネージドサービスで コンテナ上で
いずれの利⽤⽅法でもMySQL開発チームと連携した
専⾨部隊によるサポートサービスをご利⽤いただけます
データ損失ゼロの⾼可⽤性ソリューション
MySQL InnoDB Cluster
10 Copyright © 2022, Oracle and/or its affiliates
Fault
Tolerance
MySQL InnoDB Clusterとは︖
Copyright © 2022, Oracle and/or its affiliates
11
• ⾼可⽤性⽬的、参照処理の負荷分散⽬的に向く
üデータベースの⾃動フェイルオーバー
üアプリケーション接続先の⾃動フェイルオーバー
ü障害発⽣時のデータロストなし
üオラクル社による単⼀ベンダーサポート
• アーキテクチャ
以下の機能が連携することで実現
üグループレプリケーション︓フェイルオーバー、負荷分散
üMySQL Router︓⾃動フェイルオーバー
üMySQL Shell︓構築、運⽤管理
アプリケーション
MySQL
Connector MySQL Shell
MySQL
Router
プライマリ
(Read/Write)
セカンダリ
(Read Only)
セカンダリ
(Read Only)
MySQLサーバー
グループ
レプリケーション
MySQL
AdminAPI
MySQL InnoDB Cluster概要(1/3)
シングルプライマリモード
MySQL Server
• 同期レプリケーション(グループレプリケーション)
• セカンダリは参照のみ可能
MySQL Router
• 書込み処理をプライマリのみに依頼
• 読取り処理はセカンダリに依頼
MySQL Shell
• クラスタ管理APIを提供
12 Copyright © 2022, Oracle and/or its affiliates
グループレプリケーション
アプリケーション
MySQL Router
プライマリ セカンダリ
セカンダリ セカンダリ
セカンダリ
MySQL Shell
MySQL InnoDB Cluster概要(2/3)
⾃動フェイルオーバー
MySQL Server
• 新プライマリをグループから選出
• 新プライマリは書込み可能になる
• ⾃動的に実施(⼿動操作は不要)
MySQL Router
• 新プライマリが準備できた時点から
書込み処理を依頼
13 Copyright © 2022, Oracle and/or its affiliates
グループレプリケーション
アプリケーション
MySQL Router
プライマリ
セカンダリ セカンダリ
セカンダリ
MySQL Shell
停⽌
MySQL InnoDB Cluster概要(3/3)
メンバーの追加・複製
MySQL Shell
• 簡単なコマンド実⾏で完結
• 既存メンバーのクローンを作成
• メンバーの復元を実施
14 Copyright © 2022, Oracle and/or its affiliates
グループレプリケーション
アプリケーション
MySQL Router
プライマリ セカンダリ
セカンダリ
セカンダリ
MySQL Shell
クローン
(オフライン)
同期が完了した時点で
オンラインになる
MySQL Operator for Kubernetes
コンテナ上でもデータ損失ゼロの⾼可⽤性を
15 Copyright © 2022, Oracle and/or its affiliates
Fault
Tolerance
MySQL Operator for Kubernetes概要
Copyright © 2022, Oracle and/or its affiliates
16
• オラクルのオープンソースプロジェクト
• 2021年5⽉末にプレビューリリース 2022年5⽉に正式リリース(GA)
OPERATOR CAPABILITY LEVELS
https://operatorframework.io/operator-capabilities/
バックアップや動的リカバリなどストレージ領域を含めたアプリケーションライフサイクルをサポート
MySQL InnoDB Cluster on Kubernetes
Copyright © 2022, Oracle and/or its affiliates
17
Virtual
Machine
Virtual
Machine
Virtual
Machine
Block Volume
PVC PV
Block Volume
PVC PV
Block Volume
PVC PV
MySQL
Operator Agent
Pod
Service
MySQL
Router
Pod
Operator Agent :
MySQL InnoDB Clusterメンバーを
制御するサイドカーコンテナ
MySQL Shellから制御可能
MySQL :
mysqldが稼働するコンテナ
MySQL Router :
アプリケーションがMySQL Routerを経
由してMySQLに接続
App
MySQL
Operator
Pod
App
Service
MySQL Operator :
InnoDB Clusterの制御管理、
MySQL Shell(mysqlsh)の実⾏可能
type: LoadBalancer
Request
$ kubectl
Custom
Controller
CRD
apiVersion:
mysql.oracle.com/v2alpha1
kind: InnoDBCluster
metadata:
name: mycluster
spec:
secretName: mypwds
instances: 3
router:
instances: 1
マニフェストの
instances数を変更
することで、その数の
Pod, PVC, PV,
Block Volumeを⾃
動作成
sample-cluster.yaml
manifest
0
1
2
StatfulSetの仕組みを利⽤
• 決められた順番でPodの起動や削除を実⾏
• Pod名が変わらない
• PVCから固定の永続ストレージをマウント
GitHub: https://github.com/mysql/mysql-operator
ドキュメント: https://dev.mysql.com/doc/mysql-operator/en/
マニフェスト(yaml)をkubectlで適⽤するかHelmを利⽤してインストール
1. カスタムリソース定義を適⽤
kubectl apply -f deploy_crds.yaml
2. Operatorをデプロイ
kubectl apply -f deploy-operator.yaml
3. operator podを記述
kubectl get deployment mysql-operator --namespace mysql-operator
試してみよう︕
Copyright © 2022, Oracle and/or its affiliates
18
マニフェスト適⽤によるインストール実⾏例
Copyright © 2022, Oracle and/or its affiliates
19
MySQL InnoDB Clusterのデプロイ
Copyright © 2022, Oracle and/or its affiliates
20
apiVersion: mysql.oracle.com/v2
kind: InnoDBCluster
metadata:
name: mycluster
spec:
secretName: mypwds
tlsUseSelfSigned: true
instances: 3
router:
instances: 2
1. rootユーザーの “secret” を作成
kubectl create secret generic mypwds ¥
--from-literal=rootUser=root ¥
--from-literal=rootHost=% ¥
--from-literal=rootPassword="your password”
2. Operatorを使⽤してクラスタ構成を作成
kubectl apply -f mycluster.yaml
Operatorが作成するもの:
• mycluster︓MySQLサーバーのためのステートフルセットとサービス
o pods mycluster-0〜2とPVC、サイドカーコンテナエージェント
• mycluster-router︓MySQL Router⽤のレプリカセット
o pods mycluster-router-xyz、 エージェントなし
• mycluster︓MySQL InnoDB Clusterのサービス
デプロイ実⾏例
Copyright © 2022, Oracle and/or its affiliates
21
• クラスタの状態:
kubectl get innodbcluster --watch
• クラスタのIPアドレス取得:
kubectl get service mycluster
• MySQL Shellを利⽤した接続:
kubectl run --rm -it myshell --image=mysql/mysql-operator – mysqlsh
MySQL JS> /connect root@mycluster
• 外部接続の作成 (Kubernetesの外にアプリケーションが存在する場合など):
kubectl port-forward service/mycluster 3306
kubectl port-forward service/mycluster 6447:6447
各情報の参照&MySQLへの接続
Copyright © 2022, Oracle and/or its affiliates
22
接続例
Copyright © 2022, Oracle and/or its affiliates
23
接続例
Copyright © 2022, Oracle and/or its affiliates
24
各情報の参照
• InnoDB Clusterのステータス確認 :
kubectl exec -it mycluster-0 -- mysqlsh root@localhost:3306 -- cluster status
• MySQLサーバーのストレージ (PVC) :
kubectl describe pvc datadir-mycluster-0
MySQL Operator for Kubernetes
Copyright © 2022, Oracle and/or its affiliates
25
InnoDB Clusterのステータス確認例
MySQL Operator for Kubernetes
Copyright © 2022, Oracle and/or its affiliates
26
もし困ったら…
MySQL開発ベンダによるサポート
27 Copyright © 2022, Oracle and/or its affiliates
コミュニティ版の場合 MySQL Enterprise Editionの場合
• 問題発⽣時にはお客様⾃⾝で問題の切り分けを実施、
もしくはサポートを提供するベンダと契約
• 修正提供をコミュニティに依頼し、レスポンスを待つ
• MySQL専⾨サポートチームが開発チームと連携
• グローバルで得た知⾒を提供
• アプリケーションのチューニング⽀援も実施
お客様
問題の切り分け
修正提供までの
対処⽅法を検討
コミュニティ
コミュニティへの問題提起
フィードバックを待つ
お客様
Oracle
サポート
チーム
開発チーム
MySQL専⾨のサポートチームが
直接お客様を⽀援
MySQL Enterprise Editionが解決するお客様の課題
年間サブスクリプション 約64万円 (1サーバーあたり)
28 Copyright © 2022, Oracle and/or its affiliates
• ビジネス要件に応じた多様な
データモデルのサポート
• アプリケーション開発者が
選択可能なAPI
→ MySQL Document Store
MySQL Workbench
• システム障害による機会損失や
信⽤低下の回避
• ⼤規模災害時のシステムへの
影響の最⼩化
• 障害復旧までの時間的・⼈的な
コストの削減
→ MySQL Enterprise High Availability
MySQL Enterprise Backup
• セキュリティ対策に関する法規制や
ガイドラインへの準拠
• 情報漏えい予防による企業の
信頼性やブランディングの保護
→ MySQL Enterprise Security
運⽤負荷軽減によるコスト抑制
{ }
• MySQLサーバーの稼働状況や
SQL性能の詳細な監視
• 監視スクリプトのメンテナンスや
監視項⽬抽出の省⼒化
• 障害分析や課題解決への
作業⼯数の削減
→ MySQL Enterprise Monitor
Oracle Premier Support for MySQL
包括的なセキュリティ対応
機会損失削減とデータ保護
迅速なアプリケーション開発
MySQL開発元が提供するフルマネージド・データベース・サービス
サービス概要
• Oracle Cloud Infrastructureに最適化されたMySQL
• 既存MySQLとの併⽤も可能
• 常にセキュアな最新MySQLを適⽤
• MySQL開発チームと連携した⾼品質なサポート
• 運⽤管理・コスト効率化を可能にするインフラストラクチャ
適⽤事例
• 株式会社パソナテック
• 株式会社ファンコミュニケーションズ
• 株式会社りらく
• 中空知衛⽣施設組合(北海道滝川市)
• ジニアス・ソノリティ株式会社 など
価格
https://www.oracle.com/jp/cloud/price-list.html#mysql
https://www.oracle.com/cloud/price-list.html#mysql
スタンドアロン
• ベーシックなMySQLのデータベース・サービス
• エンタープライズ向け機能をサポート
⾼可⽤性
• ⾃動フェイル・オーバー、データ損失ゼロをサポート
• 3インスタンスで実現する⾼可⽤性構成 (InnoDB Cluster)
• ワンクリックで⾼可⽤性構成を構築可能
HeatWave
• インメモリ & カラムナ型エンジン
• 機械学習ベースの運⽤⾃動化機能をサポート (Autopilot)
• 簡単に機械学習が⾏えるプラットフォーム (HeatWave ML)
MySQL HeatWave Database Service
Copyright © 2022, Oracle and/or its affiliates
MySQL利⽤システムのクラウド化に
継続運⽤を重視するシステムに
データ分析システムに
29
まとめ
30 Copyright © 2022, Oracle and/or its affiliates
1. MySQLの⾼可⽤性構成を実現するInnoDB Cluster
2. Kubernetes上に構築、管理を容易化するMySQL Operator for Kubernetes
3.主な機能
4.MySQL開発ベンダのOracle社によるサポート
• MySQL InnoDB Clusterの⾃動デプロイと管理
• セルフヒーリング(フェールオーバー)
• バックアップ
• スケールアウト/イン
• ローリングアップデート(最⼩限ダウンタイム)
• 開発ステータスやインフラ環境に応じた柔軟な利⽤が可能
31 Copyright © 2022, Oracle and/or its affiliates
【MySQL お問い合わせ窓⼝】
0120-065556
【受付時間】
平⽇ 9:00-12:00/13:00-17:00
(祝⽇及び年末年始休業⽇を除きます)
MySQL-Sales_jp_grp@oracle.com
20220914_MySQLでDevOps!

More Related Content

Similar to 20220914_MySQLでDevOps!

Oracle Cloud MySQL Service
Oracle Cloud MySQL ServiceOracle Cloud MySQL Service
Oracle Cloud MySQL ServiceShinya Sugiyama
 
自律型データベース Oracle Autonomous Database 最新情報
自律型データベース Oracle Autonomous Database 最新情報自律型データベース Oracle Autonomous Database 最新情報
自律型データベース Oracle Autonomous Database 最新情報オラクルエンジニア通信
 
[中国地方DB勉強会] 第22回 Webアプリ開発をデータベース側から変革していく - MySQL 8.0新機能
[中国地方DB勉強会] 第22回 Webアプリ開発をデータベース側から変革していく - MySQL 8.0新機能[中国地方DB勉強会] 第22回 Webアプリ開発をデータベース側から変革していく - MySQL 8.0新機能
[中国地方DB勉強会] 第22回 Webアプリ開発をデータベース側から変革していく - MySQL 8.0新機能Ryusuke Kajiyama
 
20150920 中国地方db勉強会
20150920 中国地方db勉強会20150920 中国地方db勉強会
20150920 中国地方db勉強会yoyamasaki
 
Oracle Cloud Infrastructure:2022年4月度サービス・アップデート
Oracle Cloud Infrastructure:2022年4月度サービス・アップデートOracle Cloud Infrastructure:2022年4月度サービス・アップデート
Oracle Cloud Infrastructure:2022年4月度サービス・アップデートオラクルエンジニア通信
 
Oracle Cloud Infrastructure:2022年3月度サービス・アップデート
Oracle Cloud Infrastructure:2022年3月度サービス・アップデートOracle Cloud Infrastructure:2022年3月度サービス・アップデート
Oracle Cloud Infrastructure:2022年3月度サービス・アップデートオラクルエンジニア通信
 
Oracle Cloud Infrastructure:2020年7月度サービス・アップデート
Oracle Cloud Infrastructure:2020年7月度サービス・アップデートOracle Cloud Infrastructure:2020年7月度サービス・アップデート
Oracle Cloud Infrastructure:2020年7月度サービス・アップデートオラクルエンジニア通信
 
[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとは
[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとは[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとは
[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとはKoto Shigeru
 
5分で作るMySQL Cluster環境
5分で作るMySQL Cluster環境5分で作るMySQL Cluster環境
5分で作るMySQL Cluster環境yoyamasaki
 
5分で作るMySQL Cluster環境
5分で作るMySQL Cluster環境5分で作るMySQL Cluster環境
5分で作るMySQL Cluster環境yoyamasaki
 
Oracle Cloud Infrastructure:2022年9月度サービス・アップデート
Oracle Cloud Infrastructure:2022年9月度サービス・アップデートOracle Cloud Infrastructure:2022年9月度サービス・アップデート
Oracle Cloud Infrastructure:2022年9月度サービス・アップデートオラクルエンジニア通信
 
Java on Kubernetes on Azure
Java on Kubernetes on AzureJava on Kubernetes on Azure
Java on Kubernetes on AzureYoshio Terada
 
はじめてのOracle Cloud Infrastructure(Oracle Cloudウェビナーシリーズ: 2021年2月3日)
はじめてのOracle Cloud Infrastructure(Oracle Cloudウェビナーシリーズ: 2021年2月3日)はじめてのOracle Cloud Infrastructure(Oracle Cloudウェビナーシリーズ: 2021年2月3日)
はじめてのOracle Cloud Infrastructure(Oracle Cloudウェビナーシリーズ: 2021年2月3日)オラクルエンジニア通信
 
Oracle Cloud Infrastructure 最新情報(Oracle Cloudウェビナーシリーズ: 2020年7月30日)
Oracle Cloud Infrastructure 最新情報(Oracle Cloudウェビナーシリーズ: 2020年7月30日)Oracle Cloud Infrastructure 最新情報(Oracle Cloudウェビナーシリーズ: 2020年7月30日)
Oracle Cloud Infrastructure 最新情報(Oracle Cloudウェビナーシリーズ: 2020年7月30日)オラクルエンジニア通信
 
20140927 azure pack_slideshare
20140927 azure pack_slideshare20140927 azure pack_slideshare
20140927 azure pack_slideshareOsamu Takazoe
 
MySQL Cluster7.3 GAリリース記念セミナー! MySQL & NoSQL 圧倒的な進化を続けるMySQLの最新機能!
MySQL Cluster7.3 GAリリース記念セミナー! MySQL & NoSQL 圧倒的な進化を続けるMySQLの最新機能!MySQL Cluster7.3 GAリリース記念セミナー! MySQL & NoSQL 圧倒的な進化を続けるMySQLの最新機能!
MySQL Cluster7.3 GAリリース記念セミナー! MySQL & NoSQL 圧倒的な進化を続けるMySQLの最新機能!yoyamasaki
 
LINEのMySQL運用について 修正版
LINEのMySQL運用について 修正版LINEのMySQL運用について 修正版
LINEのMySQL運用について 修正版LINE Corporation
 
Oracle Cloud Infrastructure:2022年10月度サービス・アップデート
Oracle Cloud Infrastructure:2022年10月度サービス・アップデートOracle Cloud Infrastructure:2022年10月度サービス・アップデート
Oracle Cloud Infrastructure:2022年10月度サービス・アップデートオラクルエンジニア通信
 
Web App for Containers + MySQLでコンテナ対応したRailsアプリを作ろう!
Web App for Containers + MySQLでコンテナ対応したRailsアプリを作ろう!Web App for Containers + MySQLでコンテナ対応したRailsアプリを作ろう!
Web App for Containers + MySQLでコンテナ対応したRailsアプリを作ろう!Yoichi Kawasaki
 
MySQL 5.7 & 最新開発状況 @ オープンソースカンファレンス20
MySQL 5.7 & 最新開発状況 @ オープンソースカンファレンス20MySQL 5.7 & 最新開発状況 @ オープンソースカンファレンス20
MySQL 5.7 & 最新開発状況 @ オープンソースカンファレンス20Ryusuke Kajiyama
 

Similar to 20220914_MySQLでDevOps! (20)

Oracle Cloud MySQL Service
Oracle Cloud MySQL ServiceOracle Cloud MySQL Service
Oracle Cloud MySQL Service
 
自律型データベース Oracle Autonomous Database 最新情報
自律型データベース Oracle Autonomous Database 最新情報自律型データベース Oracle Autonomous Database 最新情報
自律型データベース Oracle Autonomous Database 最新情報
 
[中国地方DB勉強会] 第22回 Webアプリ開発をデータベース側から変革していく - MySQL 8.0新機能
[中国地方DB勉強会] 第22回 Webアプリ開発をデータベース側から変革していく - MySQL 8.0新機能[中国地方DB勉強会] 第22回 Webアプリ開発をデータベース側から変革していく - MySQL 8.0新機能
[中国地方DB勉強会] 第22回 Webアプリ開発をデータベース側から変革していく - MySQL 8.0新機能
 
20150920 中国地方db勉強会
20150920 中国地方db勉強会20150920 中国地方db勉強会
20150920 中国地方db勉強会
 
Oracle Cloud Infrastructure:2022年4月度サービス・アップデート
Oracle Cloud Infrastructure:2022年4月度サービス・アップデートOracle Cloud Infrastructure:2022年4月度サービス・アップデート
Oracle Cloud Infrastructure:2022年4月度サービス・アップデート
 
Oracle Cloud Infrastructure:2022年3月度サービス・アップデート
Oracle Cloud Infrastructure:2022年3月度サービス・アップデートOracle Cloud Infrastructure:2022年3月度サービス・アップデート
Oracle Cloud Infrastructure:2022年3月度サービス・アップデート
 
Oracle Cloud Infrastructure:2020年7月度サービス・アップデート
Oracle Cloud Infrastructure:2020年7月度サービス・アップデートOracle Cloud Infrastructure:2020年7月度サービス・アップデート
Oracle Cloud Infrastructure:2020年7月度サービス・アップデート
 
[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとは
[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとは[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとは
[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとは
 
5分で作るMySQL Cluster環境
5分で作るMySQL Cluster環境5分で作るMySQL Cluster環境
5分で作るMySQL Cluster環境
 
5分で作るMySQL Cluster環境
5分で作るMySQL Cluster環境5分で作るMySQL Cluster環境
5分で作るMySQL Cluster環境
 
Oracle Cloud Infrastructure:2022年9月度サービス・アップデート
Oracle Cloud Infrastructure:2022年9月度サービス・アップデートOracle Cloud Infrastructure:2022年9月度サービス・アップデート
Oracle Cloud Infrastructure:2022年9月度サービス・アップデート
 
Java on Kubernetes on Azure
Java on Kubernetes on AzureJava on Kubernetes on Azure
Java on Kubernetes on Azure
 
はじめてのOracle Cloud Infrastructure(Oracle Cloudウェビナーシリーズ: 2021年2月3日)
はじめてのOracle Cloud Infrastructure(Oracle Cloudウェビナーシリーズ: 2021年2月3日)はじめてのOracle Cloud Infrastructure(Oracle Cloudウェビナーシリーズ: 2021年2月3日)
はじめてのOracle Cloud Infrastructure(Oracle Cloudウェビナーシリーズ: 2021年2月3日)
 
Oracle Cloud Infrastructure 最新情報(Oracle Cloudウェビナーシリーズ: 2020年7月30日)
Oracle Cloud Infrastructure 最新情報(Oracle Cloudウェビナーシリーズ: 2020年7月30日)Oracle Cloud Infrastructure 最新情報(Oracle Cloudウェビナーシリーズ: 2020年7月30日)
Oracle Cloud Infrastructure 最新情報(Oracle Cloudウェビナーシリーズ: 2020年7月30日)
 
20140927 azure pack_slideshare
20140927 azure pack_slideshare20140927 azure pack_slideshare
20140927 azure pack_slideshare
 
MySQL Cluster7.3 GAリリース記念セミナー! MySQL & NoSQL 圧倒的な進化を続けるMySQLの最新機能!
MySQL Cluster7.3 GAリリース記念セミナー! MySQL & NoSQL 圧倒的な進化を続けるMySQLの最新機能!MySQL Cluster7.3 GAリリース記念セミナー! MySQL & NoSQL 圧倒的な進化を続けるMySQLの最新機能!
MySQL Cluster7.3 GAリリース記念セミナー! MySQL & NoSQL 圧倒的な進化を続けるMySQLの最新機能!
 
LINEのMySQL運用について 修正版
LINEのMySQL運用について 修正版LINEのMySQL運用について 修正版
LINEのMySQL運用について 修正版
 
Oracle Cloud Infrastructure:2022年10月度サービス・アップデート
Oracle Cloud Infrastructure:2022年10月度サービス・アップデートOracle Cloud Infrastructure:2022年10月度サービス・アップデート
Oracle Cloud Infrastructure:2022年10月度サービス・アップデート
 
Web App for Containers + MySQLでコンテナ対応したRailsアプリを作ろう!
Web App for Containers + MySQLでコンテナ対応したRailsアプリを作ろう!Web App for Containers + MySQLでコンテナ対応したRailsアプリを作ろう!
Web App for Containers + MySQLでコンテナ対応したRailsアプリを作ろう!
 
MySQL 5.7 & 最新開発状況 @ オープンソースカンファレンス20
MySQL 5.7 & 最新開発状況 @ オープンソースカンファレンス20MySQL 5.7 & 最新開発状況 @ オープンソースカンファレンス20
MySQL 5.7 & 最新開発状況 @ オープンソースカンファレンス20
 

More from Machiko Ikoma

20190915_MySQL開発最新動向
20190915_MySQL開発最新動向20190915_MySQL開発最新動向
20190915_MySQL開発最新動向Machiko Ikoma
 
20190825_MySQL ServerだけじゃないMySQL Shellもあるんです
20190825_MySQL ServerだけじゃないMySQL Shellもあるんです20190825_MySQL ServerだけじゃないMySQL Shellもあるんです
20190825_MySQL ServerだけじゃないMySQL ShellもあるんですMachiko Ikoma
 
MySQLですぐに始めるアナリティクス
MySQLですぐに始めるアナリティクスMySQLですぐに始めるアナリティクス
MySQLですぐに始めるアナリティクスMachiko Ikoma
 
20210305_MySQLベースのクエリ・アクセラレーターHeatWaveのご紹介
20210305_MySQLベースのクエリ・アクセラレーターHeatWaveのご紹介20210305_MySQLベースのクエリ・アクセラレーターHeatWaveのご紹介
20210305_MySQLベースのクエリ・アクセラレーターHeatWaveのご紹介Machiko Ikoma
 
20190713_MySQL開発最新動向
20190713_MySQL開発最新動向20190713_MySQL開発最新動向
20190713_MySQL開発最新動向Machiko Ikoma
 
20200627_MySQL開発最新動向
20200627_MySQL開発最新動向20200627_MySQL開発最新動向
20200627_MySQL開発最新動向Machiko Ikoma
 
MySQLで学ぶ機械学習ことはじめ.pdf
MySQLで学ぶ機械学習ことはじめ.pdfMySQLで学ぶ機械学習ことはじめ.pdf
MySQLで学ぶ機械学習ことはじめ.pdfMachiko Ikoma
 

More from Machiko Ikoma (7)

20190915_MySQL開発最新動向
20190915_MySQL開発最新動向20190915_MySQL開発最新動向
20190915_MySQL開発最新動向
 
20190825_MySQL ServerだけじゃないMySQL Shellもあるんです
20190825_MySQL ServerだけじゃないMySQL Shellもあるんです20190825_MySQL ServerだけじゃないMySQL Shellもあるんです
20190825_MySQL ServerだけじゃないMySQL Shellもあるんです
 
MySQLですぐに始めるアナリティクス
MySQLですぐに始めるアナリティクスMySQLですぐに始めるアナリティクス
MySQLですぐに始めるアナリティクス
 
20210305_MySQLベースのクエリ・アクセラレーターHeatWaveのご紹介
20210305_MySQLベースのクエリ・アクセラレーターHeatWaveのご紹介20210305_MySQLベースのクエリ・アクセラレーターHeatWaveのご紹介
20210305_MySQLベースのクエリ・アクセラレーターHeatWaveのご紹介
 
20190713_MySQL開発最新動向
20190713_MySQL開発最新動向20190713_MySQL開発最新動向
20190713_MySQL開発最新動向
 
20200627_MySQL開発最新動向
20200627_MySQL開発最新動向20200627_MySQL開発最新動向
20200627_MySQL開発最新動向
 
MySQLで学ぶ機械学習ことはじめ.pdf
MySQLで学ぶ機械学習ことはじめ.pdfMySQLで学ぶ機械学習ことはじめ.pdf
MySQLで学ぶ機械学習ことはじめ.pdf
 

20220914_MySQLでDevOps!

  • 1. MySQLでDevOps! Cloud Native Week 2022 autumn ⽣駒 眞知⼦/Machiko IKOMA ⽇本オラクル株式会社 Principal Solution Engineer MySQL Global Business Unit Sep. 14, 2022
  • 2. 進んでますか︖クラウドネイティブ 2 Copyright © 2022, Oracle and/or its affiliates 1,020万⼈ コンテナ関連技術者の⼈数 84% 本番環境でクラウドネイティブ技術 を利⽤している組織*の割合 Source, CNCF Survey, Sample Size: 1337, 51% of organizations had 500+ employees 23% 69% 73% 84% 2016 2017 2018 2019 Source, /DATA and CNCF Survey
  • 3. 障害/問題発⽣時の対応策が導⼊の課題 Copyright © 2022, Oracle and/or its affiliates 3 23.1% 23.7% 30.2% 32.5% 0% 5% 10% 15% 20% 25% 30% 35% モニタリング/パフォーマンス管理 データ管理/統合 セキュリティ対策 障害/問題発⽣時の対応策 コンテナ/Kubernetes導⼊時の課題 Source, 2021年 国内コンテナ/Kubernetesに関するユーザー導⼊調査結果(抜粋)
  • 4. アジェンダ 1. MySQLとクラウドネイティブ 2. データ損失ゼロの⾼可⽤性ソリューション 3. MySQL Operator for Kubernetes 4 Copyright © 2022, Oracle and/or its affiliates
  • 6. WHY MySQL? 世界でもっとも普及している、オープンソースデータベース LAMPスタックの"M" • Webアプリケーションを開発する時のデファクトスタンダード マルチプラットフォーム対応 • Windows, Linux, macOS ⾼性能、軽量、⾼信頼 • 特にOLTP系の処理が得意 導⼊や運⽤の容易性 • ダウンロードからデータベース起動まで15分以内 • 管理不要なシンプルさ 6 「⼩さく始めて⼤きく育てる」 Copyright © 2022, Oracle and/or its affiliates
  • 7. MySQLのユーザー Copyright © 2022, Oracle and/or its affiliates 7 Social ECommerce SaaS Finance FinTech
  • 8. CNCF Cloud Native Interactive Landscape Copyright © 2022, Oracle and/or its affiliates 8 Databaseカテゴリのひとつ CNCF Cloud Native Interactive Landscape | https://landscape.cncf.io/
  • 9. MySQLがDevOpsに最適な理由 どのインフラでもMySQLを柔軟に利⽤可能 9 Copyright © 2022, Oracle and/or its affiliates オンプレミス&仮想環境で MySQL HeatWave Database Service • MySQLチームが100%開発・ 提供するクラウド・サービス • Amazon RDS (MySQL)の 1/3以下のコスト • OLTP/OLAPのワークロードに 対応したマネージドサービス MySQL Operator for k8s • MySQL InnoDB Clusterを Kubernetes上に構築し運⽤管理 MySQL Server Dockerイメージ • DockerコンテナへMySQL Serverを デプロイ オンプレミスでのMySQL • バージョン選択や構成を 最も柔軟に選択可能 IaaS上でのMySQL • OCIのマーケットプレイスの イメージから簡単に環境構築 クラウド・マネージドサービスで コンテナ上で いずれの利⽤⽅法でもMySQL開発チームと連携した 専⾨部隊によるサポートサービスをご利⽤いただけます
  • 10. データ損失ゼロの⾼可⽤性ソリューション MySQL InnoDB Cluster 10 Copyright © 2022, Oracle and/or its affiliates Fault Tolerance
  • 11. MySQL InnoDB Clusterとは︖ Copyright © 2022, Oracle and/or its affiliates 11 • ⾼可⽤性⽬的、参照処理の負荷分散⽬的に向く üデータベースの⾃動フェイルオーバー üアプリケーション接続先の⾃動フェイルオーバー ü障害発⽣時のデータロストなし üオラクル社による単⼀ベンダーサポート • アーキテクチャ 以下の機能が連携することで実現 üグループレプリケーション︓フェイルオーバー、負荷分散 üMySQL Router︓⾃動フェイルオーバー üMySQL Shell︓構築、運⽤管理 アプリケーション MySQL Connector MySQL Shell MySQL Router プライマリ (Read/Write) セカンダリ (Read Only) セカンダリ (Read Only) MySQLサーバー グループ レプリケーション MySQL AdminAPI
  • 12. MySQL InnoDB Cluster概要(1/3) シングルプライマリモード MySQL Server • 同期レプリケーション(グループレプリケーション) • セカンダリは参照のみ可能 MySQL Router • 書込み処理をプライマリのみに依頼 • 読取り処理はセカンダリに依頼 MySQL Shell • クラスタ管理APIを提供 12 Copyright © 2022, Oracle and/or its affiliates グループレプリケーション アプリケーション MySQL Router プライマリ セカンダリ セカンダリ セカンダリ セカンダリ MySQL Shell
  • 13. MySQL InnoDB Cluster概要(2/3) ⾃動フェイルオーバー MySQL Server • 新プライマリをグループから選出 • 新プライマリは書込み可能になる • ⾃動的に実施(⼿動操作は不要) MySQL Router • 新プライマリが準備できた時点から 書込み処理を依頼 13 Copyright © 2022, Oracle and/or its affiliates グループレプリケーション アプリケーション MySQL Router プライマリ セカンダリ セカンダリ セカンダリ MySQL Shell 停⽌
  • 14. MySQL InnoDB Cluster概要(3/3) メンバーの追加・複製 MySQL Shell • 簡単なコマンド実⾏で完結 • 既存メンバーのクローンを作成 • メンバーの復元を実施 14 Copyright © 2022, Oracle and/or its affiliates グループレプリケーション アプリケーション MySQL Router プライマリ セカンダリ セカンダリ セカンダリ MySQL Shell クローン (オフライン) 同期が完了した時点で オンラインになる
  • 15. MySQL Operator for Kubernetes コンテナ上でもデータ損失ゼロの⾼可⽤性を 15 Copyright © 2022, Oracle and/or its affiliates Fault Tolerance
  • 16. MySQL Operator for Kubernetes概要 Copyright © 2022, Oracle and/or its affiliates 16 • オラクルのオープンソースプロジェクト • 2021年5⽉末にプレビューリリース 2022年5⽉に正式リリース(GA) OPERATOR CAPABILITY LEVELS https://operatorframework.io/operator-capabilities/ バックアップや動的リカバリなどストレージ領域を含めたアプリケーションライフサイクルをサポート
  • 17. MySQL InnoDB Cluster on Kubernetes Copyright © 2022, Oracle and/or its affiliates 17 Virtual Machine Virtual Machine Virtual Machine Block Volume PVC PV Block Volume PVC PV Block Volume PVC PV MySQL Operator Agent Pod Service MySQL Router Pod Operator Agent : MySQL InnoDB Clusterメンバーを 制御するサイドカーコンテナ MySQL Shellから制御可能 MySQL : mysqldが稼働するコンテナ MySQL Router : アプリケーションがMySQL Routerを経 由してMySQLに接続 App MySQL Operator Pod App Service MySQL Operator : InnoDB Clusterの制御管理、 MySQL Shell(mysqlsh)の実⾏可能 type: LoadBalancer Request $ kubectl Custom Controller CRD apiVersion: mysql.oracle.com/v2alpha1 kind: InnoDBCluster metadata: name: mycluster spec: secretName: mypwds instances: 3 router: instances: 1 マニフェストの instances数を変更 することで、その数の Pod, PVC, PV, Block Volumeを⾃ 動作成 sample-cluster.yaml manifest 0 1 2 StatfulSetの仕組みを利⽤ • 決められた順番でPodの起動や削除を実⾏ • Pod名が変わらない • PVCから固定の永続ストレージをマウント
  • 18. GitHub: https://github.com/mysql/mysql-operator ドキュメント: https://dev.mysql.com/doc/mysql-operator/en/ マニフェスト(yaml)をkubectlで適⽤するかHelmを利⽤してインストール 1. カスタムリソース定義を適⽤ kubectl apply -f deploy_crds.yaml 2. Operatorをデプロイ kubectl apply -f deploy-operator.yaml 3. operator podを記述 kubectl get deployment mysql-operator --namespace mysql-operator 試してみよう︕ Copyright © 2022, Oracle and/or its affiliates 18
  • 20. MySQL InnoDB Clusterのデプロイ Copyright © 2022, Oracle and/or its affiliates 20 apiVersion: mysql.oracle.com/v2 kind: InnoDBCluster metadata: name: mycluster spec: secretName: mypwds tlsUseSelfSigned: true instances: 3 router: instances: 2 1. rootユーザーの “secret” を作成 kubectl create secret generic mypwds ¥ --from-literal=rootUser=root ¥ --from-literal=rootHost=% ¥ --from-literal=rootPassword="your password” 2. Operatorを使⽤してクラスタ構成を作成 kubectl apply -f mycluster.yaml Operatorが作成するもの: • mycluster︓MySQLサーバーのためのステートフルセットとサービス o pods mycluster-0〜2とPVC、サイドカーコンテナエージェント • mycluster-router︓MySQL Router⽤のレプリカセット o pods mycluster-router-xyz、 エージェントなし • mycluster︓MySQL InnoDB Clusterのサービス
  • 21. デプロイ実⾏例 Copyright © 2022, Oracle and/or its affiliates 21
  • 22. • クラスタの状態: kubectl get innodbcluster --watch • クラスタのIPアドレス取得: kubectl get service mycluster • MySQL Shellを利⽤した接続: kubectl run --rm -it myshell --image=mysql/mysql-operator – mysqlsh MySQL JS> /connect root@mycluster • 外部接続の作成 (Kubernetesの外にアプリケーションが存在する場合など): kubectl port-forward service/mycluster 3306 kubectl port-forward service/mycluster 6447:6447 各情報の参照&MySQLへの接続 Copyright © 2022, Oracle and/or its affiliates 22
  • 23. 接続例 Copyright © 2022, Oracle and/or its affiliates 23
  • 24. 接続例 Copyright © 2022, Oracle and/or its affiliates 24
  • 25. 各情報の参照 • InnoDB Clusterのステータス確認 : kubectl exec -it mycluster-0 -- mysqlsh root@localhost:3306 -- cluster status • MySQLサーバーのストレージ (PVC) : kubectl describe pvc datadir-mycluster-0 MySQL Operator for Kubernetes Copyright © 2022, Oracle and/or its affiliates 25
  • 26. InnoDB Clusterのステータス確認例 MySQL Operator for Kubernetes Copyright © 2022, Oracle and/or its affiliates 26
  • 27. もし困ったら… MySQL開発ベンダによるサポート 27 Copyright © 2022, Oracle and/or its affiliates コミュニティ版の場合 MySQL Enterprise Editionの場合 • 問題発⽣時にはお客様⾃⾝で問題の切り分けを実施、 もしくはサポートを提供するベンダと契約 • 修正提供をコミュニティに依頼し、レスポンスを待つ • MySQL専⾨サポートチームが開発チームと連携 • グローバルで得た知⾒を提供 • アプリケーションのチューニング⽀援も実施 お客様 問題の切り分け 修正提供までの 対処⽅法を検討 コミュニティ コミュニティへの問題提起 フィードバックを待つ お客様 Oracle サポート チーム 開発チーム MySQL専⾨のサポートチームが 直接お客様を⽀援
  • 28. MySQL Enterprise Editionが解決するお客様の課題 年間サブスクリプション 約64万円 (1サーバーあたり) 28 Copyright © 2022, Oracle and/or its affiliates • ビジネス要件に応じた多様な データモデルのサポート • アプリケーション開発者が 選択可能なAPI → MySQL Document Store MySQL Workbench • システム障害による機会損失や 信⽤低下の回避 • ⼤規模災害時のシステムへの 影響の最⼩化 • 障害復旧までの時間的・⼈的な コストの削減 → MySQL Enterprise High Availability MySQL Enterprise Backup • セキュリティ対策に関する法規制や ガイドラインへの準拠 • 情報漏えい予防による企業の 信頼性やブランディングの保護 → MySQL Enterprise Security 運⽤負荷軽減によるコスト抑制 { } • MySQLサーバーの稼働状況や SQL性能の詳細な監視 • 監視スクリプトのメンテナンスや 監視項⽬抽出の省⼒化 • 障害分析や課題解決への 作業⼯数の削減 → MySQL Enterprise Monitor Oracle Premier Support for MySQL 包括的なセキュリティ対応 機会損失削減とデータ保護 迅速なアプリケーション開発
  • 29. MySQL開発元が提供するフルマネージド・データベース・サービス サービス概要 • Oracle Cloud Infrastructureに最適化されたMySQL • 既存MySQLとの併⽤も可能 • 常にセキュアな最新MySQLを適⽤ • MySQL開発チームと連携した⾼品質なサポート • 運⽤管理・コスト効率化を可能にするインフラストラクチャ 適⽤事例 • 株式会社パソナテック • 株式会社ファンコミュニケーションズ • 株式会社りらく • 中空知衛⽣施設組合(北海道滝川市) • ジニアス・ソノリティ株式会社 など 価格 https://www.oracle.com/jp/cloud/price-list.html#mysql https://www.oracle.com/cloud/price-list.html#mysql スタンドアロン • ベーシックなMySQLのデータベース・サービス • エンタープライズ向け機能をサポート ⾼可⽤性 • ⾃動フェイル・オーバー、データ損失ゼロをサポート • 3インスタンスで実現する⾼可⽤性構成 (InnoDB Cluster) • ワンクリックで⾼可⽤性構成を構築可能 HeatWave • インメモリ & カラムナ型エンジン • 機械学習ベースの運⽤⾃動化機能をサポート (Autopilot) • 簡単に機械学習が⾏えるプラットフォーム (HeatWave ML) MySQL HeatWave Database Service Copyright © 2022, Oracle and/or its affiliates MySQL利⽤システムのクラウド化に 継続運⽤を重視するシステムに データ分析システムに 29
  • 30. まとめ 30 Copyright © 2022, Oracle and/or its affiliates 1. MySQLの⾼可⽤性構成を実現するInnoDB Cluster 2. Kubernetes上に構築、管理を容易化するMySQL Operator for Kubernetes 3.主な機能 4.MySQL開発ベンダのOracle社によるサポート • MySQL InnoDB Clusterの⾃動デプロイと管理 • セルフヒーリング(フェールオーバー) • バックアップ • スケールアウト/イン • ローリングアップデート(最⼩限ダウンタイム) • 開発ステータスやインフラ環境に応じた柔軟な利⽤が可能
  • 31. 31 Copyright © 2022, Oracle and/or its affiliates 【MySQL お問い合わせ窓⼝】 0120-065556 【受付時間】 平⽇ 9:00-12:00/13:00-17:00 (祝⽇及び年末年始休業⽇を除きます) MySQL-Sales_jp_grp@oracle.com