結論

マネージドサービスとは、サーバーやデータベースの導入・更新・バックアップ・障害対応といった運用を、サービスを提供する側が引き受ける形のサービスです。自分で運用する場合との違いは「機械を動かすこと」ではなく、「設計・監視・当番・復旧の判断」を誰が持つかにあります。

この記事でわかること

  • マネージドサービスの意味と、場面ごとの使い分け(クラウド・運用代行)
  • 自前の PostgreSQL で行った時点復元・フェイルオーバーの実物と、つまずいた原文
  • マネージドDBで要らなくなる作業・残る作業の対応表と、費用・判断の表

2026年10月29日更新|PostgreSQL 16.15・Ubuntu 24.04 で実行確認

この記事で実際に動かしたもの:自前の PostgreSQL 16.15(127.0.0.1 だけで待ち受け)の構築・TLS・WAL アーカイブ・ベースバックアップ・時点復元・レプリカ・昇格・クラッシュ後の再起動。クラウドには接続していません。

同じ PostgreSQL でも、自分で動かすと「入れる・設定する・守る・壊れたときに戻す」がすべて自分の仕事になります。マネージドの DB では、その下半分を提供側が持ちます。

flowchart TD
    A[データベースを使いたい] --> B{誰が運用する?}
    B -->|自分| C[自前運用<br>OS・DB・更新・<br>バックアップ・冗長化]
    B -->|提供側| D[マネージド<br>更新・バックアップ・<br>冗長化を任せる]
    C --> E[残る: 設計・SQL・権限・データ]
    D --> E

よく調べられることの答えを先にまとめます。

知りたいこと 答え 詳しい節
マネージドサービスとは 運用(導入・更新・バックアップ・障害対応)を提供側が引き受けるサービス マネージドサービスとは
自分で運用する場合との違い OS・DB の更新、バックアップ、冗長化を自分で持つか任せるか 自分で運用する場合との違い
マネージドで要らなくなる作業 OS と DB の導入・更新、自動バックアップ、待機系の用意と切り替え 対応表(公式)
マネージドでも残る作業 SQL の調整、権限、ネットワーク設計、容量と性能の判断、データそのもの 責任共有モデル
マネージドサービス 意味(運用代行) MSP が他社の機器・クラウドの監視や保守を代わりに行う形も指す MSPとしての意味
費用は高い? 単価は上がるが、人の時間と当番を含めて比べる 費用の考え方
フルマネージドとの違い 任せる範囲がより広いものを指す呼び方。明確な定義はない よくある質問
どちらを選ぶか 当番を置けるか・特殊な設定が要るか・規模で判断する 判断表

確認環境:Ubuntu 24.04.5 LTS(2 CPU・メモリ 8GB)の上で、Ubuntu のパッケージにある PostgreSQL 16.15 を root ではなく postgres ユーザーで、作業用のフォルダーに initdb して起動しました。待ち受けは 127.0.0.1 のポート 54239(主)・54240(復元先)・54241(レプリカ)だけで、外には出していません。作業場所の容量の都合で WAL のセグメントを 1MB(initdb --wal-segsize=1)にし、テスト用のデータは pgbench(スケール1、10万行)で作りました。TLS は openssl 3 で作った自己署名の証明書、バックアップは pg_basebackup・pg_dump、復元は restore_command と recovery_target_time、冗長化はレプリケーションスロット付きのストリーミングレプリケーションと pg_ctl promote で行い、時間は bash の time で測りました。ログは行頭の日時を省き、本文中の日付は「2026-10-xx」と伏せています。マネージドの DB(Amazon RDS・Cloud SQL・Azure Database for PostgreSQL)は接続もアカウント作成もしておらず、各社の公式ドキュメントと料金ページで確かめた範囲だけを書いています。図は mermaid で描画を確かめました(確認日 2026年10月29日)。

本記事の内容は、ご自由にお使いください。
ご利用の際は、出典として本ページへのリンクを記載いただけますようお願いします。

(記載例)出典:株式会社RJC「マネージドサービスとは?自前運用との違いをPostgreSQLで実測」

マネージドサービスとは(意味と場面別の使い分け)

この節では、マネージドサービスという言葉の意味と、使われる場面ごとの違いが分かります。

マネージドサービスとは、ある IT サービスを使うのに必要な機器やソフトウェアの導入・管理・運用までを、提供する側がまとめて引き受ける形のサービスです。利用者は「動かし続けるための作業」を任せ、自分はその上で作りたいものに時間を使います。任せる分の費用は利用料金に含まれます。

英語の managed は「管理された」という意味で、ふだんの言葉としては「誰かが面倒を見てくれている」状態です。IT ではこれが「運用をサービスの一部として提供する」という意味になります。ただし、同じ言葉が次のように少し違う場面で使われます。

場面 「マネージド」が指すもの 例
ふだんの言葉 管理されている・面倒を見てもらっている managed account(運用を任せた口座)
クラウドの製品名 クラウド事業者が OS・ソフトの導入や更新、冗長化まで受け持つ製品 マネージドの DB・Kubernetes・メッセージキュー
運用の外部委託(MSP) 専門の会社が、他社の機器やクラウドの監視・保守・障害対応を代わりに行う契約 24時間の監視、パッチ適用の代行、ヘルプデスク
通信サービス 回線だけでなく、つなぐ機器の設定や運用まで含めて提供する形 マネージドVPN、マネージドWi-Fi
セキュリティ 監視や検知の仕組みを、専門の会社が運用する形 マネージド・セキュリティサービス

この記事では、検索する人がいちばん迷いやすい「クラウドのマネージド製品」を中心に、データベース(DB)を例にして自分で運用する場合と比べます。運用代行としての意味は後半の節で扱います。

1

導入

OS とソフトを入れて、使える状態にする。マネージドでは画面やコマンドで作るだけ。

initdb・設定ファイル

2

更新

OS と DB のセキュリティ更新・マイナーバージョンの更新。提供側が時間帯を決めて当てる。

メンテナンスウィンドウ

3

守る

自動バックアップ、時点復元、暗号化。設定で保持期間を選ぶ。

保持期間内の任意の時点

4

止めない

待機系を別の場所に用意し、障害時に切り替える。切り替え後の接続先も提供側がそろえる。

高可用性・フェイルオーバー

マネージドサービスと自分で運用する場合の違い(一覧)

この節では、マネージドサービスと自前運用の違いを、作業ごとの担当で比べられます。

違いは「どの作業を誰が持つか」です。Amazon RDS のユーザーガイドには、オンプレミス(自社の機械)・EC2(クラウドの仮想サーバーに自分で DB を入れる)・RDS(マネージドの DB)で、作業ごとに誰が担当するかの表が載っています。それを日本語にしたものが次の表です。

作業 オンプレミス 仮想サーバー(EC2) マネージド(RDS)
アプリケーションの最適化利用者利用者利用者
スケーリング利用者利用者AWS
高可用性利用者利用者AWS
DB のバックアップ利用者利用者AWS
DB ソフトのパッチ適用利用者利用者AWS
DB ソフトのインストール利用者利用者AWS
OS のパッチ適用・インストール利用者利用者AWS
サーバーの保守・ハードウェアの寿命利用者AWSAWS
電源・ネットワーク・冷却利用者AWSAWS

同じページで、RDS はクエリのチューニング(SQL を速くする調整)を「利用者の責任」とし、監視とチューニングは DB ごとに個別性が高い作業だと説明しています。表の「スケーリング」も、インスタンスの大きさをいつ変えるかを決めるのは利用者です。

自分で運用する(自前)

設定を自由に変えられる。拡張機能や OS も選べる

更新・バックアップ・冗長化・夜間の障害対応も自分

費用はサーバー代+人の時間

マネージドサービスを使う

更新・自動バックアップ・待機系を提供側が持つ

選べる設定や版は提供側の範囲まで

費用は利用料(運用の分が上乗せ)

自前でPostgreSQLを立てて分かった作業(実測)

この節では、自分で PostgreSQL を立てるとどんな作業があり、機械の時間がどれくらいかかったかが分かります。

機械が動く時間は、どの作業も1秒未満でした。時間がかかるのは、設定の意味を調べて決めること、失敗の原因を探すこと、そして動き続けているかを見張ることです。データが小さい(約37MB)ので、本番の大きさでは数値が変わります。

0.585秒initdb(DB の器を作る)できた器は 39MB
16行主の設定に足した行待ち受け・WAL・TLS・ログ
364個設定項目の数うち57個は再起動が要る

作業ごとの手数と時間

作業 自分で打ったもの 機械の時間 マネージドでは
器を作るinitdb(認証方式・文字コード・チェックサムを指定)0.585秒作成の画面・コマンドで指定
待ち受けと接続の制限listen_addresses・port・pg_hba.conf の確認—ネットワーク設定は利用者が行う
通信の暗号化証明書を作る・ssl = on・鍵の権限—既定で TLS が使える(Azure は公式に記載)
起動pg_ctl start0.116秒提供側
ベースバックアップpg_basebackup(46MB)0.142秒自動バックアップ
論理バックアップpg_dump(約290KB)0.114秒必要なら利用者が取る
時点復元コピー・設定5行・recovery.signal・起動0.43秒保持期間内の時点を指定
レプリカを作るロール・スロット・pg_basebackup -R・設定2行0.137秒設定で待機系を有効にする
昇格(切り替え)障害に気づく・pg_ctl promote・接続先の変更0.106秒自動の検出と切り替え

主の postgresql.conf に足したのは次の16行です。1行ごとに「何のためか」を決める必要がありました。

listen_addresses = '127.0.0.1'
port = 54239
unix_socket_directories = '/srv/s4/r17/t239/pg/sock'
wal_level = replica
archive_mode = on
archive_command = 'test ! -f /dev/shm/t239/archive/%f && cp %p /dev/shm/t239/archive/%f'
archive_timeout = 60
ssl = on
logging_collector = on
log_directory = 'log'
log_min_duration_statement = 500
log_checkpoints = on
log_connections = on
min_wal_size = 4MB
max_wal_size = 16MB

起動して TLS で接続し、版と暗号化の状態を確かめた結果です。

$ psql "host=127.0.0.1 port=54239 user=postgres sslmode=require" -c "select version();"
 PostgreSQL 16.15 (Ubuntu 16.15-0ubuntu0.24.04.1) on x86_64-pc-linux-gnu, compiled by gcc ...

$ psql "... sslmode=require" -c "select ssl, version, cipher from pg_stat_ssl where pid=pg_backend_pid();"
 ssl | version |         cipher
-----+---------+------------------------
 t   | TLSv1.3 | TLS_AES_256_GCM_SHA384

最初の起動でつまずいた原文

証明書の鍵ファイルを root でコピーしたところ、最初の起動は失敗しました。ログの原文です。

FATAL:  could not load private key file "server.key": Permission denied
LOG:  database system is shut down

鍵の持ち主を postgres にし、権限を 600 にすると起動しました。マネージドの DB では、サーバー証明書の用意や入れ替えは提供側の作業です(RDS のメンテナンスの種類には server-certificate-rotation があると公式に書かれています)。

自分で確かめる(いまの接続が暗号化されているか)

自前でもマネージドでも、PostgreSQL ならターミナルで次の1行を打つと、いまの接続が TLS かどうかが分かります。t と TLS の版が出れば暗号化されています。

select ssl, version from pg_stat_ssl where pid = pg_backend_pid();

バックアップと時点復元を自前でやった記録

この節では、「誤って全件削除した直前に戻す」作業を自前で行うと、何が要るかが分かります。

時点復元(PITR)には、ベースバックアップと、その後の WAL(変更の記録)がすべて残っていることが必要です。マネージドの DB では、これが「保持期間内の任意の時点に復元できる」という機能になります。RDS のユーザーガイドは「バックアップ保持期間内の任意の時点に DB インスタンスを復元できる」と説明しています。

1

WAL を別の場所に保存し続ける

archive_mode = on と archive_command で、WAL を1つずつアーカイブ用のフォルダーへ写す。写せなかったら気づける仕組みも要る。

pg_stat_archiver で確認

2

ベースバックアップを取る

pg_basebackup で、動いている DB のまるごとのコピーを取る。今回は 46MB で 0.142秒。pg_verifybackup で壊れていないかを確かめた。

定期的に取り直す

3

事故が起きる

戻したい時刻を控えてから、pgbench_accounts を全件削除した(10万行→0行)。

DELETE 100000

4

別の場所に戻す

ベースバックアップを複製し、restore_command と recovery_target_time を書き、recovery.signal を置いて起動する。

ここまで 0.43秒

5

中身を確かめて切り替える

件数が戻ったことを確かめる。アプリの接続先を変えるか、必要な行だけ取り出して元の DB に戻すかを決める。

判断は人

バックアップと検証の出力です。

$ pg_basebackup -d "host=127.0.0.1 port=54239 user=postgres sslmode=require" -D /dev/shm/t239/backup/base -Fp -Xstream -c fast -P
46154/46154 kB (100%), 1/1 tablespace
TIME 0.142 s

$ pg_verifybackup -n /dev/shm/t239/backup/base
backup successfully verified

$ psql ... -At -c "select archived_count, last_archived_wal, failed_count from pg_stat_archiver;"
49|000000010000000000000037.00000028.backup|0

復元先に足した設定は次の5行です(ポートは主とぶつからないよう変えています)。

port = 54240
archive_mode = off
restore_command = 'cp /dev/shm/t239/archive/%f %p'
recovery_target_time = '2026-10-xx 02:32:22+00'
recovery_target_action = 'promote'

起動すると、アーカイブから WAL を20個読み込み、削除の直前で止まりました。ログの抜粋です。

LOG:  starting point-in-time recovery to 2026-10-xx 02:32:22+00
LOG:  restored log file "000000010000000000000037" from archive
LOG:  restored log file "000000010000000000000038" from archive
  ...(20個)
LOG:  consistent recovery state reached at 0/3700100
LOG:  recovery stopping before commit of transaction 760, time 2026-10-xx 02:32:23.004536+00
LOG:  redo done at 0/4A19730 system usage: CPU: user: 0.03 s, system: 0.01 s, elapsed: 0.12 s
LOG:  selected new timeline ID: 2
LOG:  archive recovery complete

$ psql "host=127.0.0.1 port=54240 ..." -At -c "select count(*) from pgbench_accounts;"
100000

削除した10万行が戻りました。ただし、これが成り立ったのは「WAL が1つも欠けていない」「ベースバックアップが削除より前にある」「戻す時刻を控えていた」からです。どれか1つでも欠けると戻せません。自前では、この3つを毎日守る仕組み(アーカイブの失敗の通知、バックアップの定期実行、復元の練習)を作ることになります。

pg_dump での論理バックアップの使い方は、関連記事「pg_dump/pg_restoreの使い方|バックアップとリストアの実行例」で扱っています。どこまで戻せればよいか(RPO)と、どれくらいで戻せればよいか(RTO)の決め方は、関連記事「バックアップ設計の書き方|RPO・RTOの決め方と世代管理の計算例」で扱っています。

フェイルオーバーを自前でやった記録(スプリットブレインまで)

この節では、待機系(レプリカ)を作って主が止まったときに切り替える作業と、自前で起きやすい事故が分かります。

切り替えのコマンド自体は0.106秒で終わりましたが、「主が本当に止まったと判断する」「元の主を二度と書き込ませない」は自分で作る必要がありました。今回は元の主をそのまま起動し直し、両方が書き込みを受け付ける状態(スプリットブレイン)を実際に起こしています。

レプリカを作って同期を確かめる

$ pg_basebackup -d "host=127.0.0.1 port=54239 user=repl sslmode=require" -D /dev/shm/t239/replica -Xstream -R -S replica1 -c fast
TIME 0.137 s

$ psql (主) -x -c "select client_addr, state, sync_state, sent_lsn, replay_lsn, replay_lag from pg_stat_replication;"
client_addr | 127.0.0.1
state       | streaming
sync_state  | async
sent_lsn    | 0/5C00000
replay_lsn  | 0/5C00000
replay_lag  | 00:00:00.000098

レプリカに書き込もうとすると、次のエラーになります。読むだけの DB に接続していることが分かる原文です。

ERROR:  cannot execute INSERT in a read-only transaction

主を止めて、レプリカを昇格させる

アプリ側の接続文字列には、2台を並べて「書き込める方につなぐ」指定(target_session_attrs=read-write)を入れました。主を強制停止すると、どちらにもつながらなくなります。

$ pg_ctl -D primary -m immediate stop
$ psql "host=127.0.0.1,127.0.0.1 port=54239,54241 ... target_session_attrs=read-write" -c "select inet_server_port();"
psql: error: connection to server at "127.0.0.1", port 54239 failed: Connection refused
	Is the server running on that host and accepting TCP/IP connections?
connection to server at "127.0.0.1", port 54241 failed: session is read-only

$ pg_ctl -D replica -w promote
server promoted
PROMOTE 0.106 s

$ psql (同じ接続文字列) -At -c "select inet_server_port(), pg_is_in_recovery();"
54241|f

レプリカ側のログには、主との接続が切れたことと昇格が残りました。

FATAL:  could not receive data from WAL stream: SSL SYSCALL error: EOF detected
FATAL:  could not connect to the primary server: connection to server at "127.0.0.1", port 54239 failed: server closed the connection unexpectedly
LOG:  received promote request
LOG:  selected new timeline ID: 2
LOG:  database system is ready to accept connections

元の主を起動し直すと、2台とも書き込める

止めた元の主を、何も変えずに起動し直しました。強制停止のあとなので、まず自動の回復が走ります。

LOG:  database system was interrupted; last known up at 2026-10-xx 02:32:46 UTC
LOG:  database system was not properly shut down; automatic recovery in progress
LOG:  redo starts at 0/5B000D8
LOG:  redo done at 0/5C47D78 ...
LOG:  database system is ready to accept connections

そして、元の主と新しい主の両方に書き込みが通りました。

元の主(54239): INSERT 0 1   pg_is_in_recovery = f   → 5|old-primary
新しい主(54241): INSERT 0 1  pg_is_in_recovery = f   → 4|after-failover, 6|new-primary

エラーは1つも出ません。2台のデータは別々に進み、あとから1つにまとめるのは手作業になります。自前で冗長化するときは、元の主を自動で起動させない、切り替え役(Patroni などのクラスタ管理)を置く、pg_rewind か作り直しで元の主をレプリカに戻す、といった仕組みまで作ります。マネージドの DB では、待機系の用意と障害の検出・切り替えを提供側が受け持ちます(RDS は「自動の障害検出と回復」、Azure はゾーンをまたいだ待機サーバーの自動用意と同期レプリケーションを公式に記載)。

障害のあと、元の主をどうするか

やってはいけない止まった主を「直ったから」とそのまま起動する。2台とも書き込みを受け付け、データが分かれる
→
代わりに元の主は起動させない。pg_rewind か作り直しでレプリカとして戻し、切り替えは管理ツールに任せる

マネージドの DB では、この判断と作業を提供側が持つ

レプリカの遅れと読み取りの振り分けは、関連記事「リードレプリカ設計の注意点|レプリケーション遅延の対策と確認SQL」で扱っています。

自分で確かめる(いまつないでいるのは主か、読むだけの DB か)

ターミナルで次の1行を打ちます。f なら書き込める主、t ならレプリカ(読むだけ)です。マネージドの DB でも、読み取り用の接続先を使っているかを確かめるときに使えます。

select pg_is_in_recovery();

DB が応答しているかだけを見るなら、pg_isready が使えます。今回の結果は次のとおりで、止まっている方は終了コード 2 になりました。

$ pg_isready -h 127.0.0.1 -p 54241
127.0.0.1:54241 - accepting connections
$ pg_isready -h 127.0.0.1 -p 54239
127.0.0.1:54239 - no response
$ echo $?
2

マネージドDBで要らなくなる作業の対応表(AWS・Google Cloud・Azure公式)

この節では、自前で行った作業が、主なクラウドのマネージド DB ではどう扱われるかが分かります。

OS と DB の導入・更新、自動バックアップ、待機系と切り替えは、3社とも提供側の機能として公式ドキュメントに書かれています。細かな条件(保持期間・停止時間・対象の版)は製品と設定で変わるため、表は2026年10月29日時点の公式ドキュメントの記載の範囲です。

自前で行った作業 Amazon RDS Cloud SQL Azure Database for PostgreSQL
OS・DB の導入AWS が担当(責任分担の表)作成時に版を選ぶ作成時に版を選ぶ
OS・DB の更新週1回・30分のメンテナンスウィンドウで適用メンテナンス更新は再起動を伴い、時間帯を選べるハード・OS・DB エンジンへの自動パッチ。おおむね月次
バックアップ自動バックアップ。保持期間内の任意の時点へ復元バックアップを提供自動。既定7日・最大35日、期間内の任意の時点へ復元
待機系と切り替えMulti-AZ で別の AZ に待機系を自動で用意高可用性とフェイルオーバーを提供ゾーン冗長 HA。同期レプリケーション
暗号化設定で選ぶデータの暗号化を提供保存時 AES 256 ビット、転送時は既定で TLS
監視・ログPerformance Insights などの道具を提供モニタリング・ロギングを提供メトリックを1分間隔・30日分

更新については、提供側がすべて決めるわけではありません。RDS は、ステータスが next window の更新は延期でき、required の更新は延期できず適用日を過ぎると適用される、と説明しています。Cloud SQL はハードウェアの更新を稼働を止めずに行い、OS と DB の更新は短時間の再起動を伴うと書いています。Azure も、パッチ適用中にサーバーが再起動する場合があり、時間帯を自分で指定できるとしています。

1なくなるのは「手を動かす作業」

initdb・証明書・archive_command・pg_basebackup・promote の手順は、マネージドでは設定項目になる。

2残るのは「決めること」

保持期間、待機系を置くか、メンテナンスの時間帯、インスタンスの大きさは利用者が選ぶ。

3止まる時間はゼロではない

更新や切り替えで短い停止や再接続が起きる前提で、アプリ側に再接続の処理を入れる。

RDS の起動・停止・スナップショットをコマンドで操作する方法は、関連記事「AWS CLIでRDSを操作|起動・停止・スナップショット・接続先取得」で扱っています。

マネージドサービスでも利用者に残る作業(責任共有モデル)

この節では、マネージドサービスを使っても任せられない作業と、責任共有モデルの考え方が分かります。

責任共有モデルとは、クラウドの安全を「提供側が守る部分」と「利用者が守る部分」に分けて考える枠組みです。AWS は、提供側の責任を「クラウドのセキュリティ(Security of the Cloud)」、利用者の責任を「クラウドにおけるセキュリティ(Security in the Cloud)」と呼び、利用者の範囲は選んだサービスによって変わると説明しています。仮想サーバーのように自由度の高いサービスほど利用者の範囲が広く、マネージドになるほど狭くなります。ただし、ゼロにはなりません。

  • 1データそのものと、その分類何を保存するか、個人情報をどう扱うかは利用者が決める
  • 2権限(誰が何をできるか)DB のユーザーとロール、クラウドの IAM。Cloud SQL もユーザーやデータベースの作成・削除は利用者と説明
  • 3ネットワークの設計どこから接続できるか。インターネットに直接公開しない構成を選ぶ
  • 4SQL と性能遅いクエリ、インデックス、接続数。RDS はクエリのチューニングを利用者の責任と明記
  • 5容量と大きさの判断ストレージの伸びとインスタンスの大きさをいつ変えるか
  • 6設定の選択保持期間・待機系の有無・メンテナンスの時間帯。選ばなければ既定値になる
  • 7アプリ側の備え切り替えや更新のときの再接続、リトライ

今回の自前の DB では、遅いクエリを見つけるために log_min_duration_statement = 500 を入れていました。0.6秒待つ SQL を流すと、次の行がログに残ります。マネージドでも「どの SQL が遅いか」を見て直すのは利用者の仕事です。

LOG:  duration: 602.229 ms  statement: select pg_sleep(0.6);

どこまでを提供側が約束するかは、サービスレベル契約(SLA)で決まります。SLA の項目の読み方は、関連記事「SLAの項目例と目標値一覧 SLO・SLIとの違いと合意書ひな形」で扱っています。

IaaS・PaaS・SaaS・サーバーレスとマネージドサービスの関係

この節では、マネージドサービスがクラウドの分類のどこに当たるかが分かります。

マネージドサービスは分類の名前ではなく、「運用を誰が持つか」の度合いを表す言葉です。IaaS(仮想サーバー)は利用者の範囲が広く、PaaS や SaaS に近づくほど提供側の範囲が広がります。マネージドの DB は PaaS に近い位置にあります。

  1. 1オンプレミス:すべて自分建物・電源・機械・OS・DB・データ
  2. 2IaaS(仮想サーバーに自分で DB):OS から上が自分今回の自前の PostgreSQL はここに近い
  3. 3マネージドの DB(PaaS に近い):DB の中身と設定の選択が自分OS・DB の更新、バックアップ、待機系は提供側
  4. 4サーバーレスの DB:大きさの判断もほぼ提供側使った分の課金。インスタンスを選ばない形が多い
  5. 5SaaS:使うだけデータと利用者の管理が残る

AWS の責任共有モデルのページは、Amazon S3 や DynamoDB のような「抽象化されたサービス」では、AWS がインフラ・OS・プラットフォームを運用し、利用者はデータの管理(暗号化の選択を含む)・資産の分類・IAM の権限に責任を持つ、と説明しています。どの段でも、データと権限は利用者に残ります。

MSP(運用代行)としてのマネージドサービス

この節では、「マネージドサービス」が運用の外部委託を指す場合の意味と、確かめる点が分かります。

MSP(マネージド・サービス・プロバイダー)とは、他社の機器やクラウドの監視・保守・障害対応などを、契約で決めた範囲で代わりに行う事業者です。クラウドの製品は「その製品の運用」を受け持ちますが、MSP は複数の製品や社内の機器をまとめて運用することがあります。料金は月額の定額で、SLA に沿って対応するのが一般的です。

よくある委託の範囲 内容の例
インフラの監視・運用サーバー・ネットワークの死活監視、容量の見張り
パッチ適用・更新OS・ミドルウェアの更新の計画と適用
バックアップと復旧取得の確認、復元の練習、障害時の復旧
セキュリティログの監視、検知時の一次対応
ヘルプデスク利用者からの問い合わせ窓口
クラウドの運用クラウドの設定変更・費用の見張り

対応の仕方には、壊れたときに直す「都度対応(Break/Fix)」と、更新や予防保守を先回りして行う「予防型」があります。どちらの形かで、費用と止まる時間の考え方が変わります。

委託するときに確かめる点は、次の5つにまとめられます。

  • 範囲:どの作業を任せ、どの作業が自社に残るか(今回の対応表のような表を作る)
  • 連絡:障害時に誰が誰へ、何分以内に連絡するか
  • セキュリティと決まりごと:権限の渡し方、ログの保管、社内規程との整合
  • SLA と監視:稼働率・対応時間の約束と、それを確かめる方法
  • 費用と効果:安さだけで選ぶと、必要な対応が契約に含まれないことがある

マネージドサービスの費用の考え方

この節では、マネージドサービスと自前運用の費用を、同じ物差しで比べる方法が分かります。

マネージドの DB は同じ大きさの仮想サーバーより単価が高くなりますが、比べるべきは「サーバー代+人の時間+当番」です。今回の自前の作業は機械の時間が1秒未満でも、設定の意味を調べる時間、失敗の切り分け、夜間に止まったときの対応は、毎月かかり続けます。

費用の項目 自前運用 マネージド
計算資源(CPU・メモリ)サーバー代インスタンス時間の料金(運用の分を含む)
ストレージディスク代容量の料金。待機系の分も
バックアップの置き場所別のディスク・保管先バックアップ容量の料金
待機系もう1台分のサーバー代+切り替えの仕組み高可用性の料金(おおむね2倍の単価)
更新・監視・当番人の時間(夜間・休日を含む)大部分は料金に含まれる
サポート切れの版自分で更新するまで危険が残る延長サポートの追加料金がかかることがある

公式の料金ページで確かめた、料金の仕組みの例です(2026年10月29日時点)。

  • Cloud SQL(Enterprise エディション・アイオワのリージョンの例):vCPU が1時間 $0.0413、メモリが 1GiB・1時間 $0.007、SSD ストレージが 1GiB・1時間 $0.000232877。高可用性の構成では vCPU・メモリ・ストレージの単価がおおむね2倍。
  • Amazon RDS for PostgreSQL:インスタンス時間(1秒単位・最低10分)、ストレージ、バックアップストレージ、データ転送が分かれて課金される。停止中はインスタンス時間はかからないが、ストレージとバックアップストレージはかかる。サポートが終わったメジャーバージョンには RDS Extended Support の料金がかかる。
  • Azure Database for PostgreSQL:サーバーを停止すると計算の課金はすぐ止まる。停止したサーバーは7日間停止したままで、その後は起動する。

Cloud SQL の単価で計算すると、2 vCPU・メモリ 8GiB を1か月(730時間)動かした計算資源の料金は、(2 × 0.0413 + 8 × 0.007) × 730 ≒ $101、高可用性にするとおおむね $202 です。SSD 100GiB は 100 × 0.000232877 × 730 ≒ $17 です。リージョンやエディションで単価が変わるため、実際の見積もりは各社の料金計算ツールで行います。

自前の側に足す「人の時間」は、次の作業を月に何時間行うかで見積もります。夜間・休日に呼び出される当番を置くなら、その分も入れます。

1定期の作業

更新の確認と適用、バックアップの成否の確認、容量の見張り。

2年に数回の作業

復元の練習、メジャーバージョンの更新、証明書の入れ替え。

3起きたときの作業

障害の検出、切り替え、元の主の戻し、原因の調査と報告。

マネージドサービスのメリットとデメリット

この節では、マネージドサービスを使う利点と注意点が分かります。

利点は「運用の手間と事故の種類が減る」こと、注意点は「選べる範囲が提供側の範囲までになる」ことです。

メリット デメリット・注意点
更新・バックアップ・待機系を任せられる設定・拡張機能・版は提供側が用意したものから選ぶ
専門の知識が社内に少なくても始めやすい運用の知識が社内に育ちにくい
スプリットブレインのような自前の事故を避けやすいメンテナンスの短い停止は前提になる
作るまでが速い(数分で使える)単価は自前より高くなりやすい
料金が月ごとに見える独自の機能に頼ると、別の環境へ移しにくくなる
暗号化・監視の道具が最初からある回線や提供側の障害のときは自分で直せない

移しやすさについては、PostgreSQL や MySQL などの互換のマネージド DB なら、pg_dump のような標準の道具で中身を取り出せます。今回も pg_dump で約290KB のファイルに書き出せました。提供側独自の機能を使う部分だけが、移すときの作業になります。

よくあるエラー/つまずき(自前とマネージド)

この節では、自前の PostgreSQL で実際に出た原文と、マネージドにしたときの扱いが分かります。

出た原文 原因 直し方 マネージドでは
FATAL: could not load private key file "server.key": Permission denied鍵の持ち主・権限が違う持ち主を postgres、権限を 600 に証明書は提供側
connection to server at "127.0.0.1", port 54239 failed: Connection refusedDB が止まっている・ポートが違うpg_isready で確かめ、起動か接続先を直す切り替え中に一時的に出ることがある
ERROR: cannot execute INSERT in a read-only transactionレプリカに書き込んだ書き込みは主の接続先へ読み取り用の接続先でも同じ
session is read-onlyread-write 指定でレプリカにつながった主が動いているか確かめる接続先は提供側がそろえる
could not receive data from WAL stream: SSL SYSCALL error: EOF detected主との接続が切れた主の状態を調べ、切り替えるか決める検出と切り替えは提供側
database system was not properly shut down; automatic recovery in progress強制停止・クラッシュのあとの回復(正常な動き)回復を待つ。元の主なら起動させない提供側
エラーなし(2台とも書き込める)元の主を起動し直した(スプリットブレイン)元の主を止め、pg_rewind か作り直し提供側が防ぐ

マネージドの DB では、OS にログインできないため、ログや状態は提供側の画面・コマンド・監視の道具で見ます。「サーバーに入って直す」という手段がない前提で、監視とアラートを先に用意しておきます。

マネージドサービスにするかどうかの判断表

この節では、自分たちの状況でマネージドと自前のどちらが向くかを判断できます。

状況 向く方 理由
夜間・休日の当番を置けないマネージド障害の検出と切り替えを任せられる
DB に詳しい人が少ない・新しいサービスを早く出したいマネージド導入・更新・バックアップを考えずに始められる
止まると困るが、冗長化を作った経験がないマネージドスプリットブレインのような事故を自分で防ぐのは難しい
提供側にない拡張機能・OS の設定が必須自前選べる範囲の外は使えない
規程で、自社の管理する機械にしか置けない自前(または専用の契約)置き場所の条件を満たすため
非常に大きく安定した負荷を長く動かし、運用の人もいる試算して比べる人の時間を含めても自前が安くなる場合がある
学習・検証用の小さな DB自前(手元)仕組みを理解でき、費用もかからない
複数のクラウドや社内機器をまとめて見てほしいMSP への委託製品ごとではなく全体の運用を任せられる

迷ったら、まず「自前で運用するなら誰が何をするか」を、この記事の作業ごとの表に名前を入れて書き出します。名前が入らない行が多いほど、マネージドが向いています。

マネージドサービスでよくある質問

この節では、マネージドサービスについてよく聞かれる質問への答えが分かります。

Q. マネージドサービスとフルマネージドの違いは?
フルマネージドは、任せる範囲がより広い(利用者がほぼ技術的な対応をしなくてよい)ものを指す呼び方です。明確な定義はなく、提供する会社によって使い方が違います。言葉より、何が含まれるかを対応表で確かめるのが確実です。

Q. マネージドサービスにすれば、運用担当は要らなくなりますか?
手を動かす作業は減りますが、権限・ネットワーク・SQL の性能・容量の判断・設定の選択は利用者に残ります。責任共有モデルの節の7項目を受け持つ人は必要です。

Q. マネージドの DB でも、自分でバックアップを取るべきですか?
自動バックアップは保持期間内の時点に戻すためのものです。保持期間より長く残したいデータや、別の環境へ持ち出したいデータは、pg_dump などで別に取っておくと安心です。

Q. マネージドとサーバーレスの違いは?
どちらも運用を任せる形ですが、サーバーレスはインスタンスの大きさを選ばず、使った分だけ課金される形が多いです。マネージドの DB は、大きさを選んで動かし続ける形が中心です。

Q. マネージドサービスは高いですか?
単価は高くなりやすいですが、自前では更新・監視・当番・復元の練習に人の時間がかかります。費用の考え方の節の表で、人の時間を含めて比べます。

Q. メンテナンスで DB は止まりますか?
短い停止や再起動が起きることがあります。RDS は週1回のメンテナンスウィンドウ、Cloud SQL はメンテナンス更新で短時間の停止、Azure はパッチ適用中の再起動があり得ると公式に書かれています。時間帯を選べるので、利用の少ない時間にします。

Q. 別のクラウドへ移せなくなりませんか?
PostgreSQL や MySQL などの互換の製品なら、標準の道具で中身を取り出せます。提供側独自の機能や周辺のサービスに頼った部分は、移すときに作り直しが要ります。

Q. MSP と、クラウドのマネージド製品はどう違いますか?
クラウドのマネージド製品は、その製品の運用を提供側が受け持ちます。MSP は、複数の製品や社内の機器をまとめて、契約した範囲で運用する事業者です。

Q. 学習するなら、自前とマネージドのどちらがよいですか?
仕組みを知るには、手元で自前の DB を動かすのが近道です。この記事の手順のように、時点復元やフェイルオーバーを一度自分で行うと、マネージドが何を代わりにしているかが分かります。

Q. 自分の使っている DB がマネージドかどうか、どう確かめますか?
接続先のホスト名が提供側のドメインになっているか、作成した画面・コマンドがクラウドの DB 用のものかで分かります。SQL からは select version(); で版を、select pg_is_in_recovery(); で主かレプリカかを確かめられます。

まとめ

この節では、記事の要点を5つで振り返れます。

  • マネージドサービスとは、導入・更新・バックアップ・障害対応などの運用を提供側が引き受けるサービス。運用代行(MSP)を指す場面もある。
  • 自前の PostgreSQL では、どの作業も機械の時間は1秒未満。時間がかかるのは、設定を決めること・失敗の切り分け・見張りと当番。
  • 時点復元は WAL が1つも欠けないことが条件で、フェイルオーバーでは元の主を起動し直すとスプリットブレインがエラーなしで起きた。
  • マネージドの DB では、OS・DB の更新、自動バックアップ、待機系と切り替えを提供側が持つ。データ・権限・ネットワーク・SQL の性能・設定の選択は利用者に残る(責任共有モデル)。
  • 費用は「サーバー代+人の時間+当番」で比べ、当番を置けない・冗長化の経験が少ないならマネージド、特殊な設定が必須なら自前を選ぶ。

参考・出典

確認日はいずれも 2026年10月29日です。料金と機能は変わることがあるため、各社の公式ページで最新の内容を確かめてから判断します。

  • Amazon Web Services「What is Amazon Relational Database Service (Amazon RDS)?」(責任分担の表・shared responsibility model):https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html
  • Amazon Web Services「Introduction to backups」:https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithAutomatedBackups.html
  • Amazon Web Services「Maintaining a DB instance」:https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.Maintenance.html
  • Amazon Web Services「Amazon RDS for PostgreSQL Pricing」:https://aws.amazon.com/rds/postgresql/pricing/
  • Amazon Web Services「Shared Responsibility Model」:https://aws.amazon.com/compliance/shared-responsibility-model/
  • Google Cloud「Cloud SQL overview|Cloud SQL for PostgreSQL」:https://docs.cloud.google.com/sql/docs/postgres/introduction
  • Google Cloud「Cloud SQL pricing」:https://cloud.google.com/sql/pricing
  • Microsoft Learn「What is Azure Database for PostgreSQL flexible server?」:https://learn.microsoft.com/en-us/azure/postgresql/flexible-server/overview
  • PostgreSQL Global Development Group「PostgreSQL 16 Documentation」(Continuous Archiving and Point-in-Time Recovery・High Availability・pg_basebackup・pg_ctl):https://www.postgresql.org/docs/16/

本記事の内容は、ご自由にお使いください。
ご利用の際は、出典として本ページへのリンクを記載いただけますようお願いします。

(記載例)出典:株式会社RJC「マネージドサービスとは?自前運用との違いをPostgreSQLで実測」

株式会社RJC ― SI事業・SES事業・AI駆動開発。RJCは一緒に成長を楽しめる会社です。

WE ARE HIRING

RJCで一緒に開発しながら、
成長を楽しみませんか?

RJCは、Web・モバイル・AIを活用した開発プロジェクトで、テックリードやPM・PMOも活躍するシステム開発会社です。会社を知る、待遇を確かめる、話を聞いてみる。気になるところ見てみてください!

  • 127日年間休日
  • 12時間平均残業時間
  • 毎日ガチャ遊びココロも大切にする福利厚生。アマギフなどの賞品ラインナップ!

ほかにも、チケットレストラン、書籍読み放題、2年ごとの慰労報奨(休暇 or 金一封)、11期連続の黒字決算。

ABOUT RJC RJCがどんな会社か知る 考え方、研修、働き方、福利厚生、社員の前職まで。RJCのことが丸わかり! RJC丸わかりページへ JOB DESCRIPTION 仕事内容・待遇を見てみる 仕事内容、給与・待遇、選考の流れ。経験者も未経験も!応募前に知りたいこと、まとめました! 募集要項を見る ENTRY エントリーする エントリーは1〜2分・履歴書不要です。まずは話を聞いてみたい、という方でも歓迎です! エントリーフォームへ

成長のヒミツ、 ぜんぶ丸わかり