關於我想看漫畫卻不想看廣告這檔事 (14.5) — 漫畫爬蟲&閱讀器 + AWS RDS

Seaweed
Sep 16, 2021

--

這篇算是給上一篇的補充,主要是針對使用 Terraform 佈署 AWS RDS。雖然比較短,但就讓我們繼續看下去吧。

本篇程式碼

服務整體架構

我們先來看看加入 RDS 之後的服務架構:

雖然省略 EC2 內部詳細,但也看得出來其實就是前兩個章節的架構的綜合。

修改與新增的程式碼

這次本藻就只提有變更的程式碼,若想要看完整程式碼還請移步專案連結

本次只有動到 section_13 的 resource_ec2.tf(新檔名為 resource_ec2_rds.tf),詳細分為幾個部分以下介紹:

  • Networking

首先是 EC2 與 RDS 要使用的 VPC 網路環境配置。

基本上就是上一篇相同的東西重複。

  • RDS create

接著來看 RDS 的建立。

一樣是上一篇提到的東西,不過因為一些預設的編碼問題這邊我們用的是 mysql 8.0。

  • EC2/Mysql init

最後是我們的重頭戲,因為我們把 EC2 中的 mysql 拆出去放到外部的 RDS,所以這裡只介紹涉及 RDS 的初始化的部分。(關於 EC2 中的舊的 mysql 的程式碼就只是被刪掉,這裡不贅述。)

資料庫初始化的部分有一點變化,原因是這次的 mysql 不在 EC2 本機上,所以 sudo 不再管用。因為沒辦法在 remote executor 上使用 mysql 的 -p 選項,這裡我們使用 --defaults-extra-file 直接帶入外部設定檔,實現免手動打密碼初始化資料庫。

而這裡使用的設定檔格式為下:

[client]
user=[帳號]
password=[密碼]
default-character-set=utf8mb4 #避免亂碼

結語

我們在上一篇有簡略提一下 AWS RDS 的部屬方法,但應用方面應該還是有些不明確的地方。因此本藻在這裡追加介紹將 RDS 整合到之前的架構的方法,希望能有所幫助。

而在下一篇,我們將要利用 Terraform 與 Serverless Framework 分別佈署漫畫爬蟲與漫畫閱讀器。架構上會開始變得複雜,如果有興趣還請持續關注。

下篇預告

Terraform ✕ Serverless Framework

下篇傳送門↓

--

--

Seaweed

最大的才能是行光合作用,朋友是矽藻的海藻。