AWS Cloud9 で始めるクラウド開発環境 - ブラウザベース IDE のセットアップと活用

ブラウザだけで AWS 開発を完結できるクラウド IDE。SAM CLI プリインストール環境での Lambda 開発と、リアルタイム共同編集によるペアプログラミングを紹介します。

Cloud9 の特徴と利用場面

Cloud9 はブラウザベースの統合開発環境 (IDE) で、t3.small 程度の EC2 インスタンス上に開発環境を自動構築し、月額数ドルで運用できます。コードエディタ、ターミナル、デバッガーがブラウザ内で動作し、ローカルマシンに開発ツールをインストールする必要がありません。AWS CLI、SAM CLI、Docker、Node.js、Python、Git が事前インストールされており、環境構築に時間をかけずに開発を開始できます。新メンバーのオンボーディング、ハンズオンやワークショップの環境統一、ローカル環境の差異によるトラブル回避に特に有効です。なお AWS は 2024 年 7 月 25 日以降、新規顧客への Cloud9 の提供を停止しています。既存ユーザーは引き続き利用できますが、新規に AWS アカウントを作成した場合は Cloud9 環境を作成できません。

Lambda 開発と SAM CLI 統合

Cloud9Lambda 関数の開発に最適化されており、最大 10 GB の /tmp ストレージと 15 分のタイムアウトに対応した Lambda のローカルテストが可能です。SAM CLI がプリインストールされているため、sam init でプロジェクトを作成し、sam local invoke でローカルテスト、sam deploy でデプロイまでをターミナルから実行できます。Lambda 関数のインラインデバッグにも対応しており、ブレークポイントを設定してステップ実行が可能です。Docker が利用可能なため、sam local start-api で API Gateway のローカルエミュレーションも実行できます。Cloud9 の環境は EC2 インスタンス上で動作するため、VPC 内のリソース (RDSElastiCache) にプライベートネットワーク経由でアクセスでき、ローカル開発では困難な統合テストも容易に実行できます。

コスト管理とセキュリティ

Cloud9 自体の利用料金は無料で、EC2 インスタンスと EBS ストレージの料金のみが発生します。自動停止機能により、一定時間操作がないと EC2 インスタンスが自動的に停止し、再度アクセスすると自動起動します。デフォルトの停止タイマーは 30 分で、開発スタイルに応じて調整できます。t3.small インスタンスであれば、1 日 8 時間の利用で月額数ドル程度です。セキュリティ面では、AWS Managed Temporary Credentials が自動的に環境に注入され、IAM ユーザーの権限で AWS リソースにアクセスできます。アクセスキーをファイルに保存する必要がなく、認証情報の漏洩リスクを低減します。ただし Managed Temporary Credentials には一部制限があり、IAM 操作や CloudFormation の一部操作が制限される場合があるため、そのような操作には明示的に認証情報を設定する必要があります。 Cloud9 に関する詳しい解説はAmazon の関連書籍でも確認できます。

Cloud9 の代替手段と移行先

2024 年 7 月 25 日以降に AWS アカウントを作成した新規顧客は Cloud9 を利用できないため、代替手段を検討する必要があります。AWS CloudShell はブラウザベースのシェル環境で、AWS CLI や SAM CLI がプリインストールされており、ターミナル操作だけであれば Cloud9 と同等の利便性を提供します。ただし CloudShell にはコードエディタ機能がなく、本格的なコーディングには不向きです。ローカル IDE (VS Code、JetBrains) と AWS Toolkit 拡張機能の組み合わせが、Cloud9 の後継として推奨されるワークフローです。AWS Toolkit は SAM テンプレートの作成支援、Lambda 関数のローカルデバッグ、CloudFormation スタックの管理を IDE 内から実行でき、Cloud9 のコア機能をカバーします。リモート開発が必要な場合は VS Code Remote - SSH で EC2 インスタンスに接続し、ローカルと同等の編集体験をリモート環境で得られます。

Cloud9 利用時の制限と注意点

Cloud9 は利便性が高い反面、運用上の制限を理解しておく必要があります。EC2 ベースの環境ではルートボリューム (EBS) のデフォルトサイズが 10 GB と小さく、Docker イメージや大規模プロジェクトを扱う場合は EBS ボリュームの拡張が必要です。resize.sh スクリプトまたは AWS CLI でボリュームサイズを変更し、ファイルシステムを拡張します。ネットワーク面では、Cloud9 の環境がパブリックサブネットに配置されるデフォルト構成ではインバウンドのセキュリティグループで SSH アクセスが Cloud9 サービスの IP 範囲に制限されますが、Systems Manager 経由の接続を使えばプライベートサブネットに配置してセキュリティを強化できます。共同編集 (ペアプログラミング) 機能はリアルタイムで動作しますが、環境を共有する際は招待したユーザーに環境内の全ファイルへのアクセスを許可することになるため、認証情報ファイルを誤って配置しないよう注意が必要です。

まとめ

Cloud9 はブラウザだけで AWS 開発を完結できるクラウド IDE です。事前構成された開発ツール、Lambda 関数のローカルテスト、ターミナルからの AWS CLI 操作を統合的に提供します。EC2 インスタンス上で動作し、チームメンバーとのリアルタイム共同編集で、ペアプログラミングやコードレビューを効率化します。2024 年 7 月 25 日以降、新規顧客には提供されていないため、新規利用者はローカル IDE と AWS Toolkit の組み合わせ、または AWS CloudShell を代替として検討してください。