10
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

KDDI Engineer&Designer Advent Calendar 2022

Day 18

AWS Cloud9 のすゝめ

Last updated at Posted at 2022-12-17

この記事は KDDI Engineer&Designer Advent Calendar 2022 の18日目の記事です。

この記事では、「Cloud9 って何?」という人向けにAWS Cloud9 の紹介をしていきます

はじめに

AWS cloud9 とは、AWSマネジメントコンソールから簡単にIDE(統合開発環境)を起動することができるサービスです

ものすごく単純化すると、VSCode しか動かない PC をクラウド上で起動できるイメージです

こんな感じの開発環境をWebブラウザ上で動かすことができます
image.png

この記事を書こうと思った背景には、私用 PC のWindows で開発環境を整えるよい方法にたどり着けなかったことがあります。。。

PowerShell とコマンドプロンプトに慣れなかったり、Bash を使いたいがために WSL2 を導入してみたものの、たまに動作が重かったり。。。
MacBook でも買おうかと思っていたのですが、「クラウド上に開発環境置いちゃえばいいんじゃね?」と思い立ったのが事の始まりです

ちなみに、今はローカルの WSL2 をメイン環境としてますが、ローカル環境を汚したくないとき用に Cloud9 を使います

どんな人におすすめか

完全的に個人の主観ですが、以下のような方にお勧めできると思います
「とりあえず環境を用意したい」というニーズには、十分すぎるほどの機能があります

  • ハンズオンや勉強会で AWS CLI やソースコードを取り扱う
    • ブラウザ経由なので、端末による環境差異がほとんどなくなります
    • Cloud9 は AWS CLI がプリインストールされています
  • ローカル環境にデータを置きたくない
    • 元となる EC2 インスタンスにデータが保存され、ローカル環境にはデータは残りません
  • 開発環境を用意したいが、何をすればいいかわからない
    • ローカル環境は一切汚さずに、開発環境を使うことができます
  • こういう画面なんかかっこいい、触ってみたい
    • 私が Cloud9 に興味を持った最初の理由はこれでした
      image.png

ただ、「とりあえずの開発環境」 という感じなので、IDEとしての機能はVSCodeなどの主要サービスの方が幅広く使えます
ゴリゴリに開発をする人にとっては機能不足だと思うので、ローカル環境で開発環境を整えたほうがいいと思ます

環境の作成方法

AWS CLIでも作成できますが、ここでは一番手っ取り早く作成ができるマネジメントコンソールからの操作を記載します
なお、つい最近作成画面が変わったので今までの記事に記載されているスクリーンショットは更新がされていない可能性があります
(2022年11月現在の画面に基づいて記載しています)

まずは「Cloud9」と検索して Cloud9 の画面を表示します
image.png

はじめて利用する際は以下のような画面が表示されますので、右上の[Create environment]をクリックします
image.png

ここから諸々の設定をしていきます

まずは名前と説明、それに利用する環境を選びます
image.png
Cloud9 の実体は EC2 インスタンスなので、新規作成するのか、もしくはすでにあるインスタンスを使うかを選ぶ必要があります

既存のインスタンスを使う場合は SSH による接続しかできないため、ユーザー名やホスト名 or IPアドレスなど、SSH 接続をするための設定が必要です
image.png

新規作成する場合は、インスタンスタイプの設定とOSの設定(Amazon Linux 2 もしくは Ubuntu)を行います
image.png
またここでは、ユーザー操作がない場合に自動停止するまでの時間を設定できます
Cloud9 はインスタンスが動いていることを意識しなくていいため、つい放置してしまいがちです
不要な課金を防ぐためにも、必ず設定しておきましょう

次に、インスタンスへの接続方法と、立てるサブネットの設定をします
(接続方法とネットワーク要件については後述します)
image.png

最後にタグの設定(オプション)をすれば設定完了です!
[Create]をクリックして作成しましょう
image.png

デフォルト VPC 上ですぐに使いたい場合は一番上の名前だけ設定すればOKです、なんという手軽さでしょうか

作成が完了した後に [Open] をクリックすれば、IDEの画面が表示されます
起動には若干時間がかかりますが、1,2分くらいです
image.png

接続方法について

Cloud9 の実体である EC2インスタンスとの接続方法には2種類あります
セキュリティが絡んでくるところなので、違いは知っておきましょう

前提条件(ネットワーク要件)

どちらの場合も、インスタンスのインターネット向けアウトバウンド通信が確立されている必要があります
パブリックサブネットを使う、もしくは NAT Gateway などを使う必要があるかと思います

SSM Session Manager を使った接続

Cloud9 と EC2 の間を SSM Session Manager によって接続します
cloud9_ssm_access.drawio (1).png

Session Managerの画面を見てみると、セッションが張られているのがわかります
image.png

Cloud9のターミナルからも、SSMを使っていることが確認ができます
image.png

ちなみに、この記事を書いている当時では、セッション数は2つでした

この場合はなんといっても、EC2インスタンスのインバウンド通信を閉じたまま利用することができるのがメリットです
以下は実際のスクリーンショットですが、インバウンドルールがないことがわかります

image.png

ただしデメリットとしては、既存のEC2インスタンスとCloud9を接続する場合は利用できません
あくまで新規に Cloud9 の環境を作りたい場合のみ利用ができます

SSH を使った接続

Cloud9 と EC2インスタンスの間は SSH のセッションが張られます
このセッションを使って、コンソール画面から操作ができます

cloud9_ssm_access.drawio.png

この方法は、インスタンスの新規構築 or 既存インスタンスの流用、いずれの場合でも利用が可能です

セキュリティ的には、Cloud9 からのSSH通信を許可するセキュリティグループが自動的に作成されるので、注意が必要です

以下は実際のスクリーンショットですが、Cloud9 のIPアドレスである18.179.48.128/27 と 18.179.48.96/27 からのSSHが許可されていることがわかります

image.png

ちなみにこのIPアドレスは Cloud9 を利用するリージョンによって異なります
詳しいIPアドレスはAWS公式ドキュメントから確認ができます

最後に

簡単に起動でき、料金もそこまでかからないのでぜひ試してみてください!

ちなみに、アドベントカレンダー10日目の記事で 「Cloud9 上でTerraform を動かしてみた」という記事を書いています
興味がある方は、合わせて読んでもらえるとうれしいです

10
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?