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 アドレスが正常に割り当てられたことを確認します。
続いて、割り当てた IP アドレスを EC2 インスタンスと関連付けします。
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 アプリケーションに接続するまでをやります。
それではまた、次の記事でお会いしましょう。