Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
さくらのクラウド AppRun と GitHub Actions でお手軽サーバレス構築
Search
cyokozai
October 27, 2025
Technology
1
84
さくらのクラウド AppRun と GitHub Actions でお手軽サーバレス構築
さくらのクラウドの新しいアプリケーション実行基盤である「AppRun(ベータ版)」を使用して、サーバレスアプリケーションを構築する方法を解説する
cyokozai
October 27, 2025
Tweet
Share
More Decks by cyokozai
See All by cyokozai
塩漬けになったVM それ、Kubernetesで動かせますよ
yusuke427
1
180
KubeVirt の Live Migration をやってみる | Try KubeVirt's Live Migration on Nekko Cloud
yusuke427
1
490
学生プライベートクラウドはKubeVirt の夢を見るか?
yusuke427
1
91
SREについて学ぶスリーシェイクのインターン
yusuke427
1
76
学生サークルで開発するVMプロビジョニングツール
yusuke427
1
82
Juliaを書いていて「便利だな〜」と 思ってたらスライド出来上がってた
yusuke427
1
57
あした話したくなるSREとPlatform Engineering
yusuke427
2
130
Terraform × cloud-init で VM のセットアップをいい感じにする話
yusuke427
1
2.2k
Other Decks in Technology
See All in Technology
知覚とデザイン
rinchoku
1
570
入院医療費算定業務をAIで支援する:包括医療費支払い制度とDPCコーディング (公開版)
hagino3000
0
110
可観測性は開発環境から、開発環境にもオブザーバビリティ導入のススメ
layerx
PRO
0
150
事業開発におけるDify活用事例
kentarofujii
5
1.4k
Okta Identity Governanceで実現する最小権限の原則 / Implementing the Principle of Least Privilege with Okta Identity Governance
tatsumin39
0
170
AWS DMS で SQL Server を移行してみた/aws-dms-sql-server-migration
emiki
0
220
OSSで50の競合と戦うためにやったこと
yamadashy
3
970
MCP ✖️ Apps SDKを触ってみた
hisuzuya
0
360
AIエージェント入門 〜基礎からMCP・A2Aまで〜
shukob
1
170
様々なファイルシステム
sat
PRO
0
240
ブラウザのAPIで Nintendo Switch用の特殊なゲーム用コントローラーを体験型コンテンツに / IoTLT @ストラタシス・ジャパン
you
PRO
0
120
Building a cloud native business on open source
lizrice
0
180
Featured
See All Featured
We Have a Design System, Now What?
morganepeng
53
7.8k
Docker and Python
trallard
46
3.6k
Visualization
eitanlees
149
16k
How to train your dragon (web standard)
notwaldorf
97
6.3k
BBQ
matthewcrist
89
9.9k
Automating Front-end Workflow
addyosmani
1371
200k
Side Projects
sachag
455
43k
A designer walks into a library…
pauljervisheath
209
24k
Producing Creativity
orderedlist
PRO
347
40k
The Language of Interfaces
destraynor
162
25k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.2k
GraphQLとの向き合い方2022年版
quramy
49
14k
Transcript
さくらのクラウド AppRun と GitHub Actions で お手軽サーバレス構築 井上 裕介
井上 裕介 a.k.a cyokozai 千葉工業大学大学院 情報科学研究科 情報工学専攻 修士1年 ❏ ネットワークコンテンツ研究会
Nekko Cloud Team ❏ 株式会社スリーシェイク sreake事業部 学生インターン
1. さくらのクラウド AppRun 2. 手動でサーバレスへデプロイ 3. GitHub Actions による継続デプロイ 4.
感想 アジェンダ
さくらのクラウド AppRun
AppRun β https://cloud.sakura.ad.jp/lp/apprun/ • Scale to Zero • マネージドサービス •
カナリアリリース
手動でサーバレスへ デプロイ
今回デプロイしたアプリケーション https://github.com/yannh/kubeconform Kubeconform • マニフェストのバリデーション を行ってくれるCLIツール • 各CRDに対応可能 • Kubernetesのスキーマ情報を
元に型チェックなどを行う
• YAMLを貼り付け/選択 • 「判定を実行」でPOST • 結果判定を表示 ◦ true ◦ error
手動デプロイの手順 1. コンテナレジストリ作成 2. 使用するイメージをCRへ Push 3. アプリを作成 (GUI操作) 4.
デプロイ完了
ログイン → AppRun β
新たにコンテナレジストリを作成
None
各種設定とユーザ登録
コンテナレジストリにイメージをプッシュ # CRにログイン docker login kubeconformserver.sakuracr.jp # イメージをbuildする docker build
-f Dockerfile -t kubeconformserver.sakuracr.jp/kubeconformserver:latest . # sakuracr.jpにpushする docker push kubeconformserver.sakuracr.jp/kubeconformserver:latest
Q. DockerHubを直接使いたいんだけど....? • AppRun βで利用できるコンテナレジストリはさくらのクラウドが 提供しているコンテナレジストリ (OCI準拠) のみ • DockerHubやGitHub
Container Registoryのイメージを使用する場合は、 一度ローカルにPullした上でさくらのクラウドにPushする必要がある
アプリケーションの作成
各種設定 https://manual.sakura.ad.jp/cloud/apprun/glossary.html
各種設定 さくらのコンテナ レジストリからPull 認証情報の設定 vCPU使用量の上限 (0.1~1 コア) メモリー使用量の上限 (256MiB~2GiB) アプリケーション名
ポート番号 ヘルスチェックの設定 (10秒ごとの監視) 環境変数の定義 インスタンス数の 自動調整範囲 同時リクエスト数 リクエストタイムアウト https://manual.sakura.ad.jp/cloud/apprun/glossary.html
デプロイ完了🙌
• ログ • メトリクス ◦ 平均リクエスト数 ◦ CPU ◦ メモリ
簡単な監視も可能
もっとCloud Nativeで ラクしたい!🥺
GitHub Actions による 継続デプロイ
• GoアプリケーションをさくらのAppRunにデプロイする フローを自動化するためのComposite Actions → Dockerfileがなくてもデプロイ可能 • 登録されたオブジェクトストレージのバケットに SQLite レプリカの作成
→ データ永続化 GitHub Actions: sacloud_apprun_actions
自動デプロイの処理の流れ
ワークフロー name: Kubeconformserver - Sacloud AppRun Actions on: push: branches:
- main workflow_dispatch: jobs: deploy: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Deployment id: deploy uses: ippanpeople/
[email protected]
with: use-repository-dockerfile: true app-dir: ./src sakura-api-key: ${{ secrets.SAKURA_API_KEY }} sakura-api-secret: ${{ secrets.SAKURA_API_SECRET }} container-registry: ${{ secrets.REGISTRY }} container-registry-user: ${{ secrets.REGISTRY_USER }} container-registry-password: ${{ secrets.REGISTRY_PASSWORD }} port: '8080'
Name Value REGISTRY コンテナレジストリの URL REGISTRY_USER コンテナレジストリのユーザー名 REGISTRY_PASSWORD コンテナレジストリのパスワード SAKURA_API_KEY
さくらの API キー SAKURA_API_SECRET さくらの API シークレット STORAGE_BUCKET_NAME オブジェクトストレージのバケット名 STORAGE_ACCESS_KEY オブジェクトストレージのアクセスキー STORAGE_SECRET_KEY KEY オブジェクトストレージのシークレットキー GitHubにシークレットを登録 リポジトリのSettings > Secrets and variablesから各種設定を入力
デプロイ完了 (2回目) 🙌
バージョンごとに荷重ルーティングが可能
実践 (30秒くらい時間使う)
感想
良かった点 • シンプルな設定項目 • GitHub Actionsを使用したCI/CDの構築 • Terraform使用可能 • FaaSとして簡易的なジョブを投げるのにはちょうど良い
改善してほしい点 • さくらのコンテナレジストリ (sakuracr.jp) 以外は不可 • 非httpエンドポイント, 複数ポート非対応 • 監視項目をカスタム
• Web UI の細かな修正
Thank you for yourkind attention! kubeconfirmserver リポジトリ公開中 ⇨ kubeconfirmserver 公開中
⇨