クラウド開発環境の標準化を図るために、Google Compute Engine(GCE)を利用した開発用VMを構築した。
https://github.com/YusukeShimizu/vm-infra
Mac(特にMxチップ)でビルドが困難なソフトウェアを扱う際、Linuxアーキテクチャ向けバイナリが前提となるケースが多い。そこで、専用のGCE環境をTerraformでコード化し、以下の利点を得た。
もともと https://github.com/Blockstream/greenlight のdockerが動かないことが作成したきっかけである。
blockstreamのproductはlinuxアーキテクチャ向けに開発されており、Mac上でのビルドが難しいことが多い。
GCE開発環境の主な利点
リソースの動的な調整
e2-standard-4(vCPU 4コア、メモリ16GB)などの強力なマシンを短時間で立ち上げ可能。開発の進捗や負荷に応じてスケーリングを柔軟に行う。統一された開発環境
チーム全体で同一環境を利用し、「自分の環境では動く」問題を回避する。新規メンバーが加わった場合でも、同一の手順でVMを構築できる。セキュアなアクセス
SSH接続とIPアドレス制限を組み合わせ、堅牢なセキュリティを実現する。ソースコードや秘匿情報を安全に管理できる。
開発環境の特徴
- Ubuntu 22.04 LTSベース
- Git、Docker、GitHub CLIなどの主要ツールをプリインストール
- Terraformでインフラをコード管理し、再現性を確保
- VSCodeのRemote-SSHを用いたスムーズな開発体験
セットアップ手順
- リポジトリのクローン
Terraform構成管理用リポジトリ(例: vm-infra)を手元にクローンする。 - 環境変数の設定
.env
ファイルを用意し、プロジェクト名やGCP認証情報などを定義する。 - Terraformの実行
Terraform init → plan → apply でGCEインスタンスを自動構築する。 - VSCodeでのリモート接続
Remote-SSH機能を使い、構築したGCEインスタンスへ接続。ローカルと同等の操作性が得られる。
運用上のポイント
- 環境変数とシークレットの安全管理
.envファイルやGoogle Cloud IAMを活用し、認証トークンや機密情報を外部に漏らさない。 - コードによるインフラ運用
Terraformで定義した構成を共有し、イミュータブルな環境を維持する。トラブル発生時にも再構築が容易。 - スケール調整による効率化
ビルド負荷が高いときはvCPU数を増やし、不要になれば小さいマシンへ切り替える。リソースを最適化することでコスト削減にもつながる。
まとめ
Mac上で動作が難しいソフトウェアを扱う際、GCE上にLinux開発環境を構築する手法は有効である。Terraformでコード化することで環境の再現性が高まる。さらにVSCodeのRemote-SSHによる使い慣れたIDE操作を維持できる。