DELOGs
[サーバ構築編#2] さくらクラウドでPostgreSQLのアプライアンスDBを作る

サーバ構築編#2
さくらクラウドでPostgreSQLのアプライアンスDBを作る

運用が楽々なアプライアンス「データベース」でPostgreSQL環境を作成

初回公開日

最終更新日

サーバ構築編第2回は、DB環境の構築です。「さくらのクラウド」で アプライアンス「データベース」 を利用して、「PostgreSQL」環境を作成する手順の記録です。
事前に少し説明します。
「アプライアンス」とは?
「さくらのクラウド」ではサーバ不要、ソフトウェアのインストール不要で利用できるサービスがあります。それが「アプライアンス」です。そのサービスの中にデータベースもあります。
これは私のような初心者にはとてもありがたく、少なくとも「アプライアンス」回りについては、バックアップやOSやミドルウェアのパッチ当て作業から解放されるからです。
「アプライアンス」で利用できるデータベースは「PostgreSQL」から「MariaDB」のどちらかです。残念なことに「MySQL」が選択できません。「MySQL」がなくても「MariaDB」があるならそれでいいかな? という方も多いとは思いますが、私は少し前にアプライアンスDBで「MariaDB」を利用していて、DBのディスク容量をROCKSDBから出力されるログに圧迫されるという問題に直面したことがあり、以来「PostgreSQL」を利用するようにしました。 ただ、ROCKSDB関する問題はさくらインターネットのサポート曰く、「他ではこんな問題は起きていません」とのことでしたので、レアケースを私が引き当ててしまったようです。
前置きはこの辺にして、早速、アプライアンスDBを作成していきます。

1.ローカルスイッチの作成

事前準備としてDBの接続先になるローカルスイッチを作成していきます。 サーバ構築編第1回でも記述したのですが、選択したゾーンによってスイッチの作成可能数に上限があります。
重要かも
ゾーン選択時に料金以外にも重要な点があります。それは、ゾーンによっては、「スイッチ」利用台数が1個のみ制限されることです。2025年5月21日現在では、「東京第2」ゾーンだけスイッチが20個まで作成可能で、他のゾーンは1個だけしか作成できません。複数のスイッチがマストで必要な場合は気をつけてゾーンを選択してください。
私が選択したゾーンでは1個しかスイッチは作成できません。今の構成では1個で十分なので良いのですが、将来的にはまた複数のスイッチが作成できることを願いたいです。
まず、管理画面の左サイドメニューの「ネットワーク」配下の「スイッチ」をクリックします。
スイッチ一覧
スイッチ一覧が表示されますので、右上にある「追加」ボタンをクリックして追加画面へ遷移します。
スイッチ追加
必須項目は「ルータ」欄だけです。 直接インターネットへ繋げたくないので「いいえ」を選択します。 最後に「作成」ボタンをクリックすると、これだけでスイッチの作成は完了です。 ちなみに「名前」欄や「アイコン」欄は後からでも変更可能です。
下記の内容でローカルスイッチを作成しました。
名前:LocalSwitch
ルータ:いいえ

2.アプライアンスDBでPostgreSQLインスタンス作成

データベースの新規追加

管理画面の左サイドメニューの「アプライアンス」配下の「データベース」をクリックします。
データベース一覧
データベース一覧が表示されますので、右上にある「追加」ボタンをクリックして追加画面へ遷移します。
データベース追加
まず、冗長化オプションという便利なものがあります。 これを選択するだけでDBを冗長化してくれます。ただ、ディスクサイズが90GB以上を選択する必要があります。料金もそれなりに高額になってきます。少し前はPostgreSQLの場合だけ選択可能でしたが、2025年3月6日現在ではMariaDBでも冗長化オプションが選択できるようになっていました。
ただ、冗長化オプションを選択した場合、バックアップ用の領域を別途用意しなければなりません。例えばNFS(Network File System)アプライアンスなどを利用することになります。当然料金も別途掛かります。冗長化しているので、バックアップは不要という選択肢もあるかもしれませんが。
逆に冗長化オプションを使用しない場合は、バックアップサービスが無料でついてきます。私はとりあえず安価に始めたいので、冗長化オプションをスルーしました。
レプリケーション欄は「有効にする」を選択すると、上図のように「モード」の選択ができるようになります。 マスター&スレーブ構成で冗長化していく予定の場合は、これを選択しておきます。 今回は、DBも一台から始めますが、近い将来にマスター&スレーブ構成で冗長化する構想ではあるので、「有効にする」を選択して、モードは「マスター」にしました。
データベースエンジンは「PostgreSQL」、バージョンは「13」のみしか選べませんでした。
ディスクサイズは一旦、最小の「10GB」を選択して、早いうちにスケールアップを試してみたいと考えています。
暗号化は、まだベータ版なので、スルーしました。
データベース追加の続き
続いて、デフォルトユーザ名パスワードを決めて、メモ等で控えておきます。これはDB接続した際のデフォルユーザです。
レプリカユーザパスワード欄は、今回のように「レプリケーション」を有効にした場合に表示されます。これもメモ等で控えておきます。
接続先スイッチは「1.ローカルスイッチの作成」で作成したものを選択。
ポート番号は任意です。何も指定しなければ、PostgreSQLの場合は5432になります。
IPv4アドレス #1はこのデータベースに割り当てるローカルIPアドレスを入力します。192.168.0.XXXという感じで決めます。ローカルネットワークアドレスが192.168.0.0/24(デフォルト)なら192.168.0.1 〜 192.168.0.254が割り当て可能な範囲となります。デフォルトゲートウェイのIPは除いて考えてください。
ネットマスクはデフォルトは24ですが、他を選択することも可能です。
ゲートウェイは接続先のスイッチのIPアドレスになります。通常は192.168.0.1。現状のように、まだローカルスイッチに何も紐づいていない場合、ここを192.168.1.1とするとローカルネットワークは192.168.1.0/24となります。
送信元ネットワークで接続制限をかけることも可能です。一旦、空白のままにしても大丈夫です。
データベース追加のさらに続き
WEB UIはWEB UIの管理ツールがインストールされます。あると便利ではありますが、一応、セキュリティを考えて今回は「いいえ」にします。
定期バックアップ、これは大変ありがたいサービスです。DBのディスク領域と別領域にバックアップを作成してくれます。今のところ無料で。したがって、10GBのディスク容量はフルにDBの容量として利用できます。「バックアップをする」を迷わず選択。
定期バックアップ間隔は「毎日」を選択。
実行する時間帯はお好きな時間を選択。
名前説明タグアイコンは任意で、後からでも変更できます。

入力内容のまとめ

入力項目が多いので、まとめます。今回の入力内容は下記のようにしました。
  • 冗長化:選択しない
  • レプリケーション:有効にする
  • モード:マスター
  • クローン元データベース:なし
  • データベースエンジン:PostgreSQL
  • データベースバージョン:13
  • ディスクサイズ:10GB
  • 暗号化:選択しない
  • デフォルトユーザ名:内緒
  • パスワード:内緒
  • レプリカユーザパスワード:内緒
  • 接続先スイッチ:LocalSwitch
  • ポート番号:例)5432
  • ポート番号:例)192.168.0.11
  • ネットマスク:24
  • ゲートウェイ:例)192.168.0.1
  • 送信元ネットワーク:入力しない
  • WEB UI:いいえ
  • 定期バックアップ:バックアップする
  • 定期バックアップ間隔:毎日
  • 実行する時間帯:3:00
  • 名前:内緒
  • 説明:入力なし
  • タグ:入力なし
  • アイコン:SQLアイコン
以上の入力が完了したら、画面下部の「作成」ボタンをクリックして、データベースの作成が完了します。 アプライアンスデータベースの作成は、少し時間がかかることがあります。落ち着いてしばらく待ちましょう。

3.Webサーバとローカルスイッチ+DBの接続

ここまで「Webサーバ」と「アプライアンスDB」の作成ができました。 しかし、まだ下記の図のように「Webサーバ」と「アプライアンスDB」は「ローカルスイッチ」を挟んで分断されています。
まだつながっていないマップ
これは「Webサーバ」と「ローカルスイッチ」を接続することで解消されます。

Webサーバインスタンスをシャットダウンする

ローカルスイッチとの接続は一度Webサーバをシャットダウンする必要があります。
Webサーバのシャットダウン
上図のように左サイドメニューの「サーバ」からサーバ一覧を表示して、作成したWebサーバを選択して、「電源操作」のサブメニューから「シャットダウン」を選択して、Webサーバをシャットダウンします。 「電源操作」サブメニューから「シャットダウン」を選択したあとにさらに右上に「シャットダウン」ボタンが表示されますので、これをクリックするとシャットダウンが実行されます。

WebサーバのNICを追加する

Webサーバの詳細へ
シャットダウンが終わった状態で上図のように、もう一度Webサーバを選択して、右上のメニューから「詳細」をクリックします。
WebサーバのNIC
詳細画面が開いたら、「NIC」タブを開きます。NIC(Network Interface Card)とはネットワークに接続するためのアダプターのことです。 現状では、インターネット接続のNICのみになっています。スイッチに接続するために、「追加」ボタンでNICを追加します。
WebサーバのNIC詳細
NICの追加が完了すると「未接続」というNICが一覧へ表示されます。この「未接続」行の末尾に「▼」があります。これをクリックするとサブメニューが表示されます。 このサブメニューから「接続を編集」を選択します。
WebサーバのNIC更新
編集ダイアログが表示されるので「NIC」欄で「スイッチに接続」を選択。「スイッチに接続」欄で作成済みのローカルスイッチを選んで、「更新」ボタンで更新します。

WebサーバのローカルIPの設定を行う

スイッチへの接続設定が完了したら、WebサーバのローカルIPを決めます。
WebサーバのローカルIP
追加した「LocalSwitch」の末尾の「▼」を再度クリックするとサブメニューに「IPv4アドレスを編集」という項目が表示されるようになっています。 これをクリックして、表示されるダイアログに192.168.0.10などのローカルIPを入力します。「LocalSwitch」行の「ネットワーク」欄にあるアドレスで割り当て可能なIPアドレスの範囲が確認できます。 192.168.0.0/24なら192.168.0.1 〜 192.168.0.254が割り当て可能な範囲となります。デフォルトゲートウェイとデータベースに割り当てたIPは除いて考えてください。

ついでにWebサーバのインターネット接続のNICに逆引きホストの設定を行う

これは、もしWebサーバのドメインが決まっていて、DNSの設定が完了していればの話になります。まだドメインが未定の場合は、ドメインが確定した後に作業してください。 この作業もWebサーバをシャットダウンしている最中に行う作業なので、この段階でやってしまうのが良いと思います。
WebサーバのNIC更新
今度は「共有セグメント インターネット」行の末尾の「▼」をクリックして、サブメニューを表示します。すると「ホスト名逆引きを編集」という項目があります。これを選択して、ドメインを入力して完了です。

Webサーバを起動する

先ほど、Webサーバをシャットダウンした「電源操作」メニューから「起動」を選んで実行するとWEBサーバが起動します。

4.まとめ

サーバ構成の完了
上図のようにサーバ構成が完了しました。 あとは、SSHで接続して、細かな設定やミドルウェアのインストールなどを進めていきます。ここからは「さくらのクラウド」に依存しない話になっていきます。
サーバ構築編の第1回と今回とで設定した下記の情報は第3回以降で必要になってくるので、しっかりとまとめておいてください。
  • 秘密鍵のパスフレーズ
  • WebサーバのグローバルIP、ローカルIP
  • DBサーバのローカルIP
  • 各種ユーザ名・パスワード(さくらのクラウドで作成したUbuntuサーバのデフォルトユーザはubuntuになります)
続きはこちら...
前回の確認はこちら...
この記事の執筆・編集担当
DE

松本 孝太郎

DELOGs編集部/中年新米プログラマー

ここ数年はReact&MUIのフロントエンドエンジニアって感じでしたが、Next.jsを学んで少しずつできることが広がりつつあります。その実践記録をできるだけ共有していければと思っています。