業務でサーバー構築をする際、これまでは物理サーバーが主でしたが、最近はさくらのクラウドに触れています。そんな中、OSイメージの選択に迷うことがありました。
さくらのクラウドではブラウザでサーバー構成を選択できるパネルが提供されています。
このパネルからサーバーを作成しようとすると、以下のような感じで、同じOSでもcloudimgと何も書かれていないイメージの2種類が表示されました。

業務では何も書かれていないイメージを利用しましたが、今回はこのcloudimgを使ってサーバーを構築してみたいと思います。
目的としてはとにかくcloudimg,cloud-initを使ってみること、です。説明としては不足している部分もありますので、詳しい内容はリンク先を参照頂くことをお勧めいたします。
cloudimgって?
cloudimgについて、さくらのクラウドで提供されているcloud-init機能がついたイメージになります。cloud-initではイメージ起動前に構成情報を指定することで、その情報を元に初期設定を行うことができます。さくらのクラウド cloud-init
YAML形式で記述しますが、cloud-initのパラメータに合わせる必要があります。
つくりかた
さて、実際にcloudimgからサーバー構築していきましょう。
今回はnginxをインストールし、起動までの設定を入れてみます。
さくらのクラウドでのサーバー追加
さくらのクラウドのパネル上で、作成したいサーバーのスペックなどを選択していきます。
今回作成したスペックは以下のようになります。
サーバプラン
CPU: 2コア
メモリ: 2GB
ディスク
新規ディスクから作成していきます。
ディスクプラン: SSD
ディスクソース: アーカイブ
アーカイブ選択: Debina 12.7.0 64bit (cloudimg)
cloud-init設定
さくらのクラウドではcloud-init設定用の項目が用意されています。

オプションにホスト名は適当なものを入れておきましょう。
追加ユーザデータ (cloud-init記載内容)
リファレンスを参考にしながら、Nginxを起動させてindex.htmlが表示されるようにしてみます。
packages:
- nginx
runcmd:
- systemctl enable nginx
- systemctl start nginx
- echo "Hello world!" > /var/www/html/index.html
nginxパッケージの取得、サービスの起動とindex.htmlファイルへの書き込みを行うように指定します。
監視やサーバーの情報、オプションについてはお好みで設定し、作成ボタンをクリックします。
起動が確認できれば、サーバーにログインします。
起動後チェック
cloud-initで指定した通り、nginxが起動しているか見てみましょう。
$ systemctl status nginx
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; preset: enabled)
Active: active (running) since Fri 2026-04-17 14:34:16 JST; 3min 37s ago
Active: active (running) となっているので、起動していることがわかります。
index.htmlファイルの中身も見てみると、指定通り書き込まれています。
$ cat /var/www/html/index.html
Hello world!
ブラウザで表示してみると、index.htmlファイルの中身が表示され、指定したように挙動することがわかります。

まとめ
さくらのクラウドでcloudimgのイメージから起動してみました。
今回はDebianを使いましたが、設定内容が決まっていればRedHat系のOSでもcloud-initに同じような記述をすることで、同様のサーバーを作成することもできそうです。
次回以降はもう少し踏み込んだ設定などを試していきたいと思います。

