在某些時候,您的應用程序需求可能須要在 Amazon Lightsail中找不到的功能。幸運的是,將應用程序的一個或全部部分移動到其餘AWS服務中很是簡單
您將數據庫組件從 Amazon Lightsail遷移到 Amazon RDS
要遷移數據庫,您須要:php
①將Amazon Lightsail VPC的IP地址範圍(無類別域間路由或CIDR,範圍)添加到Amazon RDS安全組
②在Amazon Lightsail中啓用VPC
③將您的數據從 Amazon Lightsail數據庫遷移到 Amazon RDSA數據庫
此過程將爲前端在 Amazon Lightsail 實例上運行的體系結構,但該數據如今由 Amazon RDS管理前端
一、修改您的Amazon RDS安全組:
將數據庫組件遷移到 Amazon RDSE的第一步是確保容許來自 Amazon Lightsail VPC 的流量到達Amazon RDS。經過將 Amazon Lightsail VPC的IP地址範圍(172.26.0.0/16)現有 Amazon RDS安全組來完成此步驟。mysql
二、進入Amazon RDS數據庫界面:
https://console.aws.amazon.com/rds/home#databases:web
三、從數據庫列表中,單擊 「task-db」,請確保其狀態爲 「可用(Available)」,不然如下操做均無效
四、在「鏈接和安全」的選項卡上,單擊您的 「VPC安全組」
五、單擊「入站選項卡」:
六、單擊「編輯」
七、單擊「添加規則」,而後進行配置
示例:
①鍵入:MYSQL/Aurora
②來源:定製:172.26.0.0/16
八、單擊 「保存」sql
下一步是確保 Lightsail VPC能夠與您的默認 AWS VPC進行通訊。默認狀況下,AWS中的服務沒法訪問在 Amazon Lightsail中運行的服務(反之亦然)。可是,能夠經過使用稱爲VPC對等的功能來解決這種情況。VPC對等使某些AWS服務能夠與 Amazon lightsail資源進行通訊(在這種狀況下, Amazon RDS數據庫將與在Amazon Lightsail實例上運行的Web前端進行通訊)。數據庫
一、進入Amazon Lightsail帳戶設置界面:
https://lightsail.aws.amazon.com/ls/webapp/account/profileapache
二、從水平菜單中,單擊「Advanced(高級)」
向下滾動到 「VPC對等」部分
在部署Lightsail資源的區域旁邊,選擇 「啓用VPC對等」
瀏覽器
在此任務中,您將再次更新應用程序配置文件(config.php)以指向Amazon RDS數據庫
因爲您當前的 Lightsail實例都在負載均衡器下運行,所以僅將其中一些實例從新配置爲指向 Amazon RDS數據庫是不明智的。這樣作可能會致使負載均衡器顯示鏈接lightsail數據庫的一些前端以及鏈接到 Amazon RDS數據庫的其餘前端.
要避免這種狀況,您將基於現有的快照部署新的PHP前端實例,而後修改實例:安全
一、進入Amazon Lightsail快照界面:
https://lightsail.aws.amazon.com/ls/webapp/home/snapshots
二、PHP-fe-1旁邊:
①點擊 > 實例快照
②點擊
③單擊「建立新實例」app
三、命令實例:PHP-fe-rds
四、滾動到屏幕底部,單擊」」
五、一旦您的PHP-fe-rds實例可用,請使用SSH對其進行鏈接
六、進入Amazon RDS數據庫界面
七、從數據庫列表中,單擊您以前按建立的Amazon RDS數據庫名稱(此數據庫的名字爲以前建立的 「task-db」)以訪問數據庫詳細信息界面
八、從「鏈接和安全」選項卡中,將 「endpoint(端點)」複製
九、返回php-fe-rds實例的SSH會話界面
十、建立環境變量(RDS_ENDPOINT)以保存RDS數據庫端點的值:
①粘貼」 RDS_ENDPOINT='RDSENDPOINT' 「
②用以前的數據庫端點替換RDSENDPOINT
十一、設置默認用戶名(dbmasteruser)的環境變量和您以前建立的密碼(taskstasks)
RDS_username=dbmasteruser && RDS_PASSWORD=taskstasks
十二、驗證環境變量是否設置正確,(如下命令的輸出應與您爲RDS端點設置的值,RDS用戶名和RDS密碼匹配):
echo "Endpoint = "$RDS_ENDPOINT && echo "username = "$RDS_username && echo "Password = "$RDS_PASSWORD
1三、建立一個指向Amazon RDS數據庫的新配置文件:
**
cat /opt/bitnami/apache2/configs/config.php.bak | \ sed "s/<endpoint>/$RDS_ENDPOINT/; \ s/<username>/$RDS_username/; \ s/<password>/$RDS_PASSWORD/;" \ > /opt/bitnami/apache2/configs/config.php.rds_db
**
1四、經過將現有的config.php替換爲指向Amazon RDS數據庫的新建立的版原本激活配置:
cp /opt/bitnami/apache2/configs/config.php.rds_db /opt/bitnami/apache2/configs/config.php
1五、驗證是否已修改活動配置文件,如下命令的值應與Amazon RDS端點,用戶名和密碼的值相匹配:
cat /opt/bitnami/apache2/configs/config.php
1六、在新的瀏覽器選項卡中:
①輸入:
http://php-fe-rds/install.php
②將php-fe-rds替換爲新的實例的公有IP地址
把Amazon Lightsail數據庫中的數據遷移到Amazon RDS數據庫中,這是經過使用幾乎徹底相同的過程完成的,該過程用於將本地MySQL數據庫遷移到Amazon Lightsail數據庫
1七、在SSH窗口中建立一個(LS_ENDPOINT)的環境變量,已經過如下方式保存數據庫端點的值:
①粘貼:LS_ENDPOINT='MYENDPOINT'
②將MYENDPOINT 替換爲Lightsail數據庫的端點
1八、設置默認用戶名(dbmasteruser)的環境變量和以前建立的密碼(taskstasks)
LS_username=dbmasteruser && LS_PASSWORD=taskstasks
1九、檢查以確保正確設置環境變量(如下命令的輸出應與您爲LS端點設置的值,用戶名和密碼匹配)
echo "Endpoint = "$LS_ENDPOINT && echo "username = "$LS_username && echo "Password = "$RDS_PASSWORD
20、鍵入如下命令將數據庫導出到文件(tasks.sql)
**
mysqldump -u $LS_username \ --host $LS_ENDPOINT \ --databases tasks \ --single-transaction \ --compress \ --order-by-primary \ --set-gtid-purged=OFF \ -p$LS_PASSWORD > tasks.sql
**
2一、經過MySQL命令行工具訪問您的Amazon RDS實例
**
mysql -u $RDS_username \ --port=3306 \ --host=$RDS_ENDPOINT \ -p$RDS_PASSWORD
**
2二、將以前建立的數據庫轉儲文件導入MySQL
source tasks.sql;
2三、在瀏覽器選項卡中
①http://php-fe-rds
②將php-fe-rds替換爲新的實例的公有IP地址
從這一點開始,您可用重複此步驟並從php-fe-rds實例建立新快照,從該新快照部署2個實例,並用您的三個新勢力替換負載均衡其中的現有實例使用Amazon RDS
此過程將爲您提供在Amazon Lightsail中運行的冗餘Web前端,數據庫在Amazon RDS中運行。