クラウド開発環境の標準化を図るために、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開発環境の主な利点

  1. リソースの動的な調整
    e2-standard-4(vCPU 4コア、メモリ16GB)などの強力なマシンを短時間で立ち上げ可能。開発の進捗や負荷に応じてスケーリングを柔軟に行う。

  2. 統一された開発環境
    チーム全体で同一環境を利用し、「自分の環境では動く」問題を回避する。新規メンバーが加わった場合でも、同一の手順でVMを構築できる。

  3. セキュアなアクセス
    SSH接続とIPアドレス制限を組み合わせ、堅牢なセキュリティを実現する。ソースコードや秘匿情報を安全に管理できる。

開発環境の特徴

  • Ubuntu 22.04 LTSベース
  • Git、Docker、GitHub CLIなどの主要ツールをプリインストール
  • Terraformでインフラをコード管理し、再現性を確保
  • VSCodeのRemote-SSHを用いたスムーズな開発体験

セットアップ手順

  1. リポジトリのクローン
    Terraform構成管理用リポジトリ(例: vm-infra)を手元にクローンする。
  2. 環境変数の設定
    .env ファイルを用意し、プロジェクト名やGCP認証情報などを定義する。
  3. Terraformの実行
    Terraform init → plan → apply でGCEインスタンスを自動構築する。
  4. VSCodeでのリモート接続
    Remote-SSH機能を使い、構築したGCEインスタンスへ接続。ローカルと同等の操作性が得られる。

運用上のポイント

  • 環境変数とシークレットの安全管理
    .envファイルやGoogle Cloud IAMを活用し、認証トークンや機密情報を外部に漏らさない。
  • コードによるインフラ運用
    Terraformで定義した構成を共有し、イミュータブルな環境を維持する。トラブル発生時にも再構築が容易。
  • スケール調整による効率化
    ビルド負荷が高いときはvCPU数を増やし、不要になれば小さいマシンへ切り替える。リソースを最適化することでコスト削減にもつながる。

まとめ

Mac上で動作が難しいソフトウェアを扱う際、GCE上にLinux開発環境を構築する手法は有効である。Terraformでコード化することで環境の再現性が高まる。さらにVSCodeのRemote-SSHによる使い慣れたIDE操作を維持できる。