Amazon Lightsail是AWS提供的一個簡化版云計算平臺,又稱為虛擬專用服務(wù)器(VPS),旨在幫助開發(fā)人員和小型企業(yè)輕松創(chuàng)建和管理虛擬服務(wù)器。使用Lightsail可以快速部署Web應(yīng)用程序,同時享受與AWS更高級服務(wù)相同的可靠性和可擴(kuò)展性。本教程將詳細(xì)介紹如何在Amazon Lightsail上部署一個LAMP(Linux、Apache、MySQL 和 PHP)Web應(yīng)用程序。
新用戶注冊即可免費(fèi)使用亞馬遜VPS(Amazon Lightsail)三個月,還能獲得一年期50GB的內(nèi)容分發(fā)網(wǎng)絡(luò)(CDN)服務(wù)、一年期5GB的對象存儲捆綁包,以及三個月的精選容器、實(shí)例和數(shù)據(jù)庫捆綁包?。
亞馬遜VPS 3個月免費(fèi)領(lǐng)取地址:https://www.amazonaws.com/
亞馬遜VPS領(lǐng)取教程:
一、在亞馬遜VPS上創(chuàng)建LAMP Web應(yīng)用程序
本模塊將指導(dǎo)如何使用AWS CLI來配置LAMP堆棧。通過此過程,將通過預(yù)配置的LAMP藍(lán)圖在亞馬遜VPS上創(chuàng)建一個實(shí)例,并在創(chuàng)建過程中從GitHub倉庫安裝一個PHP應(yīng)用程序。
1、創(chuàng)建Lightsail實(shí)例
使用AWS CLI命令來創(chuàng)建亞馬遜VPS實(shí)例。下面是創(chuàng)建實(shí)例的命令:
aws lightsail create-instances \ --instance-names <name_of_your_instance> \ --availability-zone <availability_zone> \ --blueprint-id <blueprint_id> \ --bundle-id <bundle_id> \ --key-pair-name <key_pair_name> \ --user-data <user-data>
此命令中的參數(shù)說明:
- 實(shí)例名稱:指定希望創(chuàng)建的實(shí)例名稱;
- 可用區(qū):選擇希望部署實(shí)例的可用區(qū);
- 藍(lán)圖 ID:選擇要使用的 Lightsail 藍(lán)圖 ID;
- 捆綁包 ID:指定實(shí)例的計算資源配置,包括內(nèi)存、計算能力和存儲;
- SSH 密鑰對:用于連接到實(shí)例的 SSH 密鑰對;
- 用戶數(shù)據(jù):包含實(shí)例啟動時要執(zhí)行的自動配置任務(wù)的腳本。
注意:捆綁包代表一組資源,決定了實(shí)例的計算能力、內(nèi)存和存儲容量;藍(lán)圖則是配置了操作系統(tǒng)和常用軟件應(yīng)用的虛擬機(jī)映像。
2、定義用戶數(shù)據(jù)
如上所示,創(chuàng)建亞馬遜VPS實(shí)例時,可以提供用戶數(shù)據(jù),以便在實(shí)例啟動時執(zhí)行自動配置任務(wù)。例如,可以通過用戶數(shù)據(jù)部署 LAMP 堆棧。以下腳本示例將執(zhí)行以下操作:
- 刪除默認(rèn)網(wǎng)站;
- 從 GitHub 克隆示例 PHP 應(yīng)用程序并替換現(xiàn)有網(wǎng)站;
- 設(shè)置必要的文件權(quán)限;
- 將自動生成的數(shù)據(jù)庫密碼注入到應(yīng)用程序配置文件中;
- 執(zhí)行 “init.sql” 腳本以創(chuàng)建數(shù)據(jù)庫并填充初始數(shù)據(jù)。
# remove default website #----------------------- cd /opt/bitnami/apache2/htdocs rm -rf * # clone github repo #------------------ /usr/bin/git clone -b loft https://github.com/mikegcoleman/todo-php.git . # set write permissons on the settings file #----------------------------------- chown bitnami:daemon ./* chmod 666 connectvalues.php # inject database password into configuration file #------------------------------------------------- sed -i.bak "s/<password>/$(cat /home/bitnami/bitnami_application_password)/;" /opt/bitnami/apache2/htdocs/connectvalues.php # create database #---------------- cat /home/bitnami/htdocs/data/init.sql | /opt/bitnami/mariadb/bin/mysql -u root -p$(cat /home/bitnami/bitnami_application_password)
3、創(chuàng)建SSH密鑰對
為了連接到實(shí)例,需要一個 SSH 密鑰對。可以通過 AWS CLI 創(chuàng)建密鑰對。以下命令會生成一個名為 “LightsailGuide” 的密鑰對,并將公鑰和私鑰分別保存為 “lightsailguide.pub” 和 “lightsailguide”。
aws lightsail create-key-pair --key-pair-name LightsailGuide > ssh_key_response.json cat ssh_key_response.json | jq -r '.publicKeyBase64' > lightsailguide.pub cat ssh_key_response.json | jq -r '.privateKeyBase64' > lightsailguide chmod 400 lightsailguide.pub lightsailguide
提示:可能需要安裝 “jq” 工具,這是一個處理 數(shù)據(jù)的命令行工具。
4、創(chuàng)建Lightsail實(shí)例
一切準(zhǔn)備就緒后,可以使用 AWS CLI 創(chuàng)建亞馬遜VPS實(shí)例。在本例中,我們將使用愛爾蘭(”eu-west-1″)區(qū)域,并選擇 “lamp_7” 作為藍(lán)圖 ID??梢赃\(yùn)行以下命令查看可用的藍(lán)圖列表:
aws lightsail get-blueprints
在創(chuàng)建亞馬遜VPS實(shí)例時,需要指定一個實(shí)例捆綁包。在本示例中,我們將使用 “micro_2_0” 捆綁包??梢赃\(yùn)行以下命令查看所有可用捆綁包的列表:
aws lightsail get-bundles
要通過用戶數(shù)據(jù)腳本和創(chuàng)建的 SSH 密鑰來創(chuàng)建 亞馬遜VPS 實(shí)例,請運(yùn)行以下命令:
# Create the Lightsail instance: aws lightsail create-instances \ --instance-names "LightsailLampExample" \ --availability-zone eu-west-1a \ --blueprint-id lamp_7 \ --bundle-id micro_2_0 \ --key-pair-name LightsailGuide \ --user-data '# remove default website #----------------------- cd /opt/bitnami/apache2/htdocs rm -rf * # clone github repo #------------------ /usr/bin/git clone -b loft https://github.com/mikegcoleman/todo-php.git . # set write permissons on the settings file #----------------------------------- chown bitnami:daemon ./* chmod 666 connectvalues.php # inject database password into configuration file #------------------------------------------------- sed -i.bak "s/<password>/$(cat /home/bitnami/bitnami_application_password)/;" /opt/bitnami/apache2/htdocs/connectvalues.php # create database #---------------- cat /home/bitnami/htdocs/data/init.sql | /opt/bitnami/mariadb/bin/mysql -u root -p$(cat /home/bitnami/bitnami_application_password)'
該命令會返回創(chuàng)建的實(shí)例的詳細(xì)信息,如下所示:
{ "operations": [ { "id": "a49e1398-fb81-455a-8a50-3159c9bd9966", "resourceName": "LightsailLampExample", "resourceType": "Instance", "createdAt": "2021-09-21T16:38:40.566000+02:00", "location": { "availabilityZone": "eu-west-1a", "regionName": "eu-west-1" }, "isTerminal": false, "operationType": "CreateInstance", "status": "Started", "statusChangedAt": "2021-09-21T16:38:40.566000+02:00" } ] }
實(shí)例創(chuàng)建需要幾分鐘的時間??梢允褂靡韵旅顏頇z查實(shí)例的狀態(tài):
aws lightsail get-instance-state --instance-name LightsailLampExample
如果輸出如下,表示實(shí)例正在運(yùn)行,但用戶數(shù)據(jù)腳本可能仍在執(zhí)行中:
{ "state": { "code": 16, "name": "running" } }
要測試應(yīng)用程序,需要獲取實(shí)例的公共 IP 地址??梢赃\(yùn)行以下命令來獲?。?/p>
aws lightsail get-instance --instance-name LightsailLampExample | jq -r .instance.publicIpAddress
復(fù)制輸出的 IP 地址并將其粘貼到瀏覽器中,將看到正在運(yùn)行的應(yīng)用程序。
二、清理資源
如果只是按本指南操作并體驗亞馬遜VPS,而不是部署生產(chǎn)環(huán)境中的服務(wù),請務(wù)必刪除所有創(chuàng)建的云資源。這將有助于避免 AWS 賬戶產(chǎn)生不必要的費(fèi)用。
1、刪除云基礎(chǔ)設(shè)施
使用亞馬遜VPS刪除實(shí)例非常簡單。只需輸入以下命令即可:
aws lightsail delete-instance --instance-name LightsailLampExample
2、驗證資源已刪除
可以通過以下命令驗證是否刪除了所有資源:
aws lightsail get-instances # the command should output the following { "instances": [] }
通過本教程,已經(jīng)成功部署了一個LAMP Web應(yīng)用程序到亞馬遜VPS。
-
廣告合作
-
QQ群號:4114653