概要
- VPCの作成
- サブネットの作成(パブリックのみ)
- インターネットゲートウェイの設定
- ルートテーブルの設定
- セキュリティーグループの作成
- DBの設置(今回は設置しない)
- EC2インスタンスの作成
- Elastic IPの設定
- デプロイ作業
注意
- EC2インスタンス内にDBを構築している場合の設定になります。
- RDBを設置する場合にはそもそもの構成が違うため、プライベートサブネット・エンドポイント・IAMロールの設定などが必要となります。
VPCの作成
- サイダーは推奨の/16で作成。
-
IAMロールの権限設定
とCloudWatchの料金アラート設定
を怠らないこと。
サブネットの作成
- サイダーは推奨の/24で作成。
- AZを1aに設定。
インターネットゲートウェイの設定
- VPCへのアタッチを忘れずに!
ルートテーブルの設定
- フルオープン
- サブネットへのアタッチを忘れずに!
セキュリティグループの作成
- インバウンド:SSH, HTTP, HTTPS
- アウトバウンド:フルオープン
DBの設置
- RDBは設置ぜず、EC2インスタンス内に設置する。
- RDBは有料かつ
Auroraは非常に高額
なので安易に設置しない。
EC2インスタンスの作成
- 無料枠内で作成
Elastic IPの設定
-
アタッチしていない場合には料金が発生
するので注意。
デプロイ作業
EC2インスタンスの初期設定
- AWS CLIのダウンロード
- インスタンスへアクセス
% mv pemファイルのディレクトリを記述 ~/.ssh
% cd .ssh/
.ssh % chmod 400 ~/.ssh/pemファイル名.pem
.ssh % ssh -i pemファイル名.pem ec2-user@パブリックIPを記述
.ssh % ssh -i ~/.ssh/pemファイル名.pem
- 操作用ユーザーの作成(下記AWS公式ページ前段参照)
https://aws.amazon.com/jp/premiumsupport/knowledge-center/new-user-accounts-linux-instance/ - インスタンスの初期設定
- いろいろな方々の資料を参考にしました。必要に応じて取捨選択可能なようです。
[ec2-user|~]$ sudo yum install \ git make gcc-c++ patch \openssl-devel \ libyaml-devel libffi-devel libicu-devel \libxml2 libxslt libxml2-devel libxslt-devel \zlib-devel readline-devel \
mysql mysql-server mysql-devel \ImageMagick ImageMagick-devel \epel-release
- sshを用いたインスタンスへのアクセス(下記AWS公式ページ後段参照)
https://aws.amazon.com/jp/premiumsupport/knowledge-center/new-user-accounts-linux-instance/ - 以降、必要に応じてミドルウェア等をダウンロードする。
- secret_key_baseの設定
注意事項
- パブリック IPv4 DNSが表示されていない場合はVPCの設定を修正すること。
- インスタンスに繋がらない場合はセキュリティグループのSSHインバウンドに誤りがないか確認。
個人的なもの
- データベーステーブルのValueが
latin1
になっていないか特に注意。また、[client]
default-character-set=utf8
[mysql]
default-character-set=utf8の順番で書かないとなぜかDBにログインできないので注意。 - DBはDokerとAWSで記述を変更する必要がある。
忘れずに。
default: &default
adapter: mysql2
encoding: utf8
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
username: root
password: password
socket: /tmp/mysql.sock
# docker用
# host: db