さくらのクラウド検定学習アプリ「さくマス!」リニューアルの裏側

はじめに

はじめまして。さくらインターネットに2025年新卒エンジニアとして入社しました菊池、鈴木、山下です。

今回この記事では、さくらのクラウド検定学習アプリの「さくマス!」のリニューアルの裏側について、2つの軸でご紹介します。

Step1では、リニューアルの目的とその成果、Step2では、さくらのクラウドへの移行についてご紹介します。

Step1:アプリを「作り足す」から「作り替える」へ

「さくマス!」は、もともとさくらインターネットの熊谷が入社前に個人開発していたアプリです。初期実装は Django を用いたモノリシック構成。スピード重視で立ち上げたこともあり、実装は一本化・密結合で、UI/UX 改善や機能追加のたびに影響範囲が大きくなる状態でした。

入社後、熊谷の「新機能をどんどん足したいが、ひとりで開発するよりチームで開発したほうが開発スピードが加速できる」という判断から、新卒同期 3 名が開発メンバーとして参加。ここを転機に、私たちはプロダクトを「作り足す」から「作り替える」へと舵を切りました。

開発メンバーが増えたことにより、各自の役割も変化しました。もともと「さくマス!」を開発していた熊谷は、プロダクトオーナーとして追加機能の考案や、問題の品質管理を担当することになり、開発メンバーは、フロントエンド:山下、バックエンド:鈴木、インフラ:菊池という体制になりました。

この体制の変化に伴い、複数人で開発してもアプリが壊れにくい設計および実行基盤が必要になりました。また、プロダクトオーナーである熊谷からの要望により、「小さい機能を高速にリリースし続ける」というサイクルを回したいということになりました。

このサイクルを少人数で実現するためには、いくつかの取り組みが必要でした。

小さい機能を高速にリリースし続けるために

  • 責任分離:Djangoによるモノリシックな構成から、フロント(React) + バックエンド(Django REST framework)へ移行。APIを境界として、機能ごとの疎結合を満たすようにしました。
  • コンテナ化:開発環境と本番環境との環境差異の最小化、並行開発が可能になりました。
  • 迅速な機能追加とリリースを支える基盤:機能追加からリリースまでの手順を自動化しました。

リニューアルの成果

この取り組みによって、「さくマス!」はUI/UXの点を刷新することができました。

UIの変更

ホームページ

問題内容選択ページ

回答ページ

回答結果ページ

機能追加

大きな機能変更として、「問題修正リクエスト機能」を追加しました。これは、問題の内容に誤りがあった場合に、ユーザが修正を依頼できる機能です。

ロードマップの前進

今回のリニューアルで、開発基盤を整備しました。今後は、学習体験の最適化(UI改善・回遊導線の見直し)と、利便性向上の機能追加を計画的に進めます。引き続きユーザーの声を取り入れながらアップデートしていきますので、ぜひご期待ください。

Step2:さくらのクラウドで”便利な”実行基盤を

Step1でのUI/UXの改善活動を支える実行基盤を本章で説明します。

少人数で効率よく開発するための基盤として、さくらのクラウドのマネージドサービスを採用しました。

利用したクラウドサービス

用途利用するサービス
コンテナ実行環境AppRun(Beta)
データベースエンハンスドデーターベース(Labプロダクト)
CDNウェブアクセラレータ

これらのサービスは、全てOSやデータベースなどのミドルウェアの構築・運用をクラウドプロバイダーに任せることができるため、ビジネスロジックに注力した開発ができます。具体的には、コントロールパネルやAPIからパラメーターを送信するだけで利用することができます。

また副次的なメリットとして、スケーラブル&従量課金(※1)であるため、事前に細かい負荷を予測する必要がなく、効率的かつ低コストな運用を行うことが可能です。

「さくマス!」は、開発時点で機能やアクセス数が未確定だったので、スケーラブルな設計にすることで、途中で機能やアクセス数が増えて高負荷になってもスケールすることで解決できるようにしました。また、料金も負荷に応じた請求になるため、小さく始めて、大きくスケールしやすい構成としました。

※1: BetaやLabプロダクトの製品は2025年8月時点で無料です。

AppRun

AppRunは、コンテナ化されたアプリケーションを簡単にデプロイし、自動的にスケーリングを行うサービスです。

コンテナアプリケーションを本番環境にデプロイする場合、IaaS基盤上にDockerやKubernetesを用いてコンテナ基盤を構築することもできますが、その場合コンテナ基盤の構築・運用が大きな手間となり、開発速度の低下が考えられます。AppRunは、ダッシュボードやAPIでデプロイするコンテナイメージ名やスケール数や監視設定などを入力するだけで、本番環境へのデプロイができます。

「さくマス!」では、AppRunを使用したことで、短時間で効率的にアプリケーションをデプロイし、さらに、ログやメトリクス監視も行うことができました。

エンハンスドデータベース

エンハンスドデータベースは、TiDBやMariaDBを利用したマネージドデータベースサービスサービスです。

「さくマス!」では、問題修正リクエスト(リリース済み)や振り返り機能(リリース予定)にてデータベースを使用するため、手軽に使用できるエンハンスドデータベースを選びました。

ウェブアクセラレータ

ウェブアクセラレータは、高速・安価を特徴とする国内向けウェブコンテンツ配信サービス。静的コンテンツをキャッシュ配信することで高速化を実現できます。

「さくマス!」では、以下の理由によりウェブアクセラレータを使用しました。

  • AppRunは現在独自ドメインの設定ができないため、ウェブアクセラレーターを併用することで独自ドメイン(sakumasu.com)によるアプリケーション公開を行いました。
  • 静的コンテンツをユーザーの近くでキャッシュして配信することで、高速化しました。

さくらのサービスを使ってみての感想

他社クラウドと比べると、現時点では提供機能の選択肢はシンプルな印象を受けました。ただし、その分アップデートのスピードが非常に速く、記事執筆中にも新機能の追加や改善が入り、内容を見直す必要があるほどでした。
また、Beta/Lab 段階の機能であってもドキュメントが十分に整備されており、導入や日々の運用で大きく戸惑うことはほとんどありませんでした。加えて、AppRun の仕様に関する問い合わせには丁寧に対応いただき、具体的な回答だけでなく実装方針に関するアドバイスまでいただけた点は非常に大きな安心材料でした。特に、ドキュメントやサポートが日本語で手厚く提供されている点は利用者にとっても非常に有益だと感じました。

アプリケーションの構成

自動テスト

アプリケーションの品質は極めて重要ですが、今回の少人数で開発をする場合を考えると、効率的に品質を担保し続ける仕組みが必要です。
これは、自動テストによってある程度解決できます。githubのpull requestを作成時に作動し、動く状態のコードしかマージしないような運用にしました。このように、リリース手順にテストを組み込むことで、バグや不具合などをリリース前に検出することができるようになりました。

テストコードを書くことは若干の負担になりますが、機能を追加するたびに毎回テストが自動で行われるようになるので、開発を効率化することができました。

自動デプロイ

今回、開発用ブランチ(dev) と、ステージング用ブランチ(stg)、リリース用のブランチ(prod)の3つを用いています。
dev → stgやdev → prodにマージすると、自動でサービスがデプロイ(リリース)されるような自動化基盤を構築ができました。

これにより、開発者は開発にのみ注力できます。大変なリリースの作業を省き、手元でアプリケーションが動けば、それをそのままリリースすることが可能になりました。

デプロイプロセス

デプロイも安定運用に支障のない範囲で自動化しています。

  1. stg branchのソースコードが変更されると、AppRunのステージング環境に自動デプロイ
  2. stg環境でちゃんと動いていることを手動確認→ prodへmerge
  3. prod branchのソースコードが変更されると、AppRunのプロダクション環境に自動デプロイ

apprun-cli

apprunはAPIを用いてリソースがデプロイされたコンテナを更新することができます。直接APIを操作するのは大変そうなので、今回は非公式ツールであるapprun-cliをgithub actionsで利用しました。

補足:ステージング環境をクラウド上に作成した理由

本番環境とほぼ同じ環境でテストができることや、ローカルに開発環境を持たない企画側メンバーを含めたUX検証のため、ステージング環境をクラウド上に用意しました。

余談ですが、実際にバックエンドのコンテナをステージング環境にデプロイした際、データベース(mysql)関連の依存パッケージが入っていなくてエラーになったことがあります。開発環境ではsqliteを利用しておりエラーが出てなかったので、ステージング環境を用意していたことで、本番リリース前に気づくことができました。

終わりに

今回のリニューアルでは、モノリシックな構造からの脱却と責務分離、そしてマネージドサービスを軸にした実行基盤への移行を並走させ、「小さな変更を、壊さずに、継続的に届ける」ための土台を整えました。

もちろん、プロダクトは完成とは言えず、まだまだやることは山積みです。

「ここが使いづらい」「この機能がほしい」「この表現が分かりにくい」などご意見がありましたら、Xのアカウントにご連絡ください。「さくマス!」 を、学びたい人にとって一番使いやすいサービスに育てていけるよう、これからも小さく、速く、丁寧にアップデートしていきます。

また、「さくマガ」では、本件に関するインタビュー記事が掲載されていますので、ぜひ併せてご覧ください。
さくらのクラウド検定の学習をサポート。“非公式”アプリ「さくマス!」を開発した新卒社員に聞く