【要約】Webアプリエンジニアがゲーム用にEC2インスタンスを立ててみた [Qiita_Trend] | Summary by TechDistill
> Source: Qiita_Trend
Execute Primary Source
// Problem
著者が友人とのゲームプレイ環境を改善するために、自宅PCでのサーバー運用における以下の課題に直面した。
- ・マシンスペック不足による、ホストPCの動作遅延
- ・ホストがPCを起動していないと、他の友人がプレイできない制約
// Approach
著者は、AWS EC2を活用して、管理コストと利便性を両立するサーバー環境を構築した。具体的には以下の手法を用いた。
- ・Terraformによるインフラのコード管理
- ・systemdのExecStartPreを利用した、起動時のSteamCMDによる自動更新
- ・LambdaとDiscord OAuth2を用いた、非エンジニア向けのWeb操作パネル構築
- ・EventBridge Schedulerによる、毎朝6時の強制停止設定
// Result
著者は、本構成の導入により、低コストかつ運用の手間を最小限に抑えたゲーム環境を実現した。
- ・月額約2,500円前後という低コストな運用
- ・Discord経由で、AWSアカウントを持たない友人でもサーバーの起動・停止が可能
- ・サーバー起動時に常に最新版へ更新される仕組みの確立
Senior Engineer Insight
> 個人用途としては、コストと利便性のバランスが極めて高い設計である。特に、systemdのExecStartPreを用いて「起動時に最新版へ更新する」というアプローチは、アプリケーションのデプロイフローの簡略化として実務でも応用できる。また、LambdaとDiscordを組み合わせた操作インターフェースは、権限管理を適切に行いつつ、非技術者に操作を委譲する優れたパターンだ。ただし、本番環境であればデフォルトVPCの利用は避け、ネットワーク分離を徹底すべきである。