AWS Cloud9を使ってみた

Kazuki Koide

May 2, 2019

前回、AWS IoTボタンを使うためにAWSアカウントを作ったので、ついでにクラウドIDEであるCloud9を触ってみた。Cloud9については、re:Invent2017の動画がわかりやすい。

AWS re:Invent 2017 - Introducing AWS Cloud9: Werner Vogels Keynote - YouTube

クラウドIDEに求めるもの

これまでにクラウドIDEを使ったことはない。技術書の写経とかで環境構築がめんどくさかったりするので(Pythonとか)、そのへんがサクッとできると嬉しい。その他には以下の機能があればいいなという感じ。

セットアップ

Cloud9を動かすホストとしてEC2を使うのが一般的だと思うけど、自分は個人でさくらのVPS(Ubuntu)を契約しているのでそこで動かすことにした(AWS良くわからない)。ホスト側でやったことは以下の通り。

動いた。

対応している言語

ここに記載されている。

AWS Cloud9 Integrated Development Environment (IDE) の言語のサポート - AWS Cloud9

C++も対応しているので、競プロをやるのも面白いかと思った。

Hello, world

Goのサンプルコードを動かしてみた。

AWS Cloud9 の Go サンプル - AWS Cloud9

.bashrcにパスを設定

GOPATH=$HOME/go
PATH="/usr/local/go/bin:$GOPATH/bin:$PATH"

.goファイルを開くと、エラーになる。

調べるとどうもgocodeが必要らしいので、gocodeをインストールした。

go get github.com/nsf/gocode

動いた。

補完はこんな感じ。

コードの補完にgocodeを使っているので、goのバージョンは1.9以下にしておいたほうが良いと思われる。goのコード補完はlspへの移行期なので、1.10以降はもう少し落ち着いてから使おう。mattnさんが以下の記事で経緯を説明してくれている。

Big Sky :: gocode やめます(そして Language Server へ)

フォルダ階層はチュートリアルと違うけど、一般的な開発だとこんな感じになるかと思う。

Vimキーバインド

普段良く使うキーはだいたい問題なかった。ウィンドウ操作系はやはり難しいようだった。

Lambda Functionとの連携

前回作ったLambda Function をCloud9上で変更してみる。

以下を参考にした。

AWS Cloud9 Integrated Development Environment (IDE) で AWS Lambda 関数を操作する - AWS Cloud9

Lambdaへのアクセス権限を持つcloud9用のIAMを作成して、aws-cliをインストールすると、Remote Functionsが見えるようになる。

関数をインポートしようとしたらエラーが。goのランタイムはサポートしてないっぽい。まあコンパイル言語だし無理か。残念。

感想

好きな言語の好きなバージョンの仮想環境がサクッと立ち上がるのかなとか勝手に思ってたけど、そういうものではないらしい。クラウドIDEという名前の通りあくまでIDEなので、環境は自分で構築する必要がある。環境汚したくない場合はコンテナを使ったほうが良さそう。環境構築をサクッとやりたいのであればPiaza Cloudとかのほうが良いのかもしれない。とはいえ一度環境を作ってしまえば、どのPCでも開発できてしまうのは熱い。IDEとしては普通に使いやすい。