BlogKLabは、多くのスマートフォン向けゲームを開発・提供しています。スマートフォン向けゲームの開発と運用は、Webソーシャルゲームと比べて格段に複雑で、またコンシューマゲーム開発とも異なったノウハウが求められる領域もあります。このブログでは、KLabのゲーム開発・運用の中で培われた様々な技術や挑戦とそのノウハウについて、広く紹介していきます。まえおき高田といいます。ふだんはゲームのデータなどを集計し、統一的に管理するデータ収集・分析のためのシステムを開発しています。私のチームではインフラにはAWSを活用し、自分たちで運用しています。その際非常にめんどうなのがセキュリティグループの管理です。セキュリティグループとは、AWS上の仮想マシンに対するトラフィックを制御する仮想ファイアウォールです。詳しくはamazonさんの公式のドキュメントを参照してください。私たちのチームの場合、提供するサービスは社内向けのものが多いので、例えば80ポートや443ポートは社内のIPアドレスのみに開放するといった設定を利用することが多いです。こちらをAWSのコンソール画面で設定していくのですが、数が増えていくと、どれがどれだったかわからなくなるというパターンが増えていきます。あ、大阪事業所だ」といちいち確認する手間も増えます。ひどいときは、「おそらくいらない設定だと思うけど、消して動かなくなると恐いから消さない」ということになり、どんどん誰も手がつけられない負債が増えていきます。設定をまちがえると必要なユーザーがまったくアクセスできない、あるいはデータベースへのアクセスが遮断されるなど、悲惨な障害につながりかねないため、この手の設定は恐いですね。経験上、セキュリティグループの管理には、以下のような問題が生じやすいようです。どの設定が何のためのものかわからなくなる。誰がいつ何のために設定したのかがわからなくなる。設定ミスは障害につながる。いざというときには、過去の状態に戻せるようにしたい。githubで管理する上記の問題をふりかえると、ソースコードなどと同様に、githubのワークフローに載せてやれば、問題点はおおむね解決できそうです。どの設定が何のためのものかわからない。