上周由於園子后院起火,不得不調兵回去救火,出海記暫時停更,這周繼續更新,“出海記”記錄的是我們在 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 https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
sudo apt-add-repository https://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 |
...
