LoginSignup
1
3

More than 1 year has passed since last update.

EC2とRDSでバックエンド環境を構築してみた

Last updated at Posted at 2022-06-01

こちらの記事の続きです。

今回はバックエンド環境のセキュリティグループの設定および、
EC2、RDSそれぞれの実行環境を構築します。

構成(フロントエンド含む)

EC2

Webアプリのバックエンドを実行します。
今回はJavaのjarファイルを常時実行し、フロント側から実行されたAPIを処理します。
RDSに構築されたデータベースとデータをやりとりします。
今回はSpringBootで実装しています。
なお、HTTPS接続したいために、SSLを有効にしています。
その際、今回はテスト環境のため自己署名証明書を使っています。

RDS

Webアプリのデータベースを担います。
今回はPostgreSQLです。

S3

Webアプリのフロントエンドを配置します。
静的ウェブサイトとして設定し、エンドポイントにアクセスすることでフロント側の画面を表示します。
今回はVue.jsを用いて画面を作成します。

セキュリティグループの設定

EC2

AWSコンソール画面より、EC2 > インスタンス と進み、インスタンスを選択し、
セキュリティタブよりセキュリティグループを選択します。
セキュリティグループの設定画面に移行するので、インバウンドを設定します。
今回はHTTPS接続で8443ポートを使うので、8443ポートをインバウンドルールに追加しました。

RDS

AWSコンソール画面より、RDS > データベース と進み、接続とセキュリティタブよりVPCセキュリティグループを選択します。
セキュリティグループの設定画面に移行するので、インバウンドを設定します。
タイプはPostgreSQLを選択しました。自動でTCP、ポート5432が選択されます。
EC2からのみ接続可能とするため、ソースにはEC2のプライベートIPアドレスを設定しました。

実行環境構築

EC2

※ jarファイルは作成済みであることが前提です
※ データベースの接続先をRDSのエンドポイント向けにしておきます

Javaを実行するために、EC2にJavaをインストールします。
インストール可能なJava一覧を表示します。

yum search java

Javaをインストールします。(少々古いですが、下記はJava8です)

sudo yum install -y java-1.8.0-openjdk.x86_64

以下でインストールを確認します。

java -version

SCPコマンドにてjarをアップロードします。(ローカル環境にて実行)
SSLの場合は証明書も配置します。

scp -i [pemファイル] [対象のjarファイル] ec2-user@[EC2のIP]:~

アップロードしたjarファイルを実行します。
SSH接続が切れても実行したいため、バックグラウンドで実行します。

nohup java -jar [jarファイル] &

バックグラウンドで実行されているモジュールの確認は以下で行います。

ps x

停止する場合は、以下でkillします。

kill [PID番号]

RDS

RDS上にデータベースを構築します。
EC2からRDSのpostgreSQLに接続するために、EC2にpsqlをインストールします。
EC2上で以下コマンドを実行し、インストール可能なモジュール一覧を表示します。

yum list | grep postgre

psqlをインストールします。

sudo yum install postgresql.x86_64

インストール確認をします。

psql --version

postgreSQLに接続します。

psql --host=[RDSエンドポイント] --port=5432(postgreSQLのポート) --username=[ユーザ名] --password --dbname=[データベース名]

接続されたら、SQLを実行し任意のデータベースを構築します。

db=> create table ... などなど

上記でバックエンド環境が構築できました。
EC2のインバウンドで許可されたIPから、EC2のエンドポイントに向けAPIを実行することができます。

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3