簡(jiǎn)介
在本文中,我將逐步介紹在配置安全組并將其連接到 spring boot 應(yīng)用程序并測(cè)試連接后設(shè)置 aws rds mysql 實(shí)例的過(guò)程。
第1步:創(chuàng)建新的安全組
在設(shè)置rds實(shí)例之前,您需要確保該實(shí)例可訪問(wèn)。您可以通過(guò)配置 aws 安全組 來(lái)執(zhí)行此操作。安全組充當(dāng)虛擬防火墻來(lái)控制入站和出站流量。
- 訪問(wèn) aws 控制臺(tái):轉(zhuǎn)至 ec2 儀表板 > 安全組 > 創(chuàng)建安全組。
- 入站規(guī)則:
- 出站規(guī)則:
- 設(shè)置允許所有流量,以保證實(shí)例可以與其他資源自由通信。
設(shè)置安全組后,繼續(xù)配置rds實(shí)例。
第 2 步:配置 rds 實(shí)例
- 選擇數(shù)據(jù)庫(kù)引擎:在本例中,選擇mysql。
- 選擇模板:為簡(jiǎn)單起見(jiàn),您可以使用免費(fèi)套餐,因?yàn)槲覍⒃O(shè)置一個(gè)演示應(yīng)用程序。
- 設(shè)置數(shù)據(jù)庫(kù)實(shí)例:
- 選擇單個(gè)數(shù)據(jù)庫(kù)實(shí)例(如果您不需要高可用性)。
- 定義數(shù)據(jù)庫(kù)實(shí)例標(biāo)識(shí)符、主用戶名(我使用默認(rèn)名稱“admin”)和密碼。
- 選擇數(shù)據(jù)庫(kù)實(shí)例類:
- 我選擇了 db.t3.micro(最小資源選項(xiàng)),因?yàn)椴恍枰?cpu 或 ram。
- 選擇存儲(chǔ)類型:
- 通用 ssd 和 20 gb 存儲(chǔ)價(jià)值足以滿足我的演示應(yīng)用程序的需要。
注意:我不需要此數(shù)據(jù)庫(kù)的特定 ec2 實(shí)例,因?yàn)椴恍枰峙溆?jì)算資源。
配置這些設(shè)置后,單擊創(chuàng)建數(shù)據(jù)庫(kù)開(kāi)始配置rds實(shí)例。創(chuàng)建需要幾分鐘。
第 3 步:配置 spring boot 應(yīng)用程序
現(xiàn)在您的 rds mysql 實(shí)例已啟動(dòng)并運(yùn)行,您可以繼續(xù)配置 spring boot 應(yīng)用程序以連接到它。
我不會(huì)深入研究 spring boot,我只是展示一些 Java 文件和配置來(lái)了解一下。如果您是 spring boot 的新手,請(qǐng)?jiān)趯?shí)現(xiàn)之前對(duì) spring boot 應(yīng)用程序有一個(gè)基本的了解。
3.1。更新 application.properties
在 spring boot 項(xiàng)目中,您需要在 application.properties 文件中添加必要的數(shù)據(jù)庫(kù)連接詳細(xì)信息。連接將使用端點(diǎn)(在 rds 實(shí)例的連接性和安全性下)以及 rds 設(shè)置期間設(shè)置的憑據(jù)。
spring.application.name=devops spring.datasource.url=jdbc:mysql://<end point>/devops spring.datasource.username=admin spring.datasource.password=<password> spring.jpa.hibernate.ddl-auto=update
- spring.datasource.url:這是您的 rds 實(shí)例的 url(將主機(jī)替換為您收到的實(shí)際 rds 端點(diǎn))。
- spring.datasource.username:admin 用戶或您在設(shè)置過(guò)程中配置的主用戶名。
- spring.datasource.password:您為 rds 實(shí)例配置的密碼。
- spring.jpa.hibernate.ddl-auto:設(shè)置為 update 自動(dòng)更新您的架構(gòu)(非常適合開(kāi)發(fā))。
3.2。添加 mysql 依賴
確保您的 pom.xml(對(duì)于 maven)或 build.gradle(對(duì)于 gradle)具有 mysql 驅(qū)動(dòng)程序依賴項(xiàng)。
對(duì)于 maven:
<dependency> <groupid>mysql</groupid> <artifactid>mysql-connector-java</artifactid> </dependency>
對(duì)于 gradle:
implementation 'mysql:mysql-connector-java'
注意:確保還添加 spring-boot-starter-data-jpa 依賴項(xiàng)。
3.3。定義 jpa 實(shí)體和存儲(chǔ)庫(kù)
您現(xiàn)在可以定義 jpa 實(shí)體和相應(yīng)的存儲(chǔ)庫(kù)。例如,要?jiǎng)?chuàng)建 user 實(shí)體:
@entity public class user { @id @generatedvalue(strategy = generationtype.identity) private long id; private string name; private string email; <getters, setters and constructions> }
和存儲(chǔ)庫(kù)接口:
@repository public interface userrepository extends jparepository<user, long> { }
第 4 步:創(chuàng)建一個(gè)簡(jiǎn)單的 rest 控制器
創(chuàng)建一個(gè)控制器來(lái)處理與user實(shí)體相關(guān)的請(qǐng)求。以下代碼展示了如何創(chuàng)建一個(gè)簡(jiǎn)單的 post 方法來(lái)保存用戶數(shù)據(jù):
@restcontroller @requestmapping("/user") public class usercontroller { @autowired private userservice userservice; @postmapping public string saveuser(@requestbody user user){ try { userservice.saveuser(user); return "success!"; } catch (exception e) { return e.getmessage(); } } }
userservice 類負(fù)責(zé)將數(shù)據(jù)保存到數(shù)據(jù)庫(kù)。
@service public class userservice { @autowired private userrepository userrepository; public void saveuser(user user) { userrepository.save(user); } }
第 5 步:驗(yàn)證 mysql workbench 中的連接
您可以使用 mysql workbench 連接到 aws rds 實(shí)例來(lái)驗(yàn)證連接。輸入連接詳細(xì)信息如下:
- 主機(jī):您的 rds 實(shí)例的端點(diǎn)。
- 用戶名:管理員用戶名。
- 密碼:您為數(shù)據(jù)庫(kù)設(shè)置的密碼。
- 端口:3306。
連接后,您可以瀏覽數(shù)據(jù)庫(kù)和表以確認(rèn)您的 spring boot 應(yīng)用程序正在與 mysql 數(shù)據(jù)庫(kù)交互。
第 6 步:使用 postman 進(jìn)行測(cè)試
您可以使用postman測(cè)試post端點(diǎn)。使用 json 正文向 發(fā)送 posthttp://localhost:8080/user 請(qǐng)求:
{ "name": "test", "email": "[email protected]" }
如果一切設(shè)置正確,您應(yīng)該會(huì)看到一個(gè)響應(yīng)“成功!”。
結(jié)論
您現(xiàn)在已成功將 spring boot 應(yīng)用程序連接到 aws rds mysql 實(shí)例。通過(guò)執(zhí)行上述步驟,您能夠:
- 為 mysql 設(shè)置 aws rds 實(shí)例。
- 配置必要的安全組以進(jìn)行訪問(wèn)控制。
- 通過(guò) jdbc 將您的 spring boot 應(yīng)用程序連接到 rds 實(shí)例。
- 通過(guò) postman 發(fā)送 post 請(qǐng)求并驗(yàn)證數(shù)據(jù)庫(kù)條目來(lái)測(cè)試設(shè)置。
此設(shè)置可確保為 aws 上托管的 spring boot 應(yīng)用程序提供無(wú)縫且可擴(kuò)展的數(shù)據(jù)庫(kù)后端。
如果您需要任何進(jìn)一步的幫助或者您有任何改進(jìn)設(shè)置的想法,請(qǐng)告訴我!
謝謝!