【要約】AWS上にセキュアかつ安価かつ使い捨て可能なリモート開発環境を構築した話 ― SSM × Spot Instance × CDK [Qiita_Trend] | Summary by TechDistill
> Source: Qiita_Trend
Execute Primary Source
// Problem
開発者がローカルのWSL環境を利用する際、メモリ不足により開発体験が著しく低下したことが発端である。具体的には以下の課題に直面していた。
- ・WSL環境のメモリ不足による頻繁なクラッシュ。
- ・ローカルPCのスペック制約による開発効率の悪化。
- ・開発環境の汚染や、環境構築の再現性に関する課題。
// Approach
開発者は、AWSのマネージドサービスを組み合わせ、IaCによって管理可能なリモート環境を構築した。以下の手法を採用している。
- ・SSM Session Managerを活用し、インバウンドポートを全閉にしたセキュアなSSH接続を実現。
- ・Spot InstanceとMixed Instances Policyを用い、コストを最大70%削減。
- ・AWS CDKにより、ネットワークから計算リソースまでを単一スタックで管理。
- ・EventBridge Schedulerにより、平日の稼働時間外は自動停止する仕組みを導入。
- ・データEBSをルートEBSから分離し、Spot中断時でもソースコードを保護。
// Result
本構成の導入により、開発者はローカルの制約を受けない、安価でクリーンな開発環境を手に入れた。成果は以下の通りである。
- ・月額コストを約$14(EC2 Spot, EBS, CloudWatch等)に抑制。
- ・VS Code Remote-SSHにより、ローカルと遜色ない操作感を実現。
- ・UserDataによる自動セットアップにより、環境の即時再構築が可能に。
Senior Engineer Insight
> セキュリティとコストのトレードオフを、SSMとSpot Instanceの組み合わせで鮮やかに解決している。特に、データEBSを分離し、RemovalPolicy.RETAINで保護する設計は、実戦的な知見に基づいた優れた判断だ。ただし、Spot中断時の起動待ち時間や、頻繁なGit pushを求める運用は、開発者の規律に依存する。小規模チームのサンドボックスや、個人の実験環境としては、極めて完成度の高い構成である。