AWS Cloud9をLightsail(AWS)にインストールする方法

AWS Cloud9 IDEとはAmazon Lightsailという設定済みのインスタンスの上でWordPress, LAMP (Linux, Apache, MySQL, PHP), Node.js, Nginx, Drupal,そしてJoomlaといった人気のアプリやフレームワークをブラウザで複数ユーザで同時にコーディングできるIDEです。Amazon Linux, Ubuntu, Debian, FreeBSD, openSUSEといったLinuxのディストリビューションも扱えます。

LightsailとはAWSで始められる最も簡単な開発者、小規模ビジネス、学生のための、シンプルな仮想プライベートサーバ(VPS)です。Lightsailは開発者に開発環境、ストレージ、ネットワーキング、デプロイ、ウェブサイトの管理、クラウド上のウェブアプリを提供します。

Lightsailは必要とされる、迅速にプロジェクトを進められる、仮想マシン、SSDストレージ、データ転送、DNSマネージメント、静的IPなどをリーズナブルな価格で提供できます。

##Step 1:LinuxベースのLightsailインスタンスの作成
Lightsailコンソールではインスタンスをいつでもバックアップ、再起動、停止、削除できます。

1.Lightsailコンソールを開きログインする。[https://lightsail.aws.amazon.com](https://lightsail.aws.amazon.com)

2.言語の選択を尋ねられたら、日本語(Japanese)を選択。

3.「始める(Let's start)」をクリック。

4.ホームページでは、すでに**インスタンス**タブが選択されていますので、**インスタンスの作成**をクリックする。

![Imgur](https://i.imgur.com/X5mUzKb.png)

5.Lightsailのインスタンスロケーションは、Cloud9の利用できるリージョンにしてください。

* 米国東部 (オハイオ)
* 米国東部 (バージニア北部)
* 米国西部 (オレゴン)
* アジアパシフィック (シンガポール)
* 欧州 (アイルランド)

上記のいずれかを選択してください。

![Imgur](https://i.imgur.com/HfMjQfI.png)

6.プラットフォームはLinux/Unix、設計図はお好みの物を選択してください。WordPressの他、LAMP Stack, Node.js, Joomla, Magento, MEAN, Drupal, GitLab CE, RedMine, Nginx, Plesk Hosting Stack on Ubuntuにも対応しています。

7.キーペアマネージャから、.pemをダウンロードしてください。SSHで接続するときに必要になります。
![Imgur](https://i.imgur.com/eOh5J4W.png)

8.インスタンスプランの選択は必要な物を選択してください。私は一番安い$5 USDのプランにしました。

9.インスタンスネームはお好みで。

10.インスタンスの数もお好みで。デフォルトは１になっています。

11.作成をクリック。

###macOSのターミナルからインスタンスに接続する方法
ダウンロードした.pemファイルのパーミッションをターミナルから変更します。

~~~ターミナル
$ chmod 600 ダウンロードしてきた.pem
~~~

それからSSH接続を試みます。


~~~
$ssh -i ./ダウンロードしてきた.pem ubuntu@インスタンスのIPアドレス
~~~






##Step 2:インスタンスを設定してCloud9で使う

1.インスタンスの名前をクリックしてください。
![Imgur](https://i.imgur.com/IMbrbJu.png)

2.接続タブの**パブリック IP**と**ユーザ名**を控えておいてください。
![Imgur](https://i.imgur.com/3AKnwwb.png)

3.**SSHを使用して接続**をクリック。

4.ターミナルが開くので**sudo apt-get update**を実行してださい。

5.Python2.7が必要なので**python --version**でpython2.7がインストールされているか確認してください。もしインストールされていなかったら**sudo apt-get install python**を実行してください。Version2.7がインストールされます。

6.Node.jsが必要なので**node --version**で確認してください。もしインストールされていない場合、以下を実行してください。

>sudo apt-get update

>curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.0/install.sh | bash

>. ~/.bashrc

>nvm install node

7.**which node**を実行して、格納場所を控えておいてください
>nodeが/usr/sbin/nodeのような場所にインストールされた場合、
>Cloud9がNode.jsを見つけられないので、上記コマンドでインストールしてください。

#Step 3:AWS Cloud9 SSH開発環境を作成し接続する

1.[https://console.aws.amazon.com/cloud9/](https://console.aws.amazon.com/cloud9/)にログインする

2.AWS Cloud9コンソールで先ほど作成したAWS LightsailインスタンスのAWSリージョンと同じリージョンを選択。

3.Create Environmentをクリック。
![Imgur](https://i.imgur.com/FLMJ1p4.png)

もしくは
![Imgur](https://i.imgur.com/NX2sHCs.png)

4.Name environmentページでは**Name**で環境にお好みの名前を付けてください。

5.**Description**に説明文を記録することが出来ます。

6.**Next step**をクリックしてください。

7.Configure settingページでは**Environment type**で**Connect and run in remote server (SSH)**を選択してください。

8.**User**には**bitnami**と入力してください。

9.**Host**には**パブリックIP**を入力してください。

10.デフォルトの22に設定してください。

11.**Advanced settings**を展開してください。

12.**Environment path**は「~/」（ユーザのホームディレクトリ）

13.**Node.js binary path**にNode.jsのインストール先を入力してください。ターミナルで「which node」と入力すれば出力されます。

14.**SSH jump host**は空のままにしてください。
![Imgur](https://i.imgur.com/yax2mRP.png)

15.**Copy key to clipboard**をクリックしてパブリックSSHキーをコピーしてください。

16.LightsailインスタンスにSSHでアクセスして、**vi ~/.ssh/authorized_keys**を開き、**public SSH key**をペーストして保存してください。

17.あとはひたすら**Next step**と**Create environment**と**Next**をひたすらクリックすればCloud9のインストールが始まります。

18.[https://us-east-2.console.aws.amazon.com/cloud9/home#](https://us-east-2.console.aws.amazon.com/cloud9/home#)で**Open IDE**をクリックすれば、Cloud9が立ち上がります。