LoginSignup
0
0

AWSのElastic Beanstalkを使って簡単なWEBアプリ開発環境を構築する(Apache+Tomcat+DB)

Last updated at Posted at 2023-10-12

初めに

WEBアプリの開発環境を一から構築するのは何かと手間がかかります。
AWSのElastic Beanstalkを使うとボタンをポチポチするだけで簡単に作成可能です。
開発や検証環境などちょっと試したいなといった場合にはとても便利ですので構築方法についてまとめました。

大まかな構築手順

  1. VPC
  2. Elastic Beanstalk
  3. DB (PostgreSQL)
  4. S3(EC2とのファイル送受信用)

構成図イメージ
image.png

1. VPCの構築

さっそくやってみましょう。

VPCの作成

作成したいリージョンを選択する。
サービスの「VPC」を検索し、「VPCを作成」を押下。
image.png

作成するリソース:VPCのみ
名前:適宜入力
IPv4 CIDR:適宜入力
⇒「VPCを作成」を押下。
image.png

インターネットゲートウェイの作成

VPCのダッシュボードより、「Internet gateways」を選択のうえ、「インターネットゲートウェイの作成」を押下。
image.png
image.png

名前タグ:適宜入力
⇒「インターネットゲートウェイの作成」を押下。
image.png

作成が成功したら「VPCへアタッチ」を押下。
image.png
アタッチしたいVPCを選択のうえ、「インターネットゲートウェイのアタッチ」を押下する。
image.png

サブネットの作成

VPCのダッシュボードより、「Subnets」を選択のうえ、「サブネットを作成」を押下。
image.png
image.png

VPC ID:先ほど作成したVPCを選択
image.png

サブネット名:適宜入力
IPv4 subnet CIDR block:適宜入力
⇒「サブネットを作成」を押下。
image.png

ルートテーブルの作成

先ほど作成したサブネットを開き、「ルートテーブル」を選択
image.png
「ルートテーブルID」を押下下する。
image.png

「ルートを編集」を押下する。
image.png

先ほど作成したインターネットゲートウェイをルートへ追加します。
送信先:0.0.0.0/0
ターゲット:先に作成した「インターネットゲートウェイ」を選択のうえ、「変更を保存」する。

image.png

2. Elastic Beanstalkの構築

サービスから「Elastic Beanstalk」を検索し、「環境を作成」を押下。
image.png

ステップ1:環境を設定

環境枠:ウェブサーバー環境
アプリケーション名:適宜入力
プラットフォーム:Tomcatを選択
image.png
image.png
プリセット:単一インスタンス (無料利用枠の対象)
image.png

ステップ2:サービスアクセスの設定

既存のサービスロールを使用を選択
EC2 キーペア:適宜作成
EC2 インスタンスプロファイル:次のステップで作成するロールを指定
image.png

ロールの作成

以前は、デフォルトでロールも作成されていましたが、セキュリティの強化により別途作成する必要があるようです。
https://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/iam-instanceprofile.html

image.png

サービスから「IAM」を検索し、「ロールを作成」を押下。
image.png
サービスまたはユースケース:EC2を選択
image.png

以下の3つを選択する。

AWSElasticBeanstalkWebTier
AWSElasticBeanstalkWorkerTier
AWSElasticBeanstalkMulticontainerDocker

image.png

image.png
⇒ロール名を適宜入力のうえ、「ロールを作成」を押下

ステップ3:ネットワーキング、データベース、およびタグをセットアップ - オプション

VPC:今回作成したVPCを選択
インスタンスの設定:今回作成したサブネットを選択
image.png

データベース:RDSのデータベースを作成する場合はここで設定する。(今回はスキップ)
image.png

ステップ4:インスタンスのトラフィックとスケーリングを設定

設定変更なし

ステップ5:更新、モニタリング、ログ記録を設定

ヘルスレポート:ベーシック(任意)
image.png

マネージド更新:非アクティブ(任意)
image.png

プロキシサーバー:Apache
image.png

ステップ6:レビュー

設定情報を確認し、問題なければ「送信」押下。

あとは、エラーが出ないように祈りながら待つ。
image.png

環境の概要のドメインをクリックすると・・・
image.png

WEBブラウザから初期ページが表示されれば成功!
image.png

EC2への接続確認

サービス「EC2」を検索し、今回作成されたEC2を選択する。

image.png

セキュリティグループのインバウンドルールにSSHの許可を追加する。
image.png
image.png
「SSH」を追加
ソースは適宜IPを絞るとよい。
image.png

EC2の「接続」より、
image.png

「EC2 Instance Connect」 より接続ボタンを押下。
image.png

無事に接続できました!
image.png

Elastic Beanstalkの操作

image.png
「アクション」から各操作を行えます。

  • アプリケーションサーバーを再起動:その名の通り
  • 環境を再構築:構築したElastic Beanstalk環境を一から再構築し直します。(EC2で作成したデータ消えます)
  • 環境を終了:構築したElastic Beanstalkのリソースを削除します。

Auto Scaling グループからの除外

この章の最後にAuto Scaling グループからの除外方法について記載します。
Elastic Beanstalkでは、自動でAutoScalingが作成されます。
便利ではあるのですが、EC2を一時的に停止したい時などは不便なので、除外してみます。

EC2のサービスから「Auto Scaling グループ」を選択し、Elastic Beanstalkにて自動作成されたグループを選択し開きます。
image.png

詳細タブのページ下部に「高度な設定」の項目があるので「編集」ボタンを押下
image.png

中断されたプロセス:Health Check にチェックをいれ「更新」ボタンを押下。
image.png

これで、EC2を停止しても新たなインスタンスは生成されません。

3. DB構築

DB構築は2通りあります。

  • 構築したEC2内にDBを構築する方法
  • RDSを利用する方法

構築したEC2内にDBを構築する方法

Amazon Linux 2023には、PostgreSQL15のパッケージが既に用意されているため、簡単にインストールは可能です。
手順は以下の通り。

  1. インストール
    sudo dnf install -y postgresql15-server
    
  2. 初期化
    sudo postgresql-setup initdb
    
  3. postgresユーザのパスワードを設定
    sudo passwd postgres
    
  4. サーバーを起動
    sudo systemctl start postgresql
    
  5. postgresユーザへ切り替え
    su - postgres
    
  6. データベース一覧を確認
    psql -l
    

以下が表示されれば成功。
image.png

S3の構築

最後にEC2とのファイルのやり取りをするために、S3を構築します。
サービスから「S3」を選択し、「バケットを作成」を押下。
image.png

設定画面にて、任意のバケット名を入力し、「バケットを作成」を押下。
image.png

これでS3の作成は完了です。
作成したS3を開き、「アップロード」ボタンから任意のファイルをアップロードできます。
image.png

このままだと、EC2からS3へのアクセス権限が無いため、ロールを追加します。
前ステップで作成したロールを開き、「許可の追加」から「ポリシーのアタッチ」を押下。
image.png
「AmazonS3FullAccess」を検索のうえ選択し、「許可を追加」
image.png

以上で構築は完了です。
S3のファイルをEC2へダウンロードするには、以下のコマンド「aws s3 cp」でできます。

aws s3 cp s3://{バケット名}/{パス} {コピー先のEC2ファイルパス} 

お疲れさまでした。

お掃除

一通り動作確認が終わったら後片付けをします。

  1. Elastic Beanstalkのアクションから「環境を終了」を選択し、リソースを削除する
  2. RDSでDBを構築した場合は、RDSのインスタンスを削除する
  3. 作成したVPCを削除する
  4. 作成したS3を削除する
0
0
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
0
0