ReactとNode.jsでアプリケーションを作りました。
実際にAWSを用いて環境構築して、動くようにしたので、どのようなネットワークを作ってどのような技術を用いてデプロイしたのかを書いていきます。
※どのようなネットワークを作ったかを重点的に説明します。技術の詳しい説明はまた別の記事で書きます。
①まずネットワークですが、VPCを用いてプライベートサブネットとパブリックサブネットを2つずつ、プライベートサブネットとパブリックサブネットを1つずつペアにして異なるリージョンに配置した。
②インターネットゲートウェイとパブリックサブネットを紐づけた。
③NATゲートウェイを各パブリックサブネットに配置した。
④プライベートサブネットにSSHでアクセスするための踏み台サーバをEC2を用いてパブリックサブネットに配置した。
⑤各プライベートサブネットに1台ずつNodeサーバ用のEC2インスタンスを作成し、踏み台サーバ経由でnginxやpm2等をインストールし、nodeサーバを使える状態にした。
⑥ELBを配置し、各プライベートサブネットに接続するようにした。
⑦RDB(MySQL)をプライベートサブネットに配置し、Nodeサーバと接続できるようにした。
⑧IAMでS3への権限をEC2インスタンスに付与した。
⑨AmazonS3とCloud Frontの静的ホスティング機能を用いてReactアプリケーションをデプロイした。
⑩ReactアプリとNodeサーバが連動してることを確認した。S3のエンドポイントからアクセスできるようになった。
⑪Route53を用いて独自ドメインを取得した。
⑫Route53のDNS設定で、取得したドメインとS3のエンドポイントを紐づけて、ドメイン経由でアプリにアクセスできるようにした。
以上です。