LoginSignup
21
17

More than 5 years have passed since last update.

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

Last updated at Posted at 2016-10-12

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を使って編集します。

authorized_keysを編集
$ 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でインストールしておきます。

node.js関連パッケージのインストール
$ sudo yum install epel-release
$ sudo yum install nodejs npm --enablerepo=epel
glibc-staticのインストール
$ 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

21
17
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
21
17