自分のRailsアプリをAWS上で公開する記録
雑多なメモです。
ここから下は本当に雑多に書き散らしたものなので、ある程度やったことをまとめます。
- 個人のサービスをAWS上でデプロイした。
- EC2上にRailsアプリをデプロイした。(RDSなどは使わず単純にEC2単体)
- お名前.comで独自ドメインを取得した。
- EC2の前にALBを立てて、Route53の設定をした。
- SSL証明書もとって、httpsでアクセスできるようにした。
以下メモ。
AWS上での環境構築を、とりあえずこの記事を見てやってみる。
Amazon Linux 2 AMIを選択してみた(Amazon Linux AMIは選択肢に出てこなかった)- EC2インスタンス作成
- Elastic IPを作成と紐付け
- AWSセキュリティグループの設定
IPv6のデフォルト経路?ってこんな風に書くんだ ::/0
実はIPv6のIPアドレスの指定の仕方よく分かってない
Rubyは3.1.2
Railsは7.0.4
MySQLの代わりにSQLite 3.30.1を入れる
セッションマネージャーも使いたかったので
とかをみながら設定してみたがうまくいかなかったのでいったん放置productionでunicorn起動時にエラーが出たがこれで解決
amazon linux 2にはnginxがないようだ
sudo yum -y install nginx
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
amzn2-core | 3.7 kB 00:00:00
No package nginx available.
Error: Nothing to do
nginx is available in Amazon Linux Extra topic "nginx1"
To use, run
# sudo amazon-linux-extras install nginx1
Learn more at
https://aws.amazon.com/amazon-linux-2/faqs/#Amazon_Linux_Extras
amazon-linux-extrasって何?
capistranoはまた今度でええやろ
ドメインを取得する
お名前.comで取得する方法と、AWSのRoute53でドメインまで取得する方法がありそう。
厳密に計算してはいないが、お名前.comの方が少なくとも初年度はほとんどお金がかからず安そうだったので、とりあえずそっちで取得しておく。
whois情報公開代行というサービスがあるのを初めて知った
ここらへんを見ながらドメインとEC2をつなげる
ドメイン側でRoute53で作ったネームサーバを登録してあげないといけない
SSL証明書を発行してhttpsでアクセスできるようにする
うーん、ターゲットグループとインスタンスの間の通信がうまくいってない
もう少し概念を理解して調査しなければ
色々調べていたらできた。上記の記事に書かれていることは大体やったと思ったので、他の記事を探してみることにした。
もともとインスタンスのIPアドレスに直にアクセスするようにしていたのを、ALBに転送する仕組みが必要だった。
確かにそうか。SSL証明書を取って、証明書にALBを結び付けて(ALBは443で待ち受ける)、ALBからターゲットとなるインスタンスを結び付けて(EC2は80番で待ち受ける)とやっても、ドメインとALBを結び付ける設定を何もしてないもんな。そこはつなげてあげなければいけないと言われても確かにという感じがする。証明書のACMとRoute53があんまり脳内で区別できなかったのかもしれない。
ひとまず一件落着。
Discussion