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
130
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
さくらのクラウド AppRun と GitHub Actions でお手軽サーバレス構築
さくらのクラウドの新しいアプリケーション実行基盤である「AppRun(ベータ版)」を使用して、サーバレスアプリケーションを構築する方法を解説する
cyokozai
October 27, 2025
More Decks by cyokozai
See All by cyokozai
シェーダーもGoで書く! Ebitengineで作る リアルタイムGPUシェーダーエディタ
yusuke427
0
100
若手_学生エンジニアがテックカンファレンスに参加すべき5つの理由.pdf
yusuke427
0
36
10Gb ルータを作るための下準備
yusuke427
0
29
アウトプットの質を高めるために僕はLTをやめた
yusuke427
0
30
年末なのでオンプレ Kubernetes クラスタをアップグレードしよう
yusuke427
0
22
塩漬けになったVM それ、Kubernetesで動かせますよ
yusuke427
2
240
KubeVirt の Live Migration をやってみる | Try KubeVirt's Live Migration on Nekko Cloud
yusuke427
2
730
学生プライベートクラウドはKubeVirt の夢を見るか?
yusuke427
1
190
SREについて学ぶスリーシェイクのインターン
yusuke427
1
330
Other Decks in Technology
See All in Technology
Claude Code並行開発環境の ムダ‧ムラ‧ムリを見直した話
muranakaaa
0
360
AIエージェントの知識表現と推論に なぜグラフが使われるのか - 記号的AIの復権とニューラルAIとの統合
yohei1126
1
240
13年運用タイトルのサーバーサイドが辿り着いた現在地 ― モンスターストライクにおける技術・組織・AI活用から得た知見
mixi_engineers
PRO
1
350
「待ち時間」の消滅と「自我消耗」の加速:生成AI時代のエンジニアを救うメンタル・リソース管理
poropinai1966
0
370
コンポーネント名には何を含めるべきなのか? / what-should-be-included-in-component-names
airrnot1106
0
200
DevOps Agentで運用判断をチーム資産にする~Agent InstructionsとAgent Skillを継続的に育てる~
fujioka6789
0
180
A Bag-of-Documents Model for Query Specificity
dtunkelang
0
180
人手不足への挑戦:車両保全を支えるIoTとクラウド内製化の道【SORACOM Discovery 2026】
soracom
PRO
0
170
NYC Summit 2026 におけるAmazon Bedrock AgentCore のアップデート
ren8k
3
290
PLaMo 3.0 Primeの構造化出力サポート
pfn
PRO
0
140
LangfuseによるLLMOps基盤の構築と活用事例
zozotech
PRO
1
200
AI ネイティブな組織に Gemini Enterprise Agent Platform がなぜ必要なのか
asei
0
120
Featured
See All Featured
Heart Work Chapter 1 - Part 1
lfama
PRO
8
36k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.5k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
4.2k
Code Reviewing Like a Champion
maltzj
528
40k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
390
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
980
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
65
57k
New Earth Scene 8
popppiees
3
2.4k
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 公開中
⇨