こんにちは、jjj0331です。
今回は、AWSを利用した環境構築についてご紹介します。この記事では、VPCの作成から始め、EC2インスタンスのセットアップ、「Git」「Ruby(Rails)」「Next.js」「Nginx」のインストール方法をステップバイステップで解説します。
事前の準備として、AWSにログインできる状態にしておいてください。
1:VPCの作成
VPCとは、AWS内に自分専用の仮想ネットワークを作成できるサービスです。
AWSの検索バーで「VPC」と入力し、「VPCを作成」をクリックして作成画面に進みます。
「作成するリソース」では「VPCのみ」を選択し、VPCの名前を入力します。「IPv4 CIDR ブロック」は「手動入力」を選択し、CIDR範囲を10.0.0.0/24として指定します。「IPv6 CIDR ブロック」は「なし」を選択し、最後に「VPCを作成」をクリックしてVPCを作成します。
2:サブネットの作成
次に、VPC内にサブネットを作成します。「VPC」→「サブネット」→「サブネットの作成」を選択し、作成画面に進みます。
作成したVPCに対して、合計4つのサブネットを作成します。これらは、private-subnetとpublic-subnetを2つずつ作成します。
各サブネットには「サブネット名」と「アベイラビリティーゾーン」(例: ap-northeast-1a, ap-northeast-1c)を設定します。IPv4 CIDR ブロックは以下の範囲で設定します。
サブネット1: 10.0.0.0/26
サブネット2: 10.0.0.64/26
サブネット3: 10.0.0.128/26
サブネット4: 10.0.0.192/26
※サブネット1とサブネット2は「パブリックIPアドレスの自動割り当て」を有効にすることを忘れないでください。
※VPC内に4つのサブネットを構築したのは、後々構築するRDSやロードバランサーで使用します。
3:インターネットゲートウェイの作成
次に、インターネットゲートウェイ(IG)を作成します。「VPC」→「インターネットゲートウェイ」→「インターネットゲートウェイの作成」を選択します。
インターネットゲートウェイを作成したら、先ほど作成したVPCにアタッチします。これにより、VPCがインターネットと接続できるようになります。
4:ルーティングの設定
VPCに対してルーティングを設定します。「VPC」→「ルートテーブル」→「作成したVPC」→「ルートの編集」を選択し、「0.0.0.0/0」からの通信を「インターネットゲートウェイ(IG)」にルーティングする設定を追加します。
その後、「ルートテーブル」内の「サブネットの関連付け」メニューから、作成したサブネットのうち2つを選択して関連付けを行います。
5:セキュリティーグループの作成
次に、セキュリティグループを作成します。以下の設定を行います:
- SSH: TCPポート22、アクセス元を自分のPCのIPに限定
- HTTPS: TCPポート443、すべてのIPアドレスからのアクセスを許可(0.0.0.0/0)
- HTTP: TCPポート80、すべてのIPアドレスからのアクセスを許可(0.0.0.0/0)
6:EC2の作成
「EC2」→「インスタンスの起動」から、EC2インスタンスを作成します。
アプリケーションおよびOSイメージ (Amazon マシンイメージ)
[Amazon Linux 2023 AMI]
インスタンスタイプ
[t2.small]
ストレージの設定
[25GiB以上に設定してください]
ネットワーク設定でVPCを選択し、作成したセキュリティグループを適用してください。
※EC2の詳細な設定については、別途学習してください。
7:EC2にログインおよび初期設定
セキュリティーグループで「SSH:TCP(22)→自分のPCのIPからのみアクセス可能に設定」に設定しているので
SSHでログイン可能してください。
sudo yum update -y
sudo yum install git -y
次にRubyをインストールする準備を始めます。
sudo yum install -y gcc openssl-devel libyaml-devel libffi-devel readline-devel zlib-devel gdbm-devel ncurses-devel
sudo yum install -y nodejs
8:アプリの起動に向けて
--Next.jsのルートディレクトリに移動して
npm init -y
npm install
sudo npm run dev -- -H 0.0.0.0 -p 80
--Railsのルートディレクトリに移動して
bundle install
ちなみに、私のGitのアプリのRubyのVersionは「3.2.3」で
EC2にインストールしたVersionが「3.3.3」なので
--Railsのルートディレクトリに移動して
echo "3.3.3" > .ruby-version
を実行しました。
次にRDSで作成したデータベースに接続するようにRailsの設定を変更する手順を以下に示します。
※RDSの説明は省略します。
production:
adapter: mysql2
encoding: utf8
pool: 5
username: your_rds_username
password: your_rds_password
host: your_rds_endpoint
database: your_database_name
port: 3306
gem 'mysql2', '>= 0.4.4'
再度に
bundle install
まとめ
今回はここまでにしておきます。
記事を作成時に私の頭の中で整理できていることを書きましたが、
Railsのシークレットキーの扱いや今回のアプリではAPIサービスと利用しており
そのAPIキーを設定する方法があるのですが、内容を文章にできるほど理解できておりませんので、
しばらくお待ちください。
以上で、AWSにEC2を構築しそのサーバーに「Git」「Next.js」「Rails」をインストールする方法を解説しました。
(「Rails」の起動はまだできませんが。。。)
次回は
- 各種のシークレットキーの設定方法
- HTTPS通信のためのロードバランサー
- Nginxnの設定方法など
を記事にしていきます。