🐷

さくらクラウドのAppRunを使ってみた

に公開

AppRunとは

さくらクラウドのAppRunはコンテナで管理されたアプリケーションをデプロイすることができます。フルマネージドなサービスとなっていてトラフィックに応じた自動スケーリングやバージョン管理、段階的なデプロイやロールバックといった本番環境に必要な機能が提供されています。

なお現在(2025/09/07)はβ版として提供されているため、無料ですがSLAの対象外となるので利用する際には注意してください。(年内には正式サービス提供を開始するようです。)

試しにデプロイやってみる

公式のクイックスタートに沿って進めていきます。

https://manual.sakura.ad.jp/cloud/apprun/getting_started.html

まずはデプロイするコンテナアプリケーションを作成していきます。

ディレクトリ作成

mkdir my-app
cd my-app

アプリケーション側のファイル作成

今回はexpressを使用して、8080番ポートにリクエストが来たら 'Hello from AppRun!'と返すような簡単なWebサーバーを作ります。

package.json

{
  "name": "my-app",
  "version": "1.0.0",
  "dependencies": {
    "express": "^4.18.2"
  }
}

app.js

const express = require('express');
const app = express();

app.get('/', (req, res) => {
  res.send('Hello from AppRun!');
});

app.listen(8080, () => {
  console.log('Server is running on port 8080');
});

Dockerfile作成

イメージを作成するためのDockerfileを定義します

FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 8080
CMD ["node", "app.js"]

ここからはさくらクラウド側の準備をしていきます。

まずはさくらクラウドにログインします。

https://secure.sakura.ad.jp/cloud/#/login

コンテナレジストリ作成

Dockerイメージをpushする先のコンテナレジストリを作成します。

AppRunサイドバーから「 コンテナレジストリ 」を選択し、コンテナレジストリ名と公開設定(非公開)を入力して作成します

スクリーンショット 2025-09-07 15.45.24.png

レジストリユーザーを作成

認証情報を持ったレジストリユーザーを作成します。これはコンテナレジストリへセキュアにアクセスするためです。

コンテナレジストリを作成した後「ユーザー」タブをクリックして「追加」をクリックし、ユーザー名(任意)、パスワード(任意)、ユーザー権限設定(All)を設定します。

コンテナイメージのビルドとプッシュ

プロジェクトのディレクトリでmy-appというタグ名をつけてイメージをビルドします

docker build --platform linux/amd64 -t my-app .

次にレジストリにpushするためログインします。
この際、先ほど作成したレジストリユーザーのユーザー名とパスワードを入力します。

docker login my-app.sakuracr.jp

続いて先ほどビルドしたmy-appイメージにmy-app.sakuracr.jp/my-app:latestでタグをつけます。

docker tag my-app my-app.sakuracr.jp/my-app:latest

最後に先ほど作成したイメージをコンテナレジストリにpushします。

docker push my-app.sakuracr.jp/my-app:latest

アプリケーションのデプロイ

最後にアプリケーションをデプロイします。

AppRunへアクセスして「アプリケーションを作成」を選択します。

アプリケーション設定の項目を入力します。

  • アプリケーション名に任意の名前を入力(例:my-app)
  • ポート設定:8080
  • 自動スケーリング:1(デフォルト)
  • リクエスト:300 Seconds(デフォルト)

次にコンテナの設定項目を入力します。

  • コンテナイメージ:イメージ名を入力(例:my-app.sakuracr.jp/my-app:latest)
  • ユーザー名:レジストリに設定したユーザー名を入力
  • パスワード:レジストリに設定したパスワードを入力
  • メモリー:512MiB(デフォルト)
  • vCPU:1(デフォルト)

パケットフィルターやログ、メトリクスの設定については任意で変更してください。

image.png

作成するとデプロイされ、正常にデプロイされるとこのような画面が表示されます。

スクリーンショット 2025-09-07 16.55.35.png

公開URLを踏むと以下のような画面が表示されることを確認できました!
image.png

最後に

簡単にコンテナアプリケーションのデプロイまでできました!

ただβ版だとアプリケーションのログを確認することができないので、何か問題が起きた時手探りでの問題解決になるのが不便に感じました。

https://manual.sakura.ad.jp/cloud/apprun/faq.html#id7

Discussion