Cloud9のワークスペースをEC2に作って爆速開発環境構築

Cloud9のワークスペースをEC2に作って爆速開発環境構築

cloud9_www.png

Cloud9がAmazonに買収されて早数ヶ月。もう少しするとEC2専用のサービスが登場しそうですね。 現状のままでも、Cloud9とEC2を連携して、かなりシームレスな開発ワークフローが構築できますので、参考までにご紹介します。

前提条件

EC2インスタンス

SSHで接続できるインスタンスを用意します。今回はJetwareアプライアンスOptimized LAMP Stack PHP 5.6」(Amazon Linuxベース)で起動したLAMP環境のインスタンスを使います。Jetwareアプライアンスを使ったインスタンスの作成方法に関しては、以下の記事をご参照ください。

JETWAREでラクラクLAMP環境構築(AWS&ローカルPC)

cloud9のアカウント

Cloud9のアカウントが必要です。そして、これが肝かつこの話の全てなのですが、Individual以上のプランの購入($19/month)が必要です。 そうです。快適な環境を得るには、相応の対価を払う必要があるということです。。。

ですが、チームで使う場合は、1つのアカウントだけ購入していればOKです。Cloud9にはコラボレート機能があるので、メンバーアカウントを招待することで、他のメンバーも恩恵に預かれます。 そう考えると結構お得だと思います。AWS案件のサーバ運用費として$19/monthを追加計上してもらうよう、ぜひ決裁者に上申してみてください。

cloud9_price.png

ここからはIndividualアカウントにアップグレードした前提で、話を進めます。

EC2インスタンスに公開鍵を追加

Cloud9からSSH接続を許可するため、公開鍵を追加します。 まずは、Cloud9のメニューから「Account Settings」を選択し、設定画面に遷移します。

cloud9_settings.png

メニュー「SSH Keys」の中にある公開鍵をコピーして、EC2インスタンス側のユーザの~/.ssh/authorized_keysファイルに追加(なければ新規作成)します。Terminalで接続して、お好みのエディタを利用してください。ここではviを使って編集します。

$ vi ~/.ssh/authorized_keys

viで開いたら、「o」キーを押してAppendモードにしてから「⌘+v」で貼り付けます。貼り付けが完了したら「ZZ(大文字)」で保存終了。 ec2_terminal.png

これで、Cloud9から接続する準備ができました。

必要パッケージのインストール

今回利用したAMI「Optimized LAMP Stack PHP 5.6」(Amazon Linuxベース)だと、node.js(0.6.16以降)やglibc-staticなどのパッケージを追加インストールする必要がありましたので、yumでインストールしておきます。

$ sudo yum install epel-release
$ sudo yum install nodejs npm --enablerepo=epel
$ sudo yum install glibc-static

これらのパッケージがインストールされていない場合は、このあとの手順で、/usr/bin/nodeが見つからない、cursesが見つからない等のエラーがでて、ワークスペースの作成が失敗しますので、ご注意ください。

ワークスペース作成

Cloud9にログインして、ダッシュボードからワークスペースを作成します。「Creat a new workspace」をクリック。

cloud9_newworkspace.png

画面中段のタブから「Remote SSH workspace」を選択し、必要事項を入力します。

cloud9_create_newworkspace.png

  • Workpace name: 英数小文字で指定
  • Description: 説明文を指定(日本語OK)
  • Username: EC2側のユーザ名を指定
  • Hostname: EC2インスタンスの接続先ホストまたはIPアドレスを指定
  • Initial path: ワークスペースのPATHを指定(任意)
  • Port: SSHのポートを22以外に変更している場合は指定
  • Node.js binary path: /usr/bin/node(空欄でOK)

「Create Workspace」をクリックしたら、SSHで接続〜ワークスペース作成まで全て自動でやってくれます。エラーが出た場合はログを追って対処してください。待つこと数十秒でリモートワークスペースが出来上がります。

開発環境完成

cloud9_cake.png

ものの数分です。あっという間にできました。 EC2上のファイルを直接編集できます。SCPやS3経由でという手間もありませんので、便利に使えると思います。

余談ですが、Project Setting > Run > Preview で 「When Saving Reload Preview:」を「Always」にしておくと、⌘+Enterを押さなくても、保存(⌘+s)と同時にプレビューがリロードされます。便利ですね。

Freeプランのアカウントとのコラボレート

チーム開発で使う場合は、ワークスペースから「Share」で、メンバーを招待すれば、コラボレーションできます(招待アカウントはFreeプランでOKです)。

インストール作業に無駄なコストを費やさず、コーディングに全力を尽くしてください。以上です。

参考にした手順

リモートワークスペースの作成手順は以下の公式ドキュメントを参考にしました。 Setting Up an SSH Workspace