はじめに
こんにちは。みどりがめです🐢
この記事では、Spring BootアプリケーションをAWS環境にデプロイするまでの概要を記載していきます。本記事の内容でざっくりと全体像を掴むことで大まかなフローを掴むことはできると思います。
本記事は2編構成で、前編ではAWS環境の構築を行っていきます。
後編は下記よりご確認ください。
また今後、各構築手順についてハンズオンで記載した記事を作成していきたいと思います。
構築概要
本記事では、以下のインフラ図の状態を目指して構築していきます。あくまでサンプルですのでドメインは習得せずに、パブリックIPアドレスでそのままアクセスします。
ざっくりとした構築手順としては以下の通りで、前編では赤字部分を記載しています。
・VPCの構築
・EC2の構築
・RDSの構築
・EC2へのミドルウェアのインストール(Apache,Tomcat,postgresqlなど)
・Springアプリケーションのデプロイ
VPCの構築
VPCの構築は大きく4つのステップから成ります。
- VPCを作成する。
AWSマネジメントコンソール→VPC→VPCの作成よりVPCを作成します。
適当な名前を入力し、CIDRブロックにIPアドレスの範囲を指定します。
(今回は10.0.0.0/16で作成しました。)その他はデフォルトのまま、「作成する」ボタンを押下します。
- サブネットを作成する。
VPCを小さく分割して使いやすくするのがサブネットです。上述したインフラ図に従って「パブリックサブネット」、「プライベートサブネット」を作成します。
VPCには上記で作成したVPCを紐付けます。CIDRブロッグは10.0.10.0/24(パブリックサブネット)、10.0.20.0/24(プライベートサブネット)としました。 - インターネットゲートウェイの作成
パブリックサブネットを外部のインターネットに接続できるようにするための窓口の役割を担います。VPCダッシュボードからインターネットゲートウェイを作成していきます。作成したインターネットゲートウェイを作成したVPCにアタッチ(紐付け)します。状態がattachedになっていれば、紐付けが完了しています。 - ルーティングを設定する。
パブリックサブネットからインターネットに接続するための設定を行います。
VPCダッシュボード→ルートテーブルの作成からルートテーブルを作成します。サブネットの関連付けから、パブリックサブネットを選択して、パブリックサブネットとの関連付けを行います。
ルートタブ→ルートの編集からルーティングを編集します。(送信先:0.0.0.0/0、ターゲット:作成したインターネットゲートウェイ)これを設定することで、ターゲットがlocal(10.0.0.0/16)以外の場合、インターネットゲートウェイに通信するようになります。
EC2の構築
作成したVPCのパブリックサブネットの中にウェブサーバー(EC2)を設置していきます。
AWSマネジメントコンソールからEC2を選択して、EC2インスタンスの作成します。
設定する項目のついては以下のように設定しました。
- AMIの決定
AMIはインスタンツ起動に必要な情報が入ったOSのようなものです。
今回は、Amazon Linux2を使用しました。 - インスタンスタイプの選択
インスタンスタイプはサーバーのスペック(CPU,メモリ,ストレージ等)を定義したものとなります。今回はテスト用ということもあり、無料利用枠で利用できるt2.microを使用しました。パフォーマンスは低いですが、テストとしては十分です。 - インスタンスの詳細の設定
インスタンスの数やネットワークやサブネットとの関連付けを行います。
インスンタンス数は1、ネットワークは作成したVPC、サブネットは作成したパブリックサブネットを選択します。また、インターネットからアクセスするために、自動割り当てパブリックIPを有効にします。 - ストレージの設定
サイズは8GB、ボリュームタイプは汎用SSDを選択しました。 - セキュリティグループの設定
セキュリティグループを作成することで、サーバーに対してSSHできるIPを制限することができます。今回はデフォルトの状態(0.0.0.0/0)のまま作成しました。 - SSHキーペアの設定
インスタンスにログインするときに使用します。ダウンロードして、ローカル環境に保存しておきましょう。また、再ダウンロードすることはできないので厳重に管理するようにしましょう。
RDSの構築
- セキュリティグループの作成
マネジメントコンソールからVPC→セキュリティグループの作成から設定します。今回は、ウェブサーバー、postgresqlからのみアクセスできるように設定を行います。インバウンドのルールに設以下の内容を設定しました。
タイプ:postgresql
ポート:5432
ソース:EC2作成時のセキュリティグループと紐付けを行います。 - サブネットグループの作成
DBインスタンス作成のためには、VPC内でDBサブネットグループを指定する必要があります。
DBサブネットグループには、特定のリージョン内に2つのアベイラビリティゾーンにサブネットが必要です。 - DBインスタンスの作成
メニューからRDS→DBインスタンスの起動を押下し、DBインスタンスを作成します。
エンジンタイプにはPostgreSQLを使用し、DBインスタンスサイズは開発/テストを設定しました。VPC、アベイラビリティゾーン、VPCセキュリティグループを作成したものと紐付けて作成していきます。また、バックアップやログ、拡張モニタリングなどの設定は行わず、極力、お金がかからないように設定していきました。
DBが作成中から利用可能となるまでは5分ほどかかりました。
終わりに
以上で本記事は終了となります。お疲れ様でした。最後までご覧いただきありがとうございました。
本記事の続きを記載している後編も是非ご覧ください。
本記事作成までの学習として、下記のUdemyの教材に大変お世話になりました。
手順だけではなく、サーバー、ネットワーク関係の基礎知識も説明してくれておりおすすめです。
引き続き、プログラミングについて定期的に発信していきますのでよろしくお願いします!
また、もしよろしければtwitterもフォローしていただけると嬉しいです!🐢
コメント