Kubernetesでもデータベースを本格運用――「PostgreSQL Operator PGO」を使い倒す:Cloud Nativeチートシート(19)
Kubernetesやクラウドネイティブをより便利に利用する技術やツールの概要、使い方を凝縮して紹介する連載。今回は、Operatorを利用して、Kubernetes上でデータベースを動作させる方法とその利点を紹介します。
Kubernetesやクラウドネイティブをより便利に利用する技術やツールの概要、使い方を凝縮して紹介する本連載「Cloud Nativeチートシート」。連載第8回では、「Operator」を利用してKubernetesを拡張する方法を紹介しました。
今回はそのOperatorを利用して、Kubernetes上で「PostgreSQL」を動作させる方法とその利点を紹介します。
目次
なぜDBをKubernetes上で動かすのか
DBマスター:え、Kubernetesでデータベース(DB)を動かしたことないの?
DB初心者:Kubernetes上でDBを動かしていいんですか? じっちゃんは「Kubernetes上でDBは絶対動かすな」って言ってましたよ。
DBマスター:それは、おじいちゃんだけに情報が古いね。今は、Operatorっていう便利なもんがあって、安心安全にDBを運用できるんだよ。
さて、そもそもなぜDBをKubernetes上で動かすのでしょうか?
いろいろなモチベーションがあるとは思いますが、オンプレミスでKubernetesを利用している場合、「Amazon Relational Database Service」(RDS)のようなクラウドベンダーが提供するDBサービスを利用できないので、自分でPostgreSQLのようなオープンソースソフトウェア(OSS)のDBを構築したいというケースがあるでしょう。
もちろんPostgreSQLのPodを起動するだけなら、DBのコンテナイメージを利用できますが、耐障害性やスケーラビリティ、バックアップやモニタリングまで考えると、PostgreSQL本体以外にもさまざまなプロダクトや、その設計と管理が必要になります。
また、アプリケーションのマイクロサービス化が進むにつれて、単一の巨大なDBではなく、サービスごとに小分けにしたDBを作成する構成も取られるようになります。この場合、多数のDBを管理する必要がありますが、従来の運用ではDBの数が増加するにつれて運用コストも増加しがちです。
このような背景の下、多数のDBを効率的に管理するために、DBも「Deployment」「StatefulSet」などのようにKubernetesのリソースとして扱いたいというのも耳にするケースです。
この点、「PostgreSQL Operator」を利用すれば、運用に必要なものが一通りそろったPostgreSQLクラスタを簡単に構築でき、他のアプリケーション同様Kubernetes上のリソースとして運用できます。
PostgreSQL Operatorにもいろいろある
本記事では、PostgreSQL Operatorを動かして例示しながら、その手軽さやKubernetes上でDBを動かす利点を見ていきます。
2022年7月現在、PostgreSQL Operatorは、PostgreSQL開発コミュニティーが公式に開発、提供しているものはありません。さまざまな企業やコミュニティーがそれぞれ開発したPostgreSQL Operatorを提供している状況です(※1)。
※1:PostgreSQL Operatorの比較については、NTTデータが公開しているスライドがあるので、PostgreSQL Operatorごとの機能の違いや、PGO以外のOperatorに興味のある方はこちらもご参照ください。
今回は数あるPostgreSQL Operatorの中でも、PostgreSQLコア開発者が複数在籍する企業Crunchy Dataが開発を主導している「PGO」を取り上げます。
PGOが作成するPostgreSQL環境のアーキテクチャ
今回利用する機能の範囲で、PGOが作成するPostgreSQLクラスタの概要を図示します。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- データ永続化と構築運用の自動化を実現する「PostgreSQL on Kubernetes」の仕組み
クラウドネイティブ時代のデータベース設計で考慮すべきポイントを検討する本連載。第2回はKubernetesでPostgreSQLを扱う「PostgreSQL on Kubernetes」の仕組みを解説する。 - プロが教える、クラウドインフラのトラブルシューティング「4つの原則」とは
クラウドインフラはオンプレミス環境と比べて複雑になりがちで、トラブルの原因特定に時間がかかることが多い。では、どういった点に注意してトラブルに対応していけばいいのか。 - 「スケールアウトできる『PostgreSQL』」――Yugabyte Japanに聞く「分散SQLDB」のメリット
なぜ「分散SQLDB」が注目を集めているのか。日本国内における分散SQLDBの普及に注力しているYugabyte Japanに「分散SQLDB」とその利点を伺いました。記事後半では2022年3月に開催されたアジア圏向けイベント「Distributed SQL Summit Asia」の内容を紹介します。