Cloud9環境作成 既存EC2を利用する

## 目的
> 既存のEC2サーバ上で稼働しているWebシステムを、ローカル等で開発環境を構築せず、
> サーバ上で開発作業ができるようにClould9を利用し、既存EC2と連携する手順を記載する。

## 前段として

> ### Could9とは
> ブラウザのみでコードを記述、実行、デバッグできるクラウドベースの統合開発環境 (IDE) 。
> https://aws.amazon.com/jp/cloud9/

> ### 既存環境にNode.jsが必要
> 既存EC2を使ってCould9を動作させるためには、既存環境上にNode.jsがインストールされている必要がある。



## 手順

> ### 1.既存EC2セキュリティグループの設定
> ・Could9から既存EC2環境への接続を許可するため、既存EC2環境のセキュリティグループの設定を行う。
> ・インバウンドルールの修正を行い、東京リージョンのCould9のIP(下記の2つ)からのssh接続を許可する。
> 
> 18.179.48.96/27 (Cloud9 Tokyo)
> 18.179.48.128/27 (Cloud9 Tokyo)
> 
> ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/247329/2974d600-d408-78c9-6980-6e65e5e35010.png)


> ### 2.既存EC2にNode.jsをインストールする
> 
> まず、既存環境にNode.jsがインストール済か確認する。
> ※下記コマンドは既存環境上で実行する
> ```:Node.jsがインストールされいてるか確認
> node --version
> ```
> 
> ※以降の手順は、Node.jsがインストール済みであればスキップする。
> 
> ```:Node.jsのインストールの為、nvmを利用する。
> curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash
> ```
> 
> ```:nvmを有効にする
> . ~/.nvm/nvm.sh
> ```
> 
> ```:nvmを利用してNode.jsをインストールする
> nvm install 16
> ```
> 
> ```:インストール完了できたかを確認
> node --version
> ```
> 
> ※参考
> https://docs.aws.amazon.com/ja_jp/sdk-for-javascript/v2/developer-guide/setting-up-node-on-ec2-instance.html

> ### 3.Cloud9環境作成
> 
> > #### 3.1.Could9へ移動
> > ・AWS サービスから「Cloud9」を入力して、選択する。
> > ・ダッシュボード画面の左メニューの「自分の環境」をクリックし、環境一覧画面の右上にある「環境を作成」を押下する。
> 
> > #### 3.2.環境作成
> > 
> > > ##### 3.2.1.環境設定（名前、環境タイプ）
> > > ・Clould9の環境名に適当な名前を入力する
> > > ・「既存のコンピューティング」を選択する
> > > 
> > > ※設定例
> > > ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/247329/0e69abec-2855-bc73-7948-0f196c57225e.png)
> > > 
> > 
> > > ##### 3.2.2.既存EC2環境にパブリックキーを設定する
> > > ここではClould9から既存EC2環境へセキュアに通信するためのパブリックキーを、既存EC2環境に設定する。
> > > 
> > > ・Could9の環境作成画面中部にある「キーをクリップボートにコピー」のボタンを押下して、コピーする。
> > > ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/247329/4ebb3dfc-f138-1804-0fd6-853bd006ef5c.png)
> > > 
> > > ・一度、現在の画面を離れて、既存EC2へ接続する（Teratermなどのクライアントツールで接続する）。
> > > ・既存環境の認証キーファイルに、コピーした内容を追記する。
> > > 
> > > > 
> > > > ```:コマンドでファイルを開く
> > > > vi .ssh/authorized_keys
> > > > ```
> > > > 
> > > > ※もともと設定済のキー情報はそのままで、コピーした鍵を追記して保存する。
> > > ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/247329/2d286d1f-04d0-c765-2ecf-c1e80f2dfe1e.png)
> > 
> > > ##### 3.2.3.環境設定（名前、環境タイプの続き）
> > > Could9の環境作成画面へ戻り、設定を続ける。
> > > 
> > > ・ユーザは「ec2-user」を設定
> > > 
> > > ・ホストは既存EC2インスタンスのIPを設定
> > > 
> > > ・ポートは「22」を設定
> > > 
> > > ・「その他の詳細 - オプション」も設定する
> > > 
> > > ・環境パスは「/」を設定する 
> > > ※Clould9でEC2へ入った後のに操作できるディレクトリとしてルートを設定
> > > 
> > > ・Node.js バイナリへのパスは既存EC2環境にインストールしたNode.js のバイナリパスを設定する。
> > > 
> > > ```:既存環境でコマンドで実行し、取得したパスをそのまま設定する
> > > which node
> > > ```
> > > 
> > > ※設定例
> > > 
> > > ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/247329/69eb8190-0b9d-7559-6e16-a23f4890dacd.png)
> > > 
> > 
> > > ##### 3.2.4.作成する
> > > ・画面右下の作成ボタンを押下する。 

> ### 4.Cloud9環境実行
> ・環境一覧の作成された環境の「Could9 IDE」の「開く」を押下する。
> ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/247329/3a50d79c-0de0-2b53-71a1-f97ddfabed36.png)
> 
> ・Cloud9のセットアップが始まるので、Nextを押下する。
> ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/247329/591d9a12-c5aa-cb04-4f4a-594ec073f3ff.png)
> 
> ・必要なコンポーネントを選択し、Nextを押下する。
> ※今回は「c9 ide collab」は対象外とする。
> ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/247329/3a5ba668-3dcd-0371-f48a-7edec822f680.png)
> 
> ※インストール中Python関連のエラーが発生した場合、EC2環境上でPythonのインストールの為pipをインストールしておく
> ```
> sudo yum install python-pip
> ```
> 
> ・インストールが終了したら、セットアップ完了。