【re:Invent 2017】Cloud9について聞いてきた

AWS, Cloud9, re:Invent, re:Invent2017

【DEV320】 NEW LAUNCH! Introducing AWS Cloud9, a cloud IDE to write, run, & debug your code

少し日付がたってしまいましたが、Cloud9についてのセッションを聞いてきたので、簡単に内容をまとめたいと思います。

IDEをAWSが作った理由

今回Cloud9を作ったのには大きく4つ理由があるとのことでした。

開発者はクラウドを利用しているけど開発環境はローカル

クラウドではリソースのスケールはできますが、ローカルは当たり前ですがマシーンのスペックに依存します。複数のシステムやサービスをローカルで動かす人も多いかと思いますが、結構あれが大変だったります。
また場合によっては開発者が複数の拠点に分散されたりしていると、開発環境を統一したりするのが大変になったりします。

煩雑な開発環境構築

開発環境を構築する場合

  1. IDEのインストール
  2. プロジェクト固有の設定を追加
  3. ソースを落としてくる

といった手順を踏んで、初めてコードを書くことができます。この手順が1つならよいですが、複数のプロジェクトであったり、あるいは複数の言語の環境を構築するとなると大変です。

コード上でのコラボレーションが容易にできる環境

ペアプログラミングあるいはモブプログラミングを取り入れて開発する場合、1画面を複数人で共有するにはそれなりに大きな画面を用意する必要があるので場所や環境が限られてしまいます。

ほとんどのIDEでServerlessアプリケーションの開発に対応できていない

Lambdaを使ったことのある人ならわかるかと思いますが、ローカルでデバッグできないのは結構大変です。自分たちの場合は開発環境へのリリースを自動で行えるような環境を最初のうちに作りましたが、それでもローカルでデバッグができるようになると開発スピードが全然違ってくると思います。

Cloud9で何ができるか

  • ブラウザ上での開発

  • 新しいプロジェクトを素早く始めることができる
    プロジェクト毎の設定をあらかじめ作っておくだけで、それを他の人が利用して開発をスタートすることができます。

  • コード上で複数人とコラボレーションができる
    Cloud9上でメッセージのやり取りをしながら、複数人で同じコードの編集ができます。

  • Serverlessアプリケーションの構築が容易
    ローカルデバッグが可能で、リリースもCloud9上のボタン一つでできます。

  • AWS のサービスに対してターミナルからダイレクトにアクセスできる

デモを見てみて

デモではNode.jsを使ったLambdaのローカルデバッグだったり、リリースなどを見せてもらいました。リクエストの値も自由に変えながらデバッグできて、Lambdaの開発は非常に楽だろうなと感じました。他にもエディタの種類を選べたり、配色も色々選択できたり、またハイライトの機能もそれなりにちゃんとしている印象でした。コレボレーション機能もメッセージのやりとりがCloud9上でできるので、非常にやりやすそうだと感じました。
ちなみに開発環境の起動方法には2種類あり、Cloud9にインスタンスの管理をお願いするタイプと、あらかじめ用意したインスタンスもしくはLinuxサーバに接続させるタイプがあります。Cloud9自体の料金はかからず、起動しているインスタンスやEBSボリュームの料金のみ発生します。Cloud9にインスタンスを管理させるタイプでは、あらかじめ設定した時間操作がなかった場合、自動でインスタンスを停止する機能がありました。

今のところの懸念点

かなり魅力的な機能が多かったですが、個人的にはメインの言語がJavaなのでナビゲーション機能等はなく基本的なハイライト機能しかないとなると開発効率が少し悪くなると感じました。それ以外に関してはクリアできる壁がほとんどでしたので、Java以外の言語の人は利用を検討してもよいかもしれません。ちなみにこちらに言語毎のサポートしている機能について記載があります。