當向開發人員介紹亞馬遜云科技云服務時,通常會花一點時間來介紹并演示Amazon Lightsail。它是迄今為止開始使用亞馬遜云科技的最簡單方法。使用它,您在幾分鐘內即可在自己的虛擬服務器上運行您的應用程序。而后增加了在Amazon Lightsail上部署基于容器的工作負載的可能性。
Amazon Lightsail是一項易于使用的云服務,可為您提供部署應用程序或網站所需的一切,從而實現經濟高效且易于理解的月度計劃。它是部署簡單的工作負載、網站或開始使用亞馬遜云科技的理想選擇。典型的Amazon Lightsail客戶包括開發人員、小型企業或初創公司等,他們希望快速開始使用云和亞馬遜云科技。
部署到Amazon Lightsail時,您可以在六種操作系統(4個Linux發行版、FreeBSD或Windows)、七種應用程序(例如WordPress、Drupal、Joomla、Plesk…)和七種堆棧(例如Node.js、Lamp、GitLab、Django…)之間選擇。但是Docker容器呢?
Amazon Lightsail為開發人員提供一種簡單的方式來將其容器部署到云中。您只需要為您的容器提供一個Docker映像,亞馬遜云科技將為您自動容器化該映像。Amazon Lightsail為您提供了一個HTTPS終端節點,可以為在云容器中運行的應用程序提供服務。它會自動設置負載均衡的TLS終端節點,并處理TLS證書。它會為您自動替換無響應的容器,會為終端節點分配一個DNS名稱,維護舊版本,直到新版本運行正常并準備好上線等。
下面通過將簡單的Python Web應用程序部署為容器來看看它是如何工作的。假設您的筆記本電腦上安裝了亞馬遜云科技命令行界面(CLI)和Docker。不需要Python,它將僅安裝在容器中。
首先使用Flask簡單應用程序框架創建一個Python REST API。任何可以在容器內運行的編程語言和框架都可以工作。我選擇了Python和Flask,因為它們簡單又簡潔。
您可以安全地復制/粘貼以下命令:
然后創建一個Dockerfile,其中包含構建容器映像所需的步驟和信息:
現在可以構建容器了:
build命令在構建容器時會輸出許多行,它最終以以下消息結束(實際ID將不同):
可以通過在筆記本電腦上啟動容器來測試它:
并將瀏覽器連接到localhost:8080
當對應用程序感到滿意時,會將容器推送到Docker Hub。
現在,已經在Docker Hub上準備好容器,下面來創建Amazon Lightsail容器服務。
將瀏覽器指向Amazon Lightsail控制臺。可以看到容器服務已經部署好,可以管理它們。為創建新服務,我點擊Create container service(創建容器服務):
在下一個屏幕上,根據可供應用程序使用的vCPU和內存來選擇要使用的容器大小。出于高可用性或可擴展性的原因,還選擇了希望并行運行的容器實例的數量。可以隨時更改容器實例的數量或其能力(vCPU和RAM),而不會中斷服務。這兩個參數都會影響亞馬遜云科技每月收取的價格。
在屏幕稍微下面的位置,選擇現在跳過部署。將服務命名為(“hello-world”)。單擊Create container service(創建容器服務)。
創建服務后,單擊Create your first deployment(創建第一個部署)以創建部署。部署指的是要在剛創建的服務上部署的特定容器映像和版本的組合。
為映像選擇一個名稱,然后在Docker Hub上使用格式user/:tag提供映像的地址。在這個地方,也可以輸入環境變量、端口映射或啟動命令。
容器在端口TCP 8080上提供網絡服務,因此將該端口添加到部署配置中。開放端口配置指定哪些端口和協議對容器網絡中的其他系統開放。其他容器或虛擬機只能在端口在控制臺中顯式配置或公開在Dockerfile中時連接到我的容器。這些端口都不會在公共互聯網中公開。
最多可以為單個部署添加10個容器。準備好后,我單擊Save and deploy(保存并部署)。
過了一段時間,部署處于活動狀態,可以測試終端節點。
終端節點DNS地址位于控制臺的右上角。如果必須的話,可以配置自己的DNS域名。
在瀏覽器中打開另一個選項卡并將它指向https終端節點URL:
當必須部署新版本時,再次使用控制臺來修改部署。可以省去修改應用程序代碼、構建和推送新版本容器的詳細信息。假設在名稱sebsto/lightsail-hello-world:v2下有第二個容器映像版本可用。返回到Amazon Lightsail控制臺,單擊Deployments(部署),然后單擊Modify your Deployments(修改部署)。輸入容器映像新版本的完整名稱,包括標簽,然后單擊Save and Deploy(保存并部署)。
過了一段時間后,部署并自動激活新版本。
在瀏覽器中打開一個新選項卡,然后將其指向Amazon Lightsail控制臺右上角提供的終端節點URI。觀察到JSON版本不同。它現在有一個值為2的版本屬性。
當部署過程中出現問題時,Amazon Lightsail會自動使上次部署保持活動狀態,以避免任何服務中斷。還可以手動激活以前的部署版本以撤消任何不需要的更改。
剛從Docker Hub部署了第一個容器映像。還可以使用亞馬遜云科技命令行界面(CLI)管理我的服務并從筆記本電腦部署本地容器映像。要直接從筆記本電腦將容器映像推送到Amazon Lightsail容器服務,必須安裝LightSail控制器插件。為創建、列出或刪除容器服務,鍵入:
還可以使用CLI直接從筆記本電腦部署容器映像。確保已安裝lightsailctl。
過了一會,我看到以下輸出:
創建一個lc.json文件來保存部署配置的詳細信息。它在控制臺上看到的選項一致。
最后,用以下命令創建一個新的服務版本:
可以使用以下命令查詢部署狀態
過了一段時間后,狀態變為ACTIVE(活動),可以測試我的終端節點。
如果計劃稍后將容器部署到Amazon ECS或Amazon Elastic Kubernetes Service,則無需進行任何更改。您可以從存儲庫中提取容器映像,就像使用Amazon Lightsail一樣。
您可以在提供Amazon Lightsail的所有亞馬遜云科技區域中將容器部署到Lightsail上。截止今天,已在美國東部(俄亥俄)、美國東部(弗吉尼亞北部)、美國西部(俄勒岡)、亞太地區(孟買)、亞太地區(首爾)、亞太地區(新加坡)、亞太地區(悉尼)、亞太地區(東京)、加拿大(中部)、歐洲(法蘭克福)、歐洲(愛爾蘭)、歐洲(倫敦)和歐洲(巴黎)區域提供。
Amazon Lightsail在后臺由Amazon Elastic Compute Cloud(EC2)、Amazon Relational Database Service(RDS)、Application Load Balancer和其他亞馬遜云科技服務提供支持。它提供了您期望從亞馬遜云科技獲得的安全性、可靠性和可擴展性級別。
審核編輯 黃宇
-
python
+關注
關注
56文章
4783瀏覽量
84473 -
亞馬遜
+關注
關注
8文章
2629瀏覽量
83206 -
云服務器
+關注
關注
0文章
547瀏覽量
13350 -
Docker
+關注
關注
0文章
455瀏覽量
11819
發布評論請先 登錄
相關推薦
評論