Cloud Native PostgreSQLをどこよりも早く全容を解説！

会社紹介

2021年4月1日にサイオステクノロジーへ吸収合併

SIOS Technology, Inc.

2

講師紹介
--- 講師紹介
Name：村田 龍洋

Company：サイオステクノロジー株式会社

Dept：DX Product & Integration- Task
2002年 サイオステクノロジー（当時のテンアートニ）に入社
ハードウェア部門、Linux/OSSサポート部門を経て、現在の事業企画へ
エンタープライズ向けのOSSサブスクリプション製品（Red Hat, EnterpriseDB, NGINX）の事業企画を担当

SIOS Technology, Inc.

3

今回のセッションについて
サイオスはこれまでEDB Containerを次世代アプリケーションでのデータベースとして注目し、その動向を追ってきました。
2020年末にはEDB Container 2.0からEDB Cloud Native PostgreSQLと名称を変え、アーキテクチャ自体も大きく刷新されて発表が行われました。そして現在実際に
EDB Cloud Native PostgreSQLは使用することが出来るようになり、これから皆様にも導入を検討いただけるフェーズに入ってきました。
今回は2週連続でEDB Cloud Native PostgreSQLについて、EDB社と連携してご紹介をしていきます。ぜひ翌週のWebinarではデモも用意しておりますので合わせてご視聴ください。

SIOS Technology, Inc.

ビジネスはよりスピードを求める時代へ
コロナ禍をきっかけにDXを求める企業は増加、様々な分野でDXが進み企業はより速く新たなビジネスを生み出そうと考えています。以下は過去に変化の起きた分野の一例です。
商品の販売

新聞紙、雑誌

銀行、証券

テレビ、CD、DVD

切符、チケット製造

これまで人や場所、物がありきで行われていたビジネスがデジタルに置き換わりはじめている。既存の価値観に捕われない発想が求められている。
そしてその流れはこれまでの常識や法律さえも変えるときがある。
※破壊的イノベーションとしてiPhoneやUberそして個人間送金は有名な例
SIOS Technology, Inc.

ニューノーマル時代のITを創る

クラウドネイティブアプリケーション

6

クラウドネイティブアプリケーションとは？
その名の通り、クラウドを利用することを前提に設計されたアプリケーションとなり、不確実性の高い市場の動向に対応するため高い俊敏性や収縮性、可搬性を持つアプリケーションを指します。
近年では、マイクロサービスアーキテクチャによる設計、コンテナプラットフォームの利用、サービスメッシュ、宣言型APIなど様々な関連技術も一般化し、導入が加速しています。

SIOS Technology, Inc.

7

クラウドネイティブが求められる背景
不確実性の高い世の中の流れに対応するために、次の要求に応えるアプリケーション開発が求められている。
●●●

市場のニーズや新たなアイデアをいち早く形に出来る
顧客や市場のニーズに合わせて改変が可能
需要に合わせて拡大・縮小が可能

既存の手法（一枚岩のモノリスアプリケーション）ではこの要件を満たすのは難しい● 増加するアプリケーションのコード・開発期間の長期化● アプリケーションの拡大とともにアップデートの難易度増加、テストの負荷も増加● 障害発生時のダウンタイム、障害対応の複雑化

SIOS Technology, Inc.

8

アプリケーション開発は開発速度の時代へ
アーキテクチャも変化が起き、マイクロサービスの時代へ

FROM

TO

User Interface

User Interface
Microservice

Business Logic
Microservice

Data Interface

Microservice

MicroserviceMonolithic applications

Microservices

アプリケーションのすべての機能は、単一のコードベースに存在します

アプリケーションは、連携して動作する小規模なサービスで構成されています

出典：EDB Microservices,Cloud Native,and Kubernetes

SIOS Technology, Inc.

マイクロサービスアーキテクチャ
機能ごとアプリケーションを開発し、疎結合でつなぐアーキテクチャ
これまでの確実な設計、全てがワンパッケージのアプリケーションを開発するのではな
く、不確実な市場に対して可変的に対応できるよう機能ごとにアプリおケーションを小さく開発することで開発速度やテスト・リリースの速度を上げることが可能となる。
アップデートやスケールアウト／ダウンが小さなアプリケーション単位で可能になるためシステムの柔軟性も向上します。

SIOS Technology, Inc.

10

マイクロサービスアーキテクチャの特徴
●
●
●
●
●

アプリケーション開発の高速化と単純化
サービスに適した開発手法、言語・技術を適用
アップデート時、他のサービスへの影響小
スケールアウトがサービス毎に独立して可能
各サービス毎にデータベースを持つ

SIOS Technology, Inc.

11

コンテナプラットフォーム
クラウドネイティブアプリケーションを開発するプラットフォームとして、軽量、可搬性、柔軟性の高さから利用が拡大。

Kubernetesとは何か？ https://kubernetes.io/ja/docs/concepts/overview/what-is-kubernetes/
SIOS Technology, Inc.

12

EDBとKubernetesの関係● Kubernetes 認定サービス プロバイダー (KCSP)○ このステータスに到達する最初のPostgreSQL会社○ CNCF&リナックス財団シルバーメンバー● レッドハット認定クベルネテスオペレーター○ Cloud Native PostgreSQL (別名 PostgreSQL Operator)○ Cloud Native BDR (別名 BDR Operator)

SIOS Technology, Inc.

キャズムを超えたKubernetes
ワールドワイドではKubernetesがキャズムを超えたというのは一般的な意見になっています。EDBもこの流れに乗るため、製品をキャズムを超えて持ち込むことを目標にしています。

SIOS Technology, Inc.

Overview ofCloud Native Postgres

Kubernetes Operator ?
Kubernetes Controllerを拡張し、複雑なアプリケーションの動作を定義します。
●●●

Kubernetesオペレーターは人間の行動をプログラム化して自動化します
PostgreSQL クラスターは複雑なアプリケーション○ 展開と設定○ 障害の検出とフェールオーバー○ アップデートとスイッチオーバー○ バックアップとリカバリ
Kubernetes のネイティブ コンポーネントと機能に依存しています。
○ 自己修復、高可用性、スケーラビリティ、リソース制御、アクセス..
○ 宣言的および完全な自動化

SIOS Technology, Inc.

命令型と宣言型
命令型
1.
2.
3.
4.
5.
6.

宣言型

PostgreSQL 13 インスタンスを作成する
レプリケーション用の構成
2 つ目のクローンを作成する
レプリカとして設定する
3 つ目のクローンを作成する
レプリカとして設定する

1.

2つのレプリカを持つ
PostgreSQL13クラスターがあります

SIOS Technology, Inc.

States in Kubernetes● オブジェクトおよびインフラストラクチャ全体の望ましい状態の定義に合わせてオペレーションを実施○ 調整のループ：■ インフラストラクチャの現在の状態は、あるべき状態と一致するように■ あるべき状態ない場合、オペレーターは反応して目的の状態を復元します○ 自己回復の基盤

SIOS Technology, Inc.

Postgres オペレーターの概念
あるべき状態

実際の状態

RW

SIOS Technology, Inc.

RWCloud Native Postgres● Kubernetes Operator○ プライマリ/スタンバイ アーキテクチャを実装します● 動作環境：○ PostgreSQL 10+○ EDB Postgres Advanced 10+● コンテナイメージはQuay.ioでホストされています○ 一般提供（BIS EAR）
○ EDB限定使用ライセンス

SIOS Technology, Inc.

Quay.io カタログ
Cloud Native PostgreSQL
https://quay.io/repository/enterprisedb/cloud-native-postgresql

SIOS Technology, Inc.

Red Hat カタログ
PostgreSQL Operator for mission
critical databases in Openshift
Container Platformhttps://catalog.redhat.com/software/operators/detail/5fb41c88abd2a6f7dbe
1b37b

SIOS Technology, Inc.

コンテナイメージ
すべてのコンテナイメージはRed Hat UBI８をベースに作成● Operator Container image○ EDB Limited Use License● Operand Container images (Postgres Application)○ PostgreSQL:■ The Postgres License (PostgreSQL)■ GNU GPL 3 (Barman Cloud)○ EDB Postgres Advanced Server:■ EDB Limited Use License

SIOS Technology, Inc.

対象クラウド環境●●●Private Cloud (self-managed):○ Kubernetes 1.16+○ OpenShift 4.5+
Public Cloud (provider-managed):（今後リリース予定）○ Microsoft Azure (AKS)○ Amazon Web Services (EKS)○ Google Cloud (GKS)
Hybrid Cloud and Multicloud

SIOS Technology, Inc.

Kubernetes 向けに設計●KubernetesAPIサーバーと完全に統合○ 外部ツールは必要ありません■●●

Repmgr、Patroni、Stolon、またはフェイルオーバーマネージャー

不変のアプリケーションコンテナ○ PostgreSQLのみを実行○ 非常に軽い
宣言型構成○ 「kubectl」に依存 （公式のKubernetesクライアントコマンドラインツール）○ YAMLマニフェスト○ インフラストラクチャ アズ コード（IaC）

SIOS Technology, Inc.

The “Operator Capability Levels” Framework
Cloud Native PostgreSQLはLevelⅢ の Full Lifecycle を実現

SIOS Technology, Inc.

System architectures
アプリケーションが存在する場所に基づき分類されます。
Use case 1: Application and Database in K8s

Use case 2: Application outside K8sSIOS Technology, Inc.

Application and Database in K8s●●ステートレスアプリケーション○ ローリングアップグレード○ スケーリングとHA用のReplicaSet○ カスタムアプリケーションイメージ（Go、Django、Java、Python、C、C ++、…）
ステートフルデータベース○ プライマリ/スタンバイロジックを埋め込みます○ RWおよび読み取り操作のサービス○ ローリングアップグレード、スケーリング、HA、…
○ 「クラスター」CRD

SIOS Technology, Inc.

PostgreSQL cluster architecture●●Primary PostgreSQLHot Standby Servers（0台以上）○ PostgreSQL native streaming replication■○○●Async (default) and Sync (quorum-based)

HA構成にはStandby serverは必須
自己回復に pg_rewind をサポート

アプリケーションに2つの K8s Services を提供○ -rw suffix (read-write workloads)○ -r suffix (read workloads)○ -ro suffix (read-only workloads - in 1.1.0)

SIOS Technology, Inc.

Cluster management
●

●
●
●

Self-healing機能○ 生存状況と応答状況を探知○ プライマリのフェイルオーバー○ レプリカの自動作成
プライマリへのスイッチオーバー○ 選択したレプリカの昇格
ローリングアップデート
スケールアップ/スケールダウン機能

SIOS Technology, Inc.

Storage management●●●

Persistent Volume Claims （PVC：永続的ボリューム）のサポート○ PVCの自動生成○ PVCテンプレートのサポート○ 同じクラスター内のポッドのストレージの再利用
永続ボリュームの動的プロビジョニング用のストレージクラス
2つの選択肢○ ローカルストレージ○ ネットワークストレージ

SIOS Technology, Inc.

Rolling updates●●

ゼロダウンタイムのデプロイメント更新○ ポッドインスタンスのインクリメンタルアップデートと新しいインスタンス■ スタンバイサーバーが最初に更新されます■ 次に、スイッチオーバー後のプライマリ● 監視あり/監視なし
トリガー実行されたとき：○ オペレーターの更新○ PostgreSQLのマイナーアップデート○ 再起動が必要な場合の構成変更

SIOS Technology, Inc.

Security
●
●

●
●
●

4Cセキュリティモデル○ クラウド、クラスター、コンテナー、コード
ポッドのセキュリティポリシーとセキュリティコンテキスト○ コンテナに特権（ルート）モードは不要○ ボリュームアクセス用の特権（ルート）モードは不要
TLS暗号化接続
PostgreSQL secretsの作成
静的コード分析○ Linters and Coverity Scan

SIOS Technology, Inc.

Continuous physical backup＆Recovery
Continuous physical backup●●Recovery

スケジュール＆オンデマンド
オブジェクトストアの初期サポート（S3互換）○ パブリッククラウド○ プライベートクラウド（例：MinIO）●●●

バックアップから新しいクラスターを作成する
base backupを復元する○ フルまたはPITR
バックアップWALファイルをプルして再生する

Barman Cloud technology に依存●
●barman-cloud-restore
barman-cloud-wal-restore
SIOS Technology, Inc.

Resource management●

Pod resource control○ CPUとメモリの要求と制限
■

●
●
●

現在、ポッドのスケジュール時にのみ適用されます

nodeSelectorとのPod Affinity
Pod Anti-Affinity policies○ Kubernetesプロバイダーによってサポートされている標準のもの
Pod Disruption Budget○ PostgreSQLグループでの同時中断を制限する○ Kubernetesノードのメンテナンスウィンドウを制御する

SIOS Technology, Inc.

Custom Resource Definition (CRD)●●“Cluster” リソース
○ Kubernetesコントローラーを拡張します○ デプロイメントの責任“instances” パラメーター○ クラスター内のPostgreSQLインスタンスの数○ hot standby replicas = instances - 1■Supports Async and Sync replication for RPO=0

SIOS Technology, Inc.

Free Trial

https://www.enterprisedb.com/products/postgresql-on-kubernetes-ha-clusters-k8s-containers-scalable
SIOS Technology, Inc.

SIOSDX
コンテナの窓口

コンテナ入門Webinarアンケートより

SIOS Technology, Inc.

39

SIOSのコンテナビジネスおよびSIOSDXのご紹介
お客様の課題サービス＆商材

デリバリー

リソース確保

IT自動化
支援

DX人材へ転向

DX具体化

DX
システム化

サービス
多様化

最適化

DX人材育成支援

Cloud
Native支援

Cloud
Nativeインフラ設計・構築支援

システム
連携支援

運用支援

SIOS & Partners
SIOSDX コンテナの窓口

SIOS Technology, Inc.

ご支援内容概要
ご支援に関する提案事項として3形態のサービスをご用意

インシデント型
問い合わせサービス

コンサル型技術支援
サービス

コンテナエンジニア育成
トレーニングサービス

コンテナ化行う上での情報支援を QA対応数・対応時間に合わせた インシデント 形式でご支援を行います。

コンテナ化行う上でのよりサービスに準じた技術検証やアーキテクチャのご支援を行います。

コンテナを扱うエンジニアの育成を目的としたトレーニング (docker,k8s)のご支援を行います。

こちらのサービスでは一般的な技術情報や構成にベストプラクティスなどの問い合わせをメインのスコープとしております。

こちらのサービスではプリセットとして存在するコンテナ環境の導入やサービスの性質に有ったコンテナ検証環境の構築をメインのスコープとしております。

こちらのサービスでは 1~2ヶ月を目途とした期間で(docker,k8s)それぞれのコンテナ技術習得を目的としたトレーニングを提供させていただきます

コンテナ化対応時期イメージ

短期～中期

短期～中期
SIOS Technology, Inc.

中期〜長期
41コンテナエンジニア育成 トレーニングサービス

自習形式での教材の提供

自習実施時の QA対応

各プロジェクト毎の確認・アドバイス

Gitによる自習教材の提供により普段の開発と同様に教材を扱え、自分のペースで学習が可能

メールの他に Slackなどのチャットツールを用いて自習実施時の疑問など気軽な質疑応答が可能課題毎にGitHubのプルリクエスト機能を用いたレビューにより個人
では気づけない問題点が確認可
能

主にGitHubでのリポジトリ運用のため、受講者以外の関係者もトレーニングの様子を確認可能

トレーニングのキックオフなどでは別途WebMTGなどによるQAも可能SIOS Technology, Inc.

コンテナー技術の有識者による講師が各レビューを行う事で品質を担保します42教育コース価格体系
コース名

プロジェ
クト数

期間

内容

価格

Docker入門

11

約30日間

Dockerに関する一連の構築方法を習得することができます

30万円/人

Kubernetes入門

5

約30日間

Kubernetesに関する一連の構築方法を習得することができます

30万円/人

Kubernetes速習

2

約14日間

Kubernetes Clusterの構築方法を習得できます

20万円/人Dockerオプション

3約5間/プロ
ジェクト

WordPress/Golang/Ruby on Railsの各プロ
ジェクトを利用してDockerコンテナの構築を取得できます

15万円/人 ※１プロ
ジェクトの価格

SIOS Technology, Inc.

43

ポータルサイト SIOSDXのご紹介
DXSLが企画運営するSIOSDXサイトにて最新情報を発信中です。
ビジネストピックスから技術トピックスまでDXとコンテナに関わるあらゆる情報を発信していきます。
公演や執筆の依頼についても承りしております
ので、お気軽にご相談ください。
SIOSDX
URL：https://container.sios.jp/

SIOS Technology, Inc.

DX・コンテナに関する情報を Container.sios.jp にて発信中

サイオステクノロジー株式会社
DX Product & Integration Service Line
Tatsuhiro Murata