~Ruby]RailsアプリをAWSで公開する(Rails+Unicorn+Nginx)RubyTwitterFacebookはてブPocketLINE2019.11.03railsで作った簡単なチャットアプリをAWSのEC2+RDSで公開してみました。今回はその手順を自分の備忘録にメモ。Cloudの略で、AWS上の中で自分の使う領域となります。この自分の領域の中に、サーバーやDBなど、アプリケーションを動かすにの必要なものを作っていきます。VPCを作る際にハードウェアを占有するかどうかを選択できる(占有すると追加料金がかかる)サブネットの作成サブネットとは、通信グレープ分けしてくれるものです。RDSでサブネットグループを作る必要があるので、ここで2つのサブネットを作成します。作成したVPCはAWS内での占有領域ですので、外部との接続を行う際は、その領域から外に出ていかなければなりません。その入り口となるのが、インターネットゲートウェイです。通信に関するルールブックみたいなものです。Table_for_アプリ名このルートテーブルを、VPCと紐付けるそしてこのルートテーブルに、「インターネットゲートウェイをルーティングするというルール」を記載していきます。作成したルートテーブルを選択した状態で、下タブの「ルート」を選択し、「別ルートを追加」を選択します。Gateway_for_アプリ名サブネットとルートテーブルの関連付け1.「アプリ名-Subnet-1a」を選択2.下部のタブの「ルートテーブル」を選択3.「編集」4.「変更先」を「Tableforアプリ名」に変更5.「保存」6.「アプリ名-Subnet-1c」を選択2-5と同様の操作を行うセキュリティーグループの作成セキュリティグループは、セキュリティーに関するルールを記載したものです。「この通信は許可」「この通信は拒否」といった具合にグループ毎にルールを設定できます。設定には「インバウンドルール」「アウトバウンドルール」という2種類の項目が存在します。「ルールの保存」これで、AWS側の下準備が完了です。Serviceの略であり、簡単に言ってしまえばDBのことです。RDSインスタンスを作成に必要な「サブネットグループ」を作成していきます。DBインスタンスの起動を選択します。はじめに「本番用のDBかどうか」が聞かれます。無料枠で抑えたい方はテンプレートで「無料利用枠」を選択しましょう。Cloudの略で、クラウド上に存在する仮想のサーバーです。Top→EC2→インスタンス→インスタンスの起動を選択します。はじめに、AMIを選択する画面へと移行します。Imageの略で、今作成しようとしているパソコン(EC2)のタイプを選択するものです。Linuxを利用していきましょう。次は、EC2インスタンスのタイプ選択です。「無料枠」のインスタンスタイプを選択して次の設定をします。インターネットに接続を行う場合、どのサーバーも例外なくグローバルIPというものを持たなければなりません。先ほど作成したEC2インスタンスにも作成時にパブリックIPが自動で割り振られるのですが、サーバーを再起動させるたびにこのパブリックIPが変わってしまうという欠点を持っています。そこで、ElasticIPを使用し、先に固定のIPアドレスを他に使用されないように押さえてしまい、それをパブリックIPとしてEC2インスタンスに紐付けることで、インスタンスの起動、停止に関わらず常に同じIPで通信をしようというものです。IPから確認できます。接続できない場合は、「セキュリティグループ」の「インバウンド」で、自分の通信アドレスでsshを許容してあげてください。セキュリティー強化のため、ec2-userからアクセスできないようにします。ファイルの末尾に追記します。ailsアプリを配置する作業用のディレクトリを作成します。オーナーを変更し、パスワードを入力します。以下のコマンドを実行し、インストールします。http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpmインストールします。mysql-utilitiesnode.jsをインストールします。--enablerepo=epelrbenvをインストールします。設定ファイルに以下を記載します。www配下にRailsを格納するフォルダを作成します。設定ファイルを作成します。