MySQLの運用をコードで定義し大幅に自動化する「MySQL Operator for Kubernetes」がオープンソースで公開[PR]

今回は「MySQLの運用をコードで定義し大幅に自動化する「MySQL Operator for Kubernetes」がオープンソースで公開[PR]」についてご紹介します。

関連ワード (指定、状態、自動化等) についても参考にしながら、ぜひ本記事について議論していってくださいね。

本記事は、Publickey様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。


Kubernetesのようなコンテナ環境では、MySQLデータベースのようなステートフルで高い安定性が求められるソフトウェアを運用することは難しいと、以前は考えられていました。

しかし現在ではステートフルセットのような機能もKubernetesは搭載し、実装も安定してきていることから、ステートフルなアプリケーションをKubernetesで実行できる状況が十分に揃ってきました。

それだけではありません。Kubernetesには運用自動化を支える「Operator」と呼ばれる拡張機能が登場しました。これを用いると、Kubernetes上でさまざまなアプリケーションでの運用作業の多くが人手を介することなく自動的に行えるようになります。

そしてこのOperatorを用いてKubernetes環境下のMySQLの運用を大幅に自動化してくれる「MySQL Operator for Kubernetes」が、オラクルからオープンソースで公開されました。すでに正式版に到達しており、実際に本番環境で使えます。

Kubernetesの進化は、ステートフルなアプリケーションの代表ともいえるMySQLの優れた運用基盤になる可能性を見せるところまで前進してきたといえるのです。

fig

この「MySQL Operator for Kubernetes」を用いることで主に2つの利点を得ることができます。1つは前述のように障害対応やバックアップ、アップデートなど運用作業の自動化支援。そしてもう1つは、これらの運用をコードの記述によって定義できるようになる、すなわち運用のコード化です。

それぞれについて詳しく見ていきましょう。

MySQLをクラスタ構成でスケーラブルに

MySQLにはKubernetesのような分散環境に対応し、スケーラビリティと可用性を実現する「MySQL InnoDB Cluster」があります。MySQL Operator for Kubernetesは、Kubernetesの分散環境においてこのMySQL InnoDB Clusterと組み合わせて利用することが想定されています。

まずMySQL InnoDB Clusterの概要を確認しておきましょう。

MySQL InnoDB Clusterは複数のMySQLサーバによるクラスタ構成となります。クラスタ内には「プライマリ」となるMySQLサーバが必ず1つ存在し、それ以外のMySQLサーバはすべて「セカンダリ」となります。

fig

データの追加変更削除はプライマリのデータベースで行われ、その内容はレプリケーションによってすべてのセカンダリのデータベースに即時に反映されます。このセカンダリの台数の増減により大量のリードアクセスに対してスケーラブルな能力を備えたクラスタが実現することになるのです。

万が一プライマリが何らかの原因で稼働しなくなった場合、セカンダリの中の1つが自動的にプライマリに昇格することで、高可用性も実現されています。また、クエリをクラスタ内のサーバに振り分けるルータも冗長化できますし、ネットワーク障害によるいわゆるスプリットブレインなどの状態に陥った場合でも整合性を保てる機能などが搭載されています。

フェイルオーバー、定期バックアップ、アップグレードなど自動化

このMySQL InnoDB Clusterに対してMySQL Operator for Kubernetesを用いることで、さまざまな自動化が実現します。

例えば、クラスタを構成するMySQLサーバが何らかの障害で停止した場合、そのサーバを含むPodが自動的に再起動されてクラスタに復帰するようになっています。

クラスタを構成するMySQLサーバやルータの増減も設定ファイルを変更すると、それに合わせてMySQL Operator for Kubernetesが自動的に実行してくれます。

定期的なバックアップやスナップショットの取得も、あらかじめ定義を記述することで人手を介することなく自動的に実行されます。

MySQLの新バージョンが登場した場合も、設定ファイルにバージョン番号を記述するだけでコンテナレジストリから指定したバージョンのコンテナイメージを取得し、自動的にアップグレード作業が実行されます。

fig設定用のYAMLファイルにバージョンを指定すると、自動的にそのバージョンへとアップグレードが実行される

こうした自動化によって、手作業で運用を行う場合に発生する可能性のあるミスが削減でき、より確実で迅速な運用が実現できるでしょう。

fig

クラウドネイティブな運用体験:コードで運用を定義し実行する

もう1つ大事な特徴は、これらMySQL Operator for Kubernetesに関する運用の自動化はすべて、設定ファイルへの記述で定義できる点です。

クラスタを構成するMySQLサーバやルータの数をいくつにするのか、バックアップをどのようなスケジュールでどのストレージにとるのか、どのバージョンにアップグレードするのかといった運用作業の定義は、すべて設定ファイルに記述します。すると、その記述ファイルを元にMySQL Operator for Kubernetesが実行してくれるのです。

設定ファイルを履歴管理すれば、いつ、誰が、どのように設定し実行したかが明確になります。また、状態を変更してなにか問題が発生した場合、ある時点での状態に戻すことも容易になるでしょう。

クラウドの登場によってインフラの定義をコードで行う「Infrastructure as Code」と呼ばれる技術が登場し、従来のインフラエンジニアの仕事を大きく変えました。

そしてMySQL Operator for Kubernetesの登場は、運用のレイヤにもそのクラウドネイティブな体験をもたらそうとしているのです。

≫MySQL Operator for Kubernetes – GitHub

fig

※商用版のMySQL Enterprise Editionをご購入いただいたお客様は、MySQL Operator for Kubernetesについてもサポートサービスをご利用いただけるようになりました。

(本記事は日本オラクル提供のタイアップ記事です)

COMMENTS


Recommended

TITLE
CATEGORY
DATE
Google、ChromeOS基盤にAndroid LinuxカーネルやAndroidフレームワークを採用すると発表
Google
2024-06-14 21:37
ブラウザー「Vivaldi 4.0」、メールとカレンダーのクライアント組み込み–RSSリーダーも
IT関連
2021-06-10 22:43
セキュアワークス、2023会計年度の事業戦略–次期成長戦略「セキュアワークス2.0」を明らかに
IT関連
2022-05-21 02:36
アライドテレシス、帯域オートスケールに対応したSASEサービスを発表
IT関連
2022-11-10 10:40
世界が再び動き出す中、Uberが第1四半期の利益見通しを上方修正
IT関連
2022-03-09 23:17
「なんちゃってオンライン請求書」や「契約書迷子」–Sansan、「紙トラブル番付」発表
IT関連
2022-12-06 22:13
Cloudflare、CDNエッジで稼働するSQLiteベースのRDB「Cloudflare D1」発表。ユーザーの近接CDNエッジに自動でレプリカを分散配置、高速アクセスを実現
Cloudflare
2022-05-12 01:42
マイクロソフト、欧州で懸念されていたクラウドライセンシングのルールを緩和へ
IT関連
2022-05-21 18:17
AWS上にOracle Cloudを持ち込んだ「Oracle Database@AWS」、限定プレビューの申し込みを開始
AWS
2024-12-04 09:00
累計会員数50万人突破を記念しpaizaが実態調査結果を発表、女性の割合増加・最高スキルランクの年収は平均83万円アップ
IT関連
2022-03-24 21:39
琉球朝日放送とNEC、AIアナウンサー活用の番組制作へ–専門人材の不足受け
IT関連
2024-10-09 02:22
弁護士ドットコム、「Copilot for lawyers」のロードマップ公開–弁護士向け実務サービス
IT関連
2023-07-28 07:16
KDDI、東京スカイツリーでロボットによる案内誘導の実証実験
IT関連
2024-08-21 00:38
多様な人材と柔軟な組織運営–DXが定着した企業の要件(その3)
IT関連
2023-05-18 15:40