AWS Cloud9にRuby on Railsの環境構築する

#01.はじめに
Ruby on Railsを学ぶ中で、作成したWebアプリケーションを公開する方法が知りたくなった。
今回の記事はCloud9にRuby on Railsの環境構築する手順を残す。
また、ついでにgithubとの連携もする。
最終的にはCloud9で開発したアプリをEC2にデプロイをするためにはどうすればいいのかを学んでいく。

#02.Cloud9の環境構築
cloud9でruby on railsを使ったWEBアプリ開発を進められるように、環境設定をする。
##cloud9の立ち上げ
AWSのコンソールにログインし、cloud9サービスを開く。
Create enviromentをクリックして、１つ環境を用意する。
![スクリーンショット 2021-01-29 16.30.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/955833/11daa7fb-0009-b518-4298-82c00bfd2fcd.png)

##ソフトウェアの導入
cloud9のSSHターミナル画面にコマンドを入力していく。

+ rubyのバージョン切替ソフトウェア：RVM（rvm 1.29.8）
+ ruby：2.5.1　※バージョンはシビア
+ gem：3.0.8
+ rails：5.2.1　※バージョンはシビア

###Rubyのインストール
```bash
sudo yum update
```

こちらでrvmのバージョンを確認

```bash
rvm -v
```

2.5.1がなければ以下で、rubyをインストール

```bash
rvm install 2.5.1
```

インストールされているか確認

```bash
rvm list
```

2.5.1をデフォルトで利用する設定

```bash
rvm --default use 2.5.1
```

再度、rubyのステータスを確認

```bash
rvm list
```

rubyのバージョンを確認する

```bash
ruby -v
```

###railsのインストール
下記のコマンドでrailsがインストールされていないことを確認

```bash
rails -v
```

gemがインストールされているか確認。バージョンは3.0.8だった。

```bash
gem -v
```

gemでrailsをインストールする。（ドキュメントをインストールしない）

```bash
gem install rails -v 5.2.1 -N
```

インストールされたか確認

```bash
rails -v
```

#03.新規プロジェクトの作成
今回はミニQ＆Aのサイトを作ってみるが、実際のコード内容は省略する。
プロジェクト名はqandaとする。

###プロジェクト作成
```bash
rails _5.2.1_ new qanda
```

必要なファイルが作成されているかを確認

```bash
ls
cd qanda/
ls
```

###gemのsqlite3を明示的に指定
1.qandaプロジェクトフォルダ直下のGemfileを開く
2.gem 'sqlite3'の行に対して、変更を加える

```
　変更前：gem 'sqlite3'
　変更後：gem 'sqlite3', '~> 1.3.6'
```

3.qandaプロジェクトフォルダに移動した状態で、gemをアップデートする。

```bash
bundle update
```

4.データベースの作成をする。

```bash
rails db:create
```

###起動を確認
qandaプロジェクトフォルダに移動した状態で、コマンドを実施

```bash
rails s
```

preview Runnning Applicationでrailsの起動画面を確認
![スクリーンショット 2021-01-29 17.20.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/955833/8a397776-9ad4-a72f-97e2-717a2ce28e9a.png)

以下の画面が表示されれば、うまく起動している
![スクリーンショット 2021-01-29 17.19.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/955833/f1d602df-3c67-0191-9bb4-c26f29a2593d.png)

ここからゴリゴリとアプリを作っていきます！！

#04.githubとの連携
作ったアプリをgithubにpushするまでの手順を記載する。

##githubの登録
githubでアカウント登録を実施する。今回は既にあるアカウントを利用する。
https://github.co.jp/

##cloud9とgitの連携
###ローカルリポジトリを作る
cloud9には既にgitがインストールされているので、それを使っていく。
まずは、バージョンを確認する。git version 2.23.3と確認できた。

```bash
git --version
```

名前やアドレスを登録していく。またエディタはvimとする。

```bash
git config --global user.name "＜名前＞"
git config --global user.email "＜メールアドレス＞"
git config --global core.editor vim
```

上記の設定を確認する。

```bash
git config --list
もしくは
cat ~/.gitconfig
```

ローカルリポジトリを作成する。なお、実施するディレクトリはqandaプロジェクトフォルダとする。

```bash
git init
```

作成されたローカルリポジトリを確認。objectsとconfigが大事です。

```bash
ls .git/
```

今つくったファイルを全てコミットしていく

```
git add -A
git commit -m "fitst commit"
```

###リモートリポジトリを作成する
githubのダッシュボードで、リポジトリを作成する。
リポジトリ名は「qanda」とする。

###cloud9のSSH認証用の公開鍵をgithubに登録する。
cloud9のターミナルでコマンドを入力していく。
最後のlsコマンドで、id_rsa.pubが作成されていることを確認。

```bash
cd ~/.ssh
ssh-keygen
※上記のコマンドで、パスワード入力を求められるが全てenterで通す。

ls -ltr
```

公開鍵の中身を表示して、全てコピーする。（ssh-rsaも含める）

```bash
cat ~/.ssh/id_rsa.pub
```

githubの「Setting」から「SSH and GPG keys」を選んで、公開鍵情報を登録する。
![スクリーンショット 2021-01-30 0.17.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/955833/0d83c5f3-54f6-486f-d02d-a1e38cc2634e.png)

###githubにpushする
pushするときに毎回、git@〜を入力するのがめんどくさいので、
先ほど作ったリモートリポジトリをoriginとして登録しておく。
なお、ディレクトリはqandaプロジェクトファイルにいる。

```bash
git remote add origin git@github.com:＜名前＞/＜リポジトリ＞
```

orginにpushしていく。

```bash
git push origin master
```

githubのリポジトリを確認すると、qandaプロジェクトのファイルが無事pushされていることが確認できる。

#05.最後に
とりあえずこれで、初期設定が完了した。
アプリの作成を実際にしたのちに、EC２へのデプロイをしていく。
あとこれらの設定が、cloudformationでうまく自動化できないかな・・・