AWS に Rails のアプリをデプロイする方法 ~ EC2 インスタンスに接続するまで

AWS に Rails のアプリをデプロイする方法 ~ EC2 インスタンスに接続するまで

link です。

AWS では Web アプリケーションをデプロイ、公開するサービスとして Amplify がありますが、 Ruby on Rails など対応していないフレームワークが存在しています。

その場合、 EC2 で用意した仮想マシン上に Web アプリケーションを展開して公開する必要があります。

今回は EC2 を利用して Rails のアプリをデプロイ、公開する方法の EC2 インスタンスに接続するまでを紹介します。

前提条件

  • Windows 11
  • WSL2(Ubuntu 22.04)
  • Amazon Linux 2023

EC2 インスタンス作成

まず、 EC2 インスタンスを作成します。

EC2 のトップ画面からインスタンス (実行中) をクリックして、インスタンスを起動をクリックします。

リソース

リソース

インスタンスを起動

インスタンスを起動

マシンイメージを Amazon Linux 2023 AMI に設定します。

マシンイメージ

マシンイメージ

新しいキーペアの作成をクリックします。

新しいキーペアの作成

新しいキーペアの作成

適当なキーペア名を指定して、キーペアのタイプRSAプライベートキーファイル形式.pem に指定します。ここで作成したキーペアは後で利用しますので保存しておいてください。

キーペアを作成

キーペアを作成

設定完了後、インスタンスを起動をクリックします。

インスタンスを起動

インスタンスを起動

EC2 のインスタンスの状態が「実行中」になったら起動完了です。

実行中インスタンス

実行中インスタンス

Elastic IP の割り当て

次に IP アドレスの固定化とインスタンスの外部公開するために Elastic IP を割り当てます。

まず、 EC2 の Elastic IP アドレスに移動し、Elastic IP を割り当てるをクリックします。

Elastic IP アドレス

Elastic IP アドレス

インスタンスを作成したリージョンのネットワークボーダーグループになっていることを確認して、割り当てをクリックします。

Elastic IP を割り当てる

Elastic IP を割り当てる

Elastic IP アドレスが正常に割り当てられたことを確認します。

正常に割り当てが完了

正常に割り当てが完了

続いて、割り当てた IP アドレスを EC2 インスタンスと関連付けします。

IP アドレスを選択してElastic IP アドレスの関連付けをクリックします。

アクション選択

アクション選択

インスタンスを選択して、関連付けるをクリックします。

Elastic IP アドレスの関連付け

Elastic IP アドレスの関連付け

これで Elastic IP アドレスの関連付けが完了です。

関連付け完了

関連付け完了

インバウンドルールの設定

続いて、インバウンドルールを設定して、外部からインスタンスへアクセスできるようにします。

EC2 インスタンスのセキュリティタブからセキュリティグループをクリックします。

セキュリティタブ

セキュリティタブ

インバウンドのルールを編集をクリックします。

インバウンドルール

インバウンドルール

ルールを追加をクリックし、タイプを HTTP 、 IP アドレスを 0.0.0.0/0 を設定してルールを変更をクリックします。

インバウンドのルールを編集

インバウンドのルールを編集

編集完了

編集完了

これで IP 周りの設定は完了です。

EC2 インスタンスに SSH で接続する

起動した EC2 インスタンスに SSH で接続してみます。

SSH 接続には作成したキーペアの pem ファイルが必要になりますが、この pem ファイルを使うには chmod コマンドで権限を設定しておく必要があります。

そこで chmod コマンドを使うために WSL2 上の Ubuntu を利用します。

まず、ダウンロードした pem ファイルを WSL2 上の Ubuntu に設置します。

sudo chmod 600 Rails.pem で pem ファイルに読み出し許可と書き出し許可の権限を設定すれば完了です。

後は ssh -i Rails.pem ec2-user@IPアドレス コマンドで接続するだけです。

IP アドレスを EC2 インスタンスの Elastic IP に指定すれば接続できます。

以下のように表示されれば接続成功です。

インスタンスに接続
$ sudo chmod 600 Rails.pem
$ ssh -i Rails.pem ec2-user@IPアドレス
   ,     #_
   ~\_  ####_        Amazon Linux 2023
  ~~  \_#####\
  ~~     \###|
  ~~       \#/ ___   https://aws.amazon.com/linux/amazon-linux-2023
   ~~       V~' '->
    ~~~         /
      ~~._.   _/
         _/ _/
       _/m/'
[ec2-user@ip-IPアドレス ~]$

参考サイト

まとめ

今回は EC2 インスタンスに接続するまでを紹介しました。

次回は接続できるようになった EC2 インスタンスの内部に Rails の動作に必要なものをインストールして、起動させた Web アプリケーションに接続するまでをやります。

それではまた、次の記事でお会いしましょう。

linkohta