Azure, Kubernetes基盤 リアルタイムテトリスマッチングプラットフォーム
2025年 9月
安定的かつスケーラブルなゲームサービスのためのクラウドネイティブインフラ設計及び自動化
使用技術
プロジェクト目標
単なるゲーム開発ではなく、クラウド技術を活用して「安定性」「拡張性」「セキュリティ」という3つの核心的価値を備えたゲームサービスを構築することを目標としました。ユーザーには円滑なリアルタイム通信と安全なデータ保存を保証し、トラフィック変動に柔軟に対応できるインフラ構築に集中しました。
主な役割と解決プロセス
1. Kubernetes(AKS)クラスタの設計及び運用
アプリケーションの安定的な運用と柔軟な拡張のためにAKSを導入しました。Front-endとBack-endをコンテナとして分離し、デプロイ・管理しました。これにより、特定のサービスに障害が発生しても他のサービスへの影響を最小限に抑える環境を構築しました。また、トラフィックが急増した場合に自動的にPod数を増やすHPAを設定し、突然の負荷にも安定的に対応できる基盤を整えました。
2. Terraformを活用したインフラ構築自動化 (IaC)
Azure上で生成するすべてのリソースをTerraformコードで定義し、インフラ構築を自動化しました。Azureだけでなく、Kubernetes、Helm Providerを利用してPrometheus、Grafana、ArgoCDなどもコードで生成・管理することができました。ユニークな名前が必要であったり、英数字のみの名前が必要であったりするAzureリソースが存在し、エラーが発生することもありましたが、コードを再利用することでチーム環境の構築時間を大幅に短縮し、IaCの効率性を実感することができました。
3. CI/CDパイプラインの構築
GitHub ActionsとArgoCDを「ビルド」と「デプロイ」という役割で分担させ、CI/CDパイプラインを設計しました。開発者がコードをGitHubにPushすると、GitHub Actionsが自動的にDockerイメージをビルドしてACRにアップロードします。その後、ArgoCDがGitHubリポジトリのK8s Manifestの変更を検知し、クラスタの状態を最新バージョンに自動同期させ、安定的な無停止デプロイが実現されるよう実装しました。