Slide 1

Slide 1 text

コンテナ実行基盤を構成するOSS Open Source Conference 2026 Kyoto さくらインターネット株式会社 益邑遼 1

Slide 2

Slide 2 text

自己紹介 益邑遼(マスムラリョウ) さくらインターネット 2024/04/01から現職 サービス統括本部 サービス開発部 アプリケーション実行基盤 AppRun専有型の開発・運用を担当 京都在住、音楽が好きです 2

Slide 3

Slide 3 text

今日の内容 AppRun専有型の概要 AppRun専有型の機能 デモ AppRun専有型の仕組み AppRun専有型を構成するOSS まとめ 3

Slide 4

Slide 4 text

さくらのクラウドとは さくらインターネットが提供する国産クラウドコンピューティング サービス サーバー、スイッチ、ロードバランサ、ストレージなどをAPI/UIで 利用可能 ガバメントクラウドに採択 4

Slide 5

Slide 5 text

AppRunとは さくらのクラウドが提供するコンテナ実行基盤 インフラ管理が不要 オートスケーリング機能 ログ、メトリクス基盤との連携 https://cloud.sakura.ad.jp/lp/apprun/ 5

Slide 6

Slide 6 text

AppRunとは 共用型/専有型の2サービスが提供されている 項目 AppRun共用型 AppRun専有型 複数ユーザーで共有するマルチテ ユーザー専用のシングルテナント基 実行環境 ナント基盤 盤 プライベートネットワ 非対応 対応(スイッチやSEG経由で接続可 ーク接続 能) 安定性能や閉域ネットワーク接続が 向いているケース まず小さく始めたい場合 必要な場合 6

Slide 7

Slide 7 text

AppRun専有型とは コンテナをデプロイ・実行する、コンテナオーケストレーションサ ービス ユーザ毎に専用のVMを払い出し、その上でコンテナを実行する 7

Slide 8

Slide 8 text

AppRun専有型の特徴 ユーザ毎にVMを払い出す、シングルテナント型 VMの管理、運用は不要 さくらのクラウドのネットワーク機能と連携した構成を取ることが できる 閉域ネットワーク内にコンテナをデプロイすることが可能 セキュリティ面や性能/安定性がより求められるユースケースにマッチ 8

Slide 9

Slide 9 text

AppRun専有型の機能 CPU負荷に応じたオートスケーリング ローリングデプロイ 監視プラットフォーム(モニタリングスイート)と連携したログ、 メトリクスを提供 https://cloud.sakura.ad.jp/products/monitoring-suite/ ユーザはアプリケーションに集中して開発/運用することができる 9

Slide 10

Slide 10 text

AppRun専有型の機能 L7ロードバランサ ホスト名やポートに応じた自動ルーティング VRRPによる冗長化 Let's Encryptによる証明書発行/持ち込み証明書 10

Slide 11

Slide 11 text

AppRun専有型の概念 11

Slide 12

Slide 12 text

デモ(クラスタ作成) 12

Slide 13

Slide 13 text

デモ(クラスタ作成) 13

Slide 14

Slide 14 text

デモ(オートスケーリンググループ作成) 14

Slide 15

Slide 15 text

デモ(オートスケーリンググループ作成) 15

Slide 16

Slide 16 text

デモ(ロードバランサ作成) 16

Slide 17

Slide 17 text

デモ(ロードバランサ作成) 17

Slide 18

Slide 18 text

デモ(アプリケーションバージョン作成) 18

Slide 19

Slide 19 text

デモ(アプリケーションバージョン作成) 19

Slide 20

Slide 20 text

デモ(アプリケーションバージョン作成) 20

Slide 21

Slide 21 text

デモ(動作確認) 21

Slide 22

Slide 22 text

デモ(ログ、メトリクス閲覧) 22

Slide 23

Slide 23 text

Terraform対応 さくらのクラウドはTerraformに対応しており、IaCで宣言的に記 述することができます https://registry.terraform.io/providers/sacloud/sakura/lat est/docs/resources/apprun_dedicated_cluster 23

Slide 24

Slide 24 text

AppRun専有型の仕組み 各agentがcontrol planeとやりとりし、LBの設定更新やコンテナ 24 の配置を行う

Slide 25

Slide 25 text

プライベートネットワークで構成する場合 サービスエンドポイントゲートウェイ ネットワーク機能の拡張サービス プライベートネットワーク内のサーバーから、さくらのクラウド が提供するマネージドサービスへ安全に接続できるようにする https://manual.sakura.ad.jp/cloud/network/switch/seg. 25

Slide 26

Slide 26 text

構成例 26

Slide 27

Slide 27 text

AppRun専有型を構成するOSS コントロールプレーンの核となる「コンテナ配置ロジック」は自前 実装 汎用的で成熟した機能はOSSに委ねる コンテナ実行、L7ロードバランシング、冗長化、テレメトリ転送 など OSS採用の理由 開発・運用コストの削減 コミュニティの知見とセキュリティアップデートの活用 27

Slide 28

Slide 28 text

OSS選定の方針 自社で差別化すべき領域は自前実装 コンテナ配置ロジック、API、さくらのクラウド連携 業界標準・実績のあるものを優先 28

Slide 29

Slide 29 text

Docker ワーカーノード上でコンテナを実行するための基盤 OCI準拠を前提とすることで、ポータビリティを確保 エコシステムが成熟している シングルテナントなので、プロセスレベルの分離でも十分 29

Slide 30

Slide 30 text

Go コンテナ周りのライブラリが充実している 言語仕様が比較的小さい 標準ライブラリが充実しており、配布するagentイメージの依存関 係が少なくて済む 30

Slide 31

Slide 31 text

Traefik ロードバランサノード上で動くL7ロードバランサ https://traefik.io/ ユーザーアプリケーションへのL7ルーティングを動的に反映できる 一部設定変更時、再起動せずに済む 31

Slide 32

Slide 32 text

Traefik File Provider で動的に設定を受け取る agent が設定ファイルを生成・更新し、Traefik が検知して反映 32

Slide 33

Slide 33 text

Keepalived ロードバランサノードをVRRPで冗長構成にする ライブラリとして成熟している 33

Slide 34

Slide 34 text

OpenTelemetry Collector テレメトリの収集、転送に使用 収集経路を統一できる コンポーネントによっては成熟度が異なるのがデメリット 34

Slide 35

Slide 35 text

Ubuntu ノードのOSとして利用 LTS版があり、長期にわたるサポートを受けられる パッケージ管理が容易で、エコシステムが豊富 運用実績・コミュニティの知見が豊富 セキュリティアップデートの提供体制が整っている cloud-initの動作実績が豊富 35

Slide 36

Slide 36 text

cloud-init サーバの初回起動時に自動で設定を行う ネットワーク設定等 サーバ初期設定の自動化を容易に実現 ノードの構築・スケールアウトを効率的に 36

Slide 37

Slide 37 text

Valkey 一時的な制御データ保持 コンテナの状態管理 ノード情報 37

Slide 38

Slide 38 text

Ogen OpenAPI v3 code generator https://ogen.dev/ Goの型、インターフェースを生成 OpenAPIを中心に据えることでAPIとSDKの整合性を保証しやすい 38

Slide 39

Slide 39 text

TypeSpec クラウドサービスの API や データモデル(スキーマ) を定義する ための言語 https://typespec.io/ 冗長になりがちなOpenAPIを簡潔に書ける 39

Slide 40

Slide 40 text

sqlc SQLから型安全なGoコードを自動生成する https://sqlc.dev/ SQLを先に書いて、そのSQLを実行するコードを生成する ORMに比べて何が実行されるか分かりやすい 40

Slide 41

Slide 41 text

API / DB コード生成パイプライン TypeSpec から OpenAPI を生成 Ogen で Go の型とサーバハンドラインターフェースを生成 sqlc で SQL から型安全な Go の DB アクセスコードを生成 開発者は生成されたインターフェースにビジネスロジックを実装し ていく 41

Slide 42

Slide 42 text

Dewy アプリケーションを宣言的にデプロイするためのソフトウェア https://dewy.linyo.ws/ja レジストリをポーリングし、アプリケーションを子プロセスとして 管理する 管理システムのデプロイに使用 42

Slide 43

Slide 43 text

まとめ AppRun専有型は、ユーザー専用のVM上でコンテナを実行するシ ングルテナント型サービス コントロールプレーンの核となるコンテナ配置ロジックは自前実装 コンテナ実行、L7ロードバランシング、冗長化、テレメトリ転送な どは成熟したOSSを活用 Docker, Traefik, Keepalived, OpenTelemetry Collector な ど さくらのクラウドネットワークと連携し、閉域環境での利用も可能 43

Slide 44

Slide 44 text

44

Slide 45

Slide 45 text

ご清聴ありがとうございました 45

Slide 46

Slide 46 text

参考リンク https://cloud.sakura.ad.jp/lp/apprun/ https://registry.terraform.io/providers/sacloud/sakura/latest /docs/resources/apprun_dedicated_cluster https://cloud.sakura.ad.jp/products/monitoring-suite/ https://manual.sakura.ad.jp/cloud/network/switch/seg.html https://traefik.io/ https://ogen.dev/ https://typespec.io/ https://sqlc.dev/ https://dewy.linyo.ws/ja 46