東京リージョンに Lightsail を使って手軽に Cloud9 を構築する

Amazon Lightsail を使って Cloud9 を構築したいと思います。
東京リージョンに作成します。

# 環境
AWS アカウント: アクセス権限 Lightsail, Cloud9

# Lightsail インスタンス作成
Lightsail の `Linux/Unix` `アプリ + OS` `Node.js` を選択し、インスタンスを作成します。
Node.js は Cloud9 が使用します。
インスタンス名、プランは任意に設定してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/123649/145a8527-4cee-2874-b1d0-2d4529a4b0b3.png)

次に `ネットワーキング` タブから `静的 IP の作成` をクリックし、作成したインスタンスにアタッチします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/123649/7fb8fa3f-8bc8-dd6f-201c-fdf525ac8b7c.png)

# Cloud9 の設定（SSH キーコピーまで）
ブラウザで Lightsail の画面とは別タブ、もしくは別ウィンドウで Cloud9 の画面を開きます。
Cloud9 の画面で `Create environment` ボタンをクリックします。
`Step 1 Name environment` の画面で Cloud9 の名前を設定し、`Next step` ボタンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/123649/13378bff-6fbb-3427-2316-f0d8f7cdcada.png)

`Step 2 Configure settings` の画面で下記の通り設定します。

- `Environment type` に `Connect and run in remote server (SSH)` を設定します。
- `User` に `bitnami` を設定します。
- `Host` に Lightsail で設定した `静的 IP` を設定します。
- `Port` に `22` を設定します。

ここまで設定したら、`Copy key to clipboard` ボタンをクリックし、SSH キーをコピーします。
Cloud9 の画面は一旦このままにして、Lightsail の画面に戻ります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/123649/7268edec-159b-d705-7516-ebe4428e5833.png)

# Lightsail SSH キー設定
Lightsail の画面から、`インスタンス` タブの `>_` アイコンをクリックし、ターミナルを開きます。
`.ssh/authorized_keys` ファイルを vi で開きます。

```shell
$ vi .ssh/authorized_keys
```

Cloud9 でコピーした SSH キーを行追加します。
デフォルトで一行設定されているので、次のような二行になると思います。
一行が長いので、ターミナル上は改行されて表示されている可能性があります。

```shell:.ssh/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDoAqVfAKGXjPK/x/9YIxdfxg1yTyZR3PfhnltdgU..
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDF1uOa95QY2CoomS10S2yTKvHIb+rxwLuqn6IW+0..
```

`.ssh/authorized_keys` ファイルを保存し、ターミナルを閉じます。

# Cloud9 のインストール
再び、`Step 2 Configure settings` の画面に戻り、先程の続きから `Next step` ボタンをクリックします。
このとき、エラーが出るようならば、SSH キーの設定が間違っている可能性があります。見直してください。

`Step 3 Review` 画面に遷移後、`Create environment` ボタンをクリックします。
Cloud9 のインストールダイアログが表示されるので、デフォルトのままで `Next` ボタンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/123649/ea726b1d-56e1-b1fb-cda6-b9829f8af444.png)

次もデフォルトのままで `Next` ボタンをクリックします。
インストールがはじまるので、しばらく待ちます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/123649/7f062c84-abd9-cc38-a857-366d4b1e4181.png)

途中、次のような画面で止まるので、ブラウザの `F5` などで画面を更新します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/123649/34b74f36-4faa-6317-6c24-e259bae5375a.png)

次のダイアログが表示されるので、これもデフォルトのままで `Next` ボタンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/123649/6d680c01-2622-b39f-526c-91a02ecf7de7.png)

次のような画面でインストールは完了です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/123649/3738ee81-acbd-8176-d783-48795018035c.png)

Cloud9 の画面で、`Open IDE` ボタンをクリックすると Cloud9 の画面が開きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/123649/6922064c-fd12-f099-d78c-e85d8cdc2743.png)

# まとめ
以前より、シンガポールリージョンなどであれば、Cloud9 コンソールから手軽に環境構築できました。
2019年4月9日に Cloud9 は東京リージョンに対応したとありますが、2020年4月現在、Cloud9 コンソールからでは VPC や Subnet を手動で設定する必要あります。
そのため、今回のような Lightsail を使った方法がより手軽だと思います。
手っ取り早く、東京リージョンに Cloud9 を構築したいという方の助けになれば幸いです。

# [参考]
https://qiita.com/unitia0323/items/466045e978e6af030b38