GCE開発環境構築
クラウド開発環境の標準化を図るために、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操作を維持できる。