- AWS上に「家(サーバー)」を建てる
なぜやるか: インターネット上に自分専用のコンピューターを確保するためです。
💻 操作場所:AWS CloudShell(ブラウザ)
# AMI(設計図)を取得し、インスタンス(本体)を起動
AMI_ID=$(aws ec2 describe-images --owners amazon --filters 'Name=name,Values=amzn2-ami-hvm-2.0.*-gp2' --query 'reverse(sort_by(Images, &CreationDate))[:1].ImageId' --output text --region ap-northeast-1)
INSTANCE_ID=$(aws ec2 run-instances --image-id $AMI_ID --count 1 --instance-type t2.micro --key-name furima-key --region ap-northeast-1 --query "Instances[0].InstanceId" --output text)
# 固定IPを取得して紐付け
ALLOCATION_ID=$(aws ec2 allocate-address --region ap-northeast-1 --query 'AllocationId' --output text)
aws ec2 associate-address --instance-id $INSTANCE_ID --allocation-id $ALLOCATION_ID --region ap-northeast-1
# セキュリティグループ作成と、80番(HTTP)・22番(SSH)の開放
GROUP_ID=$(aws ec2 create-security-group --group-name mysg --description "My security group" --output text --query 'GroupId' --region ap-northeast-1)
aws ec2 authorize-security-group-ingress --region ap-northeast-1 --group-id $GROUP_ID --protocol tcp --port 80 --cidr 0.0.0.0/0
aws ec2 authorize-security-group-ingress --region ap-northeast-1 --group-id $GROUP_ID --protocol tcp --port 22 --cidr 0.0.0.0/0
aws ec2 modify-instance-attribute --instance-id $INSTANCE_ID --groups $GROUP_ID
2.サーバーへログインする
なぜやるか: 建てた家の中に入って設定を始めるためです。
💻 操作場所:自分のPCのターミナル
# ダウンロードした鍵があるディレクトリへ移動(例:ダウンロードフォルダ)
cd ~/Downloads
# 秘密鍵を使ってサーバーへ潜入!
ssh -i furima-key.pem ec2-user@(設定した固定IP)
3.サーバーに必要な道具を揃える
ここからは、ログイン後の「サーバーの中」での操作になります。 左側の表示が [ec2-user@ip-... ~]$ になっていることを確認しましょう。
💻 操作場所:サーバーの中(自分のPCから接続中)
# システムを最新にし、Gitや画像処理ライブラリ等を一括導入
sudo yum -y update
sudo yum -y install git make gcc-c++ patch libyaml-devel libffi-devel libicu-devel zlib-devel readline-devel libxml2-devel libxslt-devel ImageMagick ImageMagick-devel openssl-devel libcurl libcurl-devel curl
4.rbenvで「Ruby 3.2.0」をインストール
なぜやるか: アプリを動かすためのエンジンを載せる工程です。
💻 操作場所:サーバーの中(自分のPCから接続中)
# rbenvとプラグインの導入
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
# パスを通す(どこからでもrbenvを呼べるようにする)
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
source .bash_profile
# Ruby 3.2.0のインストール(5〜10分かかります)
rbenv install 3.2.0
rbenv global 3.2.0
# 最後に確認
ruby -v
5.データベース(MariaDB)の構築
なぜやるか: Railsアプリが商品情報やユーザー情報を保存するための「倉庫」をサーバー内に作るためです。
💻 操作場所:サーバーの中(鳥のマークの画面)
[ec2-user@ip-... ~]$ となっていることを確認してください。
# ① MySQL(MariaDB)本体と、Railsとの接続用パッケージを導入
sudo yum -y install mariadb-server mariadb-devel
# ② データベースを起動し、自動起動設定を行う
sudo systemctl start mariadb
sudo systemctl enable mariadb
# ③ 状態確認(Active: active (running) と出ればOK)
sudo systemctl status mariadb
🔐 データベースの初期セキュリティ設定
なぜやるか: 初期状態はパスワードが空で危険なため、自分専用の「鍵」をかける必要があります。
sudo /usr/bin/mysql_secure_installation
進め方のポイント:
最初は何も打たずに Enter
Set root password? に Y
自分で決めたパスワードを2回入力(※画面には表示されません)
その後の質問はすべて Y で答えれば完了です!
6.Node.js のインストール
なぜやるか: Rails 7系でJavaScriptをブラウザが読める形に変換(コンパイル)するために必須な実行環境だからです。
💻 操作場所:サーバーの中(自分のPCから接続中)
カリキュラムの旧バージョン(v14)ではエラーが出たため、今回は安定版の v16 を採用しました。
# ① Node.js v16 の設定を読み込む
curl -sL https://rpm.nodesource.com/setup_16.x | sudo bash -
# ② 本体をインストール
sudo yum install -y nodejs
# ③ バージョン確認
node -v
# 出力例: v16.20.2
7.動作確認(ここまでのまとめ)
これで、サーバーの中に以下の3大エンジンが揃いました。
Ruby 3.2.0(本体)
MariaDB(倉庫)
Node.js v16(JavaScript実行環境)
ここまでの設定が完了すれば、いよいよGitHubから自分のソースコードを連れてくる「デプロイ」の準備が完了です!