インフラ環境の管理をコード化し、効率化
クラシコムのインフラには、「北欧、暮らしの道具店」のサービス、社内用システム、コーポレートサイトという3つの主要なアプリケーションがある。矢田氏が2020年に入社した時、インフラは変更の過渡期にあり、AWSのアカウントが本番とステージングに分割され、ECSはまだサービスが搭載されていない状態だった。当時、ショップとカートシステムはAWS OpsWorksで管理されていたため、AWSのマネジメントコンソールから操作していた。
矢田氏がクラシコムに転職したばかりの頃、AWS環境でのインフラ開発、構築、運用の経験はなかった。入社初期は、アプリケーションが分割されており、多数のAWSリソースを管理する必要があった。ペアで作業をしながら先輩の業務を観察し、学ぶ必要があり、作業を覚えることに自信がなく、初めは困難を感じていたという。
現在は、主なアプリケーションが統合され、Amazon ECS上で動くようになっている。AWSリソースTerraformによってコード化され、GitHubで管理されている。変更が必要な場合は、プルリクエストを作成し、チームメンバーでレビュー後、反映作業を行うことでオペレーションミスを減らしている。
コーポレートサイトは2022年の上場に伴いリニューアルし、インフラも刷新した。以前はElastic Beanstalkで作業していたが、こちらもECS上で動作し、Terraformによる管理ができるようになった。静的コンテンツが多いため、Amazon CloudFrontを利用してキャッシュし、リクエストが集中しても応答できるようになっている。
「ECSへの集約により、AWSリソースの管理が簡素化され、対応が楽になりました。Terraformでのコードベース管理により、属人化が減少し、プルリクエストを通じてのやり取りが可能になり、引き継ぎも容易になりました」(矢田氏)
矢田氏が入社した当初、AWSアカウントは本番とステージングに分割されており、本番環境を誤って破壊するリスクは低減されていた。現在はアカウントがさらに細分化され、適切な権限設定と管理が行われている。インフラの変更を行いたい場合、サンドボックスやステージングでテストし、本番環境に誤って影響を与えるリスクを低減している。ソースコードで設定管理しているため、復元も比較的容易になっている。適切な権限管理も行われているため、初心者が誤って承認やマージを行うリスクが減少した。コードベースでの管理により、ドキュメントの作成や探索の手間も軽減された。
さらに、プルリクエストは複数のメンバーによる確認を経て変更されるため、変更時の安心感が増している。CIの設定やセキュリティ診断ツールであるTrivyの導入により、誤った設定の導入が防止されている。レビュー時には、Terraform Planの内容がコメントに記載されるため、レビュアーが変更内容を確認しやすくなっている。
エンジニア7名のうちおよそ半数がSREの役割ができるようになっているという。矢田氏は「Terraformを使用したインフラの構築は非常に楽しく、ソフトウェアエンジニアの方々もインフラ業務に興味があれば参加してみると良いと思います。Terraformはチームでの開発に非常に適しており、取り組むハードルも高くないので、気軽に試してみてください」と語った。