2023 iT邦鐵人賽 Day 4 - 空的容器
2023 iT邦鐵人賽 Day 01 - 談Docker前先談Server
AWS EC2 使用 AWS RDS
在前一篇記錄了使用 AWS EC2 部署 Rails 專案的過程,在部署裡,除了專案本身外,另一個遇到難處理的就是資料庫。
因為 EC2 instance 環境使用 Amazon Linux 2023,而 package 裡的 pg 版本太舊,只有 9 開頭,導致有很多相容性問題,於是決定外接 RDS,沒想到非常方便,就讓我們來看看到底要如何設置 RDS 吧!
EC2 instance 當 bundle install 遇到 killed
接續前一篇,在 rails_project clone 到 EC2 instance 並 cd rails_project 執行 bundle install 時,run 到一半卡住,最後顯示 killed,強制結束的意思。
會有 killed 的主要原因是執行 bundle install 安裝特定的 gem 所佔用的記憶體空間過大,導致環境內的記憶體空間不足,而被迫結束 bundle install。
解決方法為:
AWS EC2 部署過程
在剛接觸 Rails 部署時,我想應該都是從 Heroku 開始學習,對新手來說,Heroku 的輕量部署是非常容易上手的。市面上,除了 Heroku 以外,還有很多部署工具,像是 AWS、Microsoft Azure、Google Cloud 等。今天這篇主要是想要多瞭解 AWS EC2 的部署步驟,需要做些什麼事情而寫,一些詳細的設定就不在本篇多做解說。
解決 Mail 的 CSS 樣式無法被支援
Rails 內建的 action mailer 可以用來寄發信件,搭配 action job 非同步處理寄送信件是常常使用的搭配。在寄發信件時,信件內容寫在 html.erb
裡代表,我們可以讓信件內容不只是純文字,而是可以將 CSS 套入,使信件內容的樣貌更豐富。
Includes query method
N + 1 一直是 rails 在讀取資料的效能殺手,解決這個效能問題有很多方法,今天這篇簡單地講解一下其中一個方法: includes。