Cloud Service
AWS Cloud9
ブラウザだけでコードの記述・実行・デバッグができるクラウド型 IDE。ローカル環境構築なしに開発を始められ、EC2 上の環境を共有して共同編集もできる。
- 1.ブラウザから使うクラウド型の統合開発環境(IDE)で、ローカルにツールを入れずコード編集・実行・デバッグができる
- 2.実体は EC2 などの環境上で動き、AWS 認証情報や CLI、各種ランタイムがあらかじめ用意され開発をすぐ始められる
- 3.1つの環境を複数人で共有してリアルタイムに共同編集でき、ペアプログラミングや教育用途に向く
AWS Cloud9 は、ブラウザだけでコードの記述・実行・デバッグができるクラウド型の統合開発環境(IDE)です。エディタ・ターミナル・デバッガが一体となった画面をブラウザ上で操作でき、開発に必要なランタイムや AWS CLI、認証情報があらかじめ用意された環境にすぐ接続して作業を始められます。
AWS Cloud9 は新規のお客様向けの提供を終了しており、これから使い始められない可能性があります。これから IDE 環境を選ぶ場合は、後継となるブラウザ型の開発環境など現行の選択肢を検討してください。本記事は概念理解のための解説です。最新の提供状況は必ず公式ドキュメントで確認してください。
解決する課題
ローカル PC で開発を始めるには、言語ランタイムやビルドツール、エディタ、AWS CLI と認証情報の設定など、多くの準備が必要です。メンバーごとに OS やバージョンが異なると「自分の環境では動く」といった差異も生まれます。共同作業で同じコードを見ながら作業したい場面でも、画面共有では限界があります。
Cloud9 はこうした手間と環境差を、クラウド側に用意した IDE に集約することで軽減します。
- ブラウザさえあれば開発を始められ、ローカルへのツール導入や環境構築の負担を減らす
- 環境のランタイムや設定をそろえやすく、メンバー間の環境差に起因する問題を抑える
- 1つの環境を複数人で共有し、同じコードをリアルタイムに編集しながら作業できる
主要概念と用語
- 環境(Environment): Cloud9 IDE が結びつく開発作業の単位。コードや設定、起動状態を保持する
- EC2 環境: Cloud9 が新たに起動・管理する EC2 インスタンス上の環境。手軽に開発環境を用意できる
- SSH 環境: 自分で用意した既存のサーバーへ SSH 接続して IDE を使う形態。クラウド以外のホストも対象にできる
- IDE: ブラウザ上のエディタ・統合ターミナル・デバッガからなる開発画面
- 統合ターミナル: 環境のシェルにブラウザから接続できるターミナル。コマンド実行やビルドに使う
- 共有(コラボレーション): 1つの環境を他のユーザーと共有し、同時編集やチャットを行う機能
- 自動休止(hibernation): 一定時間操作がない EC2 環境を自動停止し、インスタンス費用を抑える設定
仕様・制限・クォータ
- Cloud9 IDE の実体は、EC2 環境では新規に起動される EC2 インスタンス、SSH 環境では指定した既存サーバー上で動作する
- 主要な言語ランタイムや AWS CLI、Git などが初期状態で利用でき、必要なツールはターミナルから追加導入できる
- EC2 環境では、AWS 管理の一時認証情報が IDE に提供され、追加設定なしで AWS API を呼び出せる仕組みが用意されている
- 1つの環境を共有できる相手や同時に作業できる人数、アカウント・リージョン単位で作成できる環境数などにクォータがある
- 自動休止を有効にすると、一定の無操作時間が続いた EC2 環境は自動的に停止する
具体的な上限値・対応リージョン・既定で入っているツールの種類は時期によって変わるため、最新値は公式ドキュメントで確認してください。
内部の仕組み
Cloud9 は、ブラウザ上の IDE フロントエンドと、コードが実際に置かれて動く環境(バックエンド)を結びつけて提供します。ファイル編集やターミナル操作は、IDE から環境上のシェルやファイルシステムへと中継されます。
- EC2 環境を作成すると、Cloud9 が EC2 インスタンスを起動し、その上に IDE が接続する
- SSH 環境では、ユーザーが用意した既存サーバーへ SSH で接続し、同じ IDE 体験を提供する
- 統合ターミナルは環境のシェルに直結し、ビルドや実行、パッケージ導入をその環境内で行う
- EC2 環境では一時的な AWS 認証情報が IDE に渡され、CLI や SDK の呼び出しに利用される
- 共有時は同じ環境に複数ユーザーが接続し、編集内容がリアルタイムに反映される
すぐに使い捨ての環境が欲しいときは Cloud9 が EC2 を起動・管理する EC2 環境が手軽です。一方、すでに用意したサーバーやオンプレミスのホストで作業したい場合は SSH 環境を選びます。用途に応じて器を選べる点が特徴です。
設計パターン / ベストプラクティス
- 使い捨ての開発環境: 手早く作って試し、不要になったら削除する。環境構築の差異を持ち込まずに検証できる
- 共同編集の活用: ペアプログラミングやコードレビュー、ハンズオン研修で1つの環境を共有し、同じ画面で進める
- 自動休止でコスト抑制: EC2 環境に自動休止を設定し、放置されたインスタンスの稼働費を抑える
- 認証情報をコードに書かない: EC2 環境で提供される一時認証情報を使い、アクセスキーのハードコードを避ける
運用・監視
- 環境の起動状態: EC2 環境は停止・起動の状態を持ち、自動休止により無操作時に停止される
- バックエンド資源の監視: 実体である EC2 インスタンスの稼働や費用は、EC2 や CloudWatch、Cost Explorer 側で把握する
- 操作の追跡: 環境の作成・共有などの操作は CloudTrail に記録され、誰が何をしたかを後から確認できる
- 共有メンバーの管理: 共有相手と権限を定期的に見直し、不要になった共有を解除する
コスト
Cloud9 の IDE 自体には追加料金がかからず、課金されるのは IDE が動く土台となるリソースです。EC2 環境では起動した EC2 インスタンスとそれに付随する EBS ボリュームの費用が、SSH 環境では自分で用意したサーバーの費用が中心になります。
- 自動休止を有効にし、放置された EC2 環境のインスタンス費を抑える
- 用途に対して過大なインスタンスサイズを常用しない
- 使い終わった環境は削除し、不要なボリュームやインスタンスを残さない
正確な単価や課金対象の詳細は時期やリージョンによって変動するため、断定的な金額は公式の料金ページで確認してください。
セキュリティ
- 一時認証情報の利用: EC2 環境で提供される一時的な認証情報を使い、長期アクセスキーの埋め込みを避ける
- 環境共有の最小化: 共有は必要な相手に限り、付与する権限を役割に応じて絞る
- IAM による制御: 環境の作成・共有・削除といった操作を IAM ポリシーで適切に制限する
- 機密情報の扱い: トークンや鍵は環境内に平文で残さず、必要に応じてシークレット管理の仕組みを使う
環境を共有すると、相手はその環境のターミナルや認証情報にアクセスできます。共有先を広げすぎると、その環境から呼び出せる AWS リソースまで操作されかねません。共有は必要な相手に限定し、不要になったら速やかに解除してください。
関連サービス・比較
クラウド上で統一された開発環境を提供する点では、Amazon CodeCatalyst の Dev Environment と性格が近く、対比すると位置づけが整理できます。Cloud9 はブラウザ型 IDE 単体としての色が濃く、CodeCatalyst は計画・ソース・CI/CD を含む統合開発サービスの一部として開発環境を提供します。
| 観点 | Cloud9 | CodeCatalyst Dev Environment |
|---|---|---|
| 位置づけ | ブラウザ型の IDE 単体 | 統合開発サービスの一機能 |
| 土台 | EC2 環境または既存サーバーへの SSH | サービスが用意するクラウド環境 |
| 共同編集 | 環境共有で同時編集できる | プロジェクト内のメンバーで利用 |
| 扱う範囲 | コードの編集・実行・デバッグ | 計画から CI/CD までを含む流れの一部 |
ハンズオン / CLI例
# EC2 環境を作成(自動休止までの分数を指定)
aws cloud9 create-environment-ec2 \
--name my-dev-env \
--instance-type t3.small \
--automatic-stop-time-minutes 30
# アカウント内の Cloud9 環境 IDを一覧表示
aws cloud9 list-environments
# 指定した環境の詳細を取得
aws cloud9 describe-environments \
--environment-ids 1a2b3c4d5e6f7g8h9i0j
AWS Service
AWS Cloud9を実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
開発者ツール
比較で見る軸
クラウド: AWS / カテゴリ: 開発者ツール / 難易度: basic
導入後に効く点
実体は EC2 などの環境上で動き、AWS 認証情報や CLI、各種ランタイムがあらかじめ用意され開発をすぐ始められる
先に潰すリスク
サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。
- クラウド
- AWS
- カテゴリ
- 開発者ツール
- 難易度
- basic
- 関連資格
- DVA-C02
- 設計柱
- operational
判断チェックリスト
- 自社の用途が「開発者ツール / operational」に近いか確認する。
- 強みである「ブラウザから使うクラウド型の統合開発環境(IDE)で、ローカルにツールを入れずコード編集・実行・デバッグができる」が本当に評価軸になるか確認する。
- 注意点の「サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。