雲計算之路-出海記:建一個免費倉庫 Amazon RDS for SQL Server

上周由於園子後院起火,不得不調兵回去救火,出海記暫時停更,這周繼續更新,「出海記」記錄的是我們在 AWS 上建設部落格園海外站的歷程。

在這一記中記錄的是我們基於 AWS 免費套餐(Free Tier)創建一個 Amazon RDS for SQL Server 實例,這也是我們第一次使用 AWS RDS,之前只用過阿里雲 RDS。

首先進入 AWS RDS 控制台,AWS 在控制台推薦了他們自主研發的雲資料庫 Amazon Aurora,但我們目前只能用 SQL Server,忽略此推薦,在控制台「創建資料庫」卡片中點擊創建資料庫

進入創建資料庫的介面,這是一個長長的「菜單」,有很多食品可供選擇,但我們囊中羞澀,只能點免費套餐中的食品。

  • 「資料庫創建方法」選擇標準創建
  • 「引擎選項」-「引擎類型」選擇Microsoft SQL Server
  • 「引擎選項」-「版本」選擇SQL Server Express Edition(註:免費套餐只能選擇這個版本),版本號選SQL Server 2017 14.00.3294.2.v1
  • 「模板」選免費套餐(註:模板中出現免費套餐的選項,說明這個規格的實例支撐免費套餐)。
  • 在「設置」-「資料庫實例標識符」中輸入實例名稱(支援連字元,不支援下劃線),這裡輸入optcode-db(註:optcode是部落格園海外站的暫用域名)
  • 在「設置」-「憑證設置」-「主用戶名」中輸入資料庫賬戶用戶名(支援下劃線,不支援連字元),然後輸入密碼
  • 「資料庫實例大小」真能選小份(db.t2.micro),這是免費套餐僅能享用的規格。
  • 在「存儲」部分,「存儲類型」選默認的通用型(SSD),「分配的存儲空間」選默認的20GiB(這也是免費套餐支援的最大存儲空間),去選啟用存儲自動擴展以免產生額外的費用
  • 「連接」就用默認的VPC
  • 「Microsoft SQL Server Windows 身份驗證」就用默認的不啟用
  • 「其他配置」就用默認值。
  • 確認一下「月度估算費用」中是否免費套餐

最後,點擊「創建資料庫」按鈕下單。

這時控制台會提示:

正在創建資料庫 optcode-db。
您的資料庫可能需要幾分鐘時間才能啟動。

等了10分鐘左右,資料庫創建好了。

AWS 沒有提供 SQL Server 的 web 管理控制台,需要通過微軟提供的 SQL Server 客戶端管理工具 SQL Server Management Studio 或者 mssql-cli 管理資料庫,這裡我們選擇命令行工具 mssql-cli 。

用免費套餐創建1台 Ubuntu 18.04 EC2 伺服器用於安裝 mssql-cli ,參考 雲計算之路-出海記:整一台 AWS 免費雲伺服器

安裝 mssql-cli

curl //packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
sudo apt-add-repository //packages.microsoft.com/ubuntu/18.04/prod
sudo apt-get update
sudo apt-get install mssql-cli
sudo apt-get install -f

安裝後之後用 mssql-cli 命令連接 RDS for SQL Server

mssql-cli -S optcode-db.cddc6wiequiq.us-west-1.rds.amazonaws.com

報錯

Error message: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: TCP Provider, error: 40 – Could not open a connection to SQL Server)

出現上面的錯誤是由於運行 mssql-cli 命令的 EC2 伺服器與 RDS 實例不在同一個安全組。

進入 EC2 控制台選中對應的實例,點擊「操作」->「安全」->「更改安全組」,將這台伺服器加入到 RDS 實例所在的安全組,就能成功連接了。

mssql-cli 連接上 RDS 實例之後,看一下實例中當前有哪些資料庫?

master> \ld                                                                                                                                                                                                 
Time: 0.453s
+----------+
| name     |
|----------|
| master   |
| tempdb   |
| model    |
| msdb     |
| rdsadmin |
+----------+
(5 rows affected)

接下來為海外站部落格系統創建一個空資料庫 optcode_blog

master> CREATE DATABASE optcode_blog

最後導入部落格系統資料庫結構的創建腳本

$ mssql-cli -S xxx -U yyy -P 'zzz' -d optcode_blog -i optcode_blog.sql
Commands completed successfully.

AWS 巨輪上存放數據的免費倉庫就這樣建好了,這一記就記到這裡。

optcode_blog> \lt                                                                                                                                                                                           
Time: 0.454s
+----------------+-------------------------------+
| table_schema   | table_name                    |
|----------------+-------------------------------|
| dbo            | blog_Images                   |
...