はじめに
さくらインターネット株式会社の「さくらのクラウド」では、
続々とマネージドサービスがリリースされています。
その中でもコンテナ実行サービスであるAppRunを試してみました。
※本記事の文章には生成AIを一切使用しておらず、すべて自分の言葉で表現しています
全体図
手順
ソースチェックアウト
今回のソースはこちらにあります。事前にチェックアウトしておいて下さい。
https://github.com/HTDevelop/sakura_apprun
Dockerイメージ作成
cd sakura_apprun/app
# ビルド
docker build . -t sakura_apprun:latest
# 動作確認
docker run -p 5000:5000 sakura_apprun:latest
# 別窓でlocalhost:5000にアクセスしてHello Worldが表示されればOK
コンテナレジストリにイメージをPush
コンテナレジストリ作成
コンテナレジストリで追加を押下

名前とコンテナレジストリ名を任意の文字列を入れて作成する。
公開設定は非公開でOK。

ユーザ作成
イメージPush
マニュアルページがありますので、こちらを見ながら進めていきます。
docker tag sakura_apprun:latest <レジストリ名>.sakuracr.jp/sakura_apprun:latest
docker login <レジストリ名>.sakuracr.jp
# Username: [ユーザ名] ← 先ほど作成したユーザ名
# Password: [パスワード] ← 先ほど作成したユーザのパスワード
# Login Succeeded
docker push <レジストリ名>.sakuracr.jp/sakura_apprun:latest
AppRunへデプロイ
プロジェクト作成
AppRunコントロールパネルでアプリケーション作成を押下

以下のように入力します。
ポート設定:5000(gunicornのため)
コンテナイメージ:<先ほど作成したコンテナ名>.sakuracr.jp/<コンテナイメージ名>:latest

ユーザ名とパスワードはコンテナレジストリのユーザ情報を使用してください。

最近、ログとメトリクスがサポートされましたので、せっかくなのでONにします。

動作確認
しばらく待つと「正常」と表示されるので、発行されたURLにアクセスします。

メトリクスタブを見ると、CPU使用率はレイテンシーなどが見れます。

ログタブを見ると、コンテナ内のログが記録されていることがわかります。

もしもコンテナが起動しなかったり、ステータスが正常になっていなかったりしたらこのログを見ると原因特定が出来そうです。
感想
かなりお手軽に構築できました!
最小サービス数は今のところ0固定のようで、一定時間たつと内部のインスタンスが終了する挙動となっておりますので、アクセス数の低いサイトですと毎回起動レイテンシーが発生します。
1以上にできれば常時稼働が可能になりますので、Webサービスとしても十分商用利用可能ですね。
また、独自ドメインも非対応とのことで、
https://app-XXXXXXXXXXXXXXXXXXXXXXX.ingress.apprun.sakura.ne.jpでしかアクセスできませんが、こちらも今後に期待です!
とはいえβ版でここまでお手軽かつ安定しているのは非常に素晴らしいと思います。国産クラウドどんどん盛り上がってほしいですね。
(余談)
さくらのクラウド全般に言えることですが、AWSやGCPのように各サービスにアイコンがあると、
全体図書くときに便利なので是非欲しいです!
※AppRunには以下のようなアイコンがあるようです

以上



