本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
QuickStart:將 Go 應用程式部署至 Elastic Beanstalk
本 QuickStart 教學課程將逐步引導您建立 Go 應用程式並將其部署到 AWS Elastic Beanstalk 環境。
注意
本 QuickStart 教學課程旨在用於示範目的。請勿將本教學課程中建立的應用程式用於生產流量。
章節
AWS 您的帳戶
如果您尚未成為 AWS 客戶,則需要建立 AWS 帳戶。註冊可讓您存取 Elastic Beanstalk 和其他您需要 AWS 的服務。
如果您已經有 AWS 帳戶,則可以繼續移至 必要條件。
註冊 AWS 帳戶
如果您沒有 AWS 帳戶,請完成下列步驟以建立 。
若要註冊 AWS 帳戶
開啟https://portal.aws.amazon.com/billing/註冊
。 請遵循線上指示進行。
部分註冊程序需接收來電,並在電話鍵盤輸入驗證碼。
當您註冊 時 AWS 帳戶,AWS 帳戶根使用者會建立 。根使用者有權存取該帳戶中的所有 AWS 服務 和資源。作為安全最佳實務,請將管理存取權指派給使用者,並且僅使用根使用者來執行需要根使用者存取權的任務。
AWS 會在註冊程序完成後傳送確認電子郵件給您。您可以隨時前往 https://aws.amazon.com/
建立具有管理存取權的使用者
註冊 後 AWS 帳戶,請保護您的 AWS 帳戶根使用者、啟用 AWS IAM Identity Center並建立管理使用者,這樣您就不會將根使用者用於日常任務。
保護您的 AWS 帳戶根使用者
-
選擇根使用者並輸入 AWS 帳戶 您的電子郵件地址,以帳戶擁有者AWS Management Console
身分登入 。在下一頁中,輸入您的密碼。 如需使用根使用者登入的說明,請參閱 AWS 登入 使用者指南中的以根使用者身分登入。
-
為您的根使用者開啟多重要素驗證 (MFA)。
如需指示,請參閱 IAM 使用者指南 中的為 AWS 帳戶 根使用者 (主控台) 啟用虛擬MFA裝置。
建立具有管理存取權的使用者
-
啟用IAM身分中心。
如需指示,請參閱 AWS IAM Identity Center 使用者指南中的啟用 AWS IAM Identity Center。
-
在 IAM Identity Center 中,將管理存取權授予使用者。
如需使用 IAM Identity Center 目錄 做為身分來源的教學課程,請參閱 AWS IAM Identity Center 使用者指南 中的使用 設定使用者存取權 IAM Identity Center 目錄。
以具有管理存取權的使用者身分登入
-
若要使用 IAM Identity Center 使用者登入,請使用您建立 IAM Identity Center 使用者時URL傳送到您電子郵件地址的登入。
如需使用 IAM Identity Center 使用者登入的協助,請參閱 AWS 登入 使用者指南 中的登入 AWS 存取入口網站。
必要條件
注意
AWS 在 2024 年 10 月 1 日之後建立的帳戶,將需要暫時設定 選項,才能成功建立新環境。與新帳戶相同,但僅適用於帳戶尚未擁有環境 的區域,現有帳戶將需要採取相同的動作。如需詳細資訊,請參閱啟動範本。
為了遵循本指南的程序,您需要命令列終端機或 shell 來執行命令。命令清單前會出現提示字元 ($) 及目前的目錄名稱 (如有)。
~/eb-project$ this is a command
this is output
在 Linux 和 macOS 上,您可以使用偏好的 Shell 和套件軟體管理工具。在 Windows 上,您可以安裝適用於 Linux 的 Windows 子系統
EB CLI
本教學課程使用 Elastic Beanstalk 命令列介面 (EB CLI)。如需安裝和設定 EB 的詳細資訊CLI,請參閱 安裝 Elastic Beanstalk 指令列介面和 設定 EB CLI。
步驟 1:建立 Go 應用程式
建立專案目錄。
~$ mkdir eb-go
~$ cd eb-go
接著,請建立您將使用 Elastic Beanstalk 進行部署的應用程式。我們將建立「Hello World」 RESTful Web 服務。
此範例會列印自訂問候語,該問候語依用於存取該服務的路徑而異。
於此目錄建立名為 application.go
的文字檔案,內含下列內容。
範例 ~/eb-go/application.go
package main import ( "fmt" "net/http" ) func handler(w http.ResponseWriter, r *http.Request) { if r.URL.Path == "/" { fmt.Fprintf(w, "Hello World! Append a name to the URL to say hello. For example, use %s/Mary to say hello to Mary.", r.Host) } else { fmt.Fprintf(w, "Hello, %s!", r.URL.Path[1:]) } } func main() { http.HandleFunc("/", handler) http.ListenAndServe(":5000", nil) }
步驟 2:使用 EB 部署 Go 應用程式 CLI
接著,您建立應用程式環境,並透過 Elastic Beanstalk 部署已設定的應用程式。
欲建立環境並部署您的 Go 應用程式
-
使用 eb init命令初始化您的 EB CLI儲存庫。
~/eb-go$
eb init -p go go-tutorial --region us-east-2
Application go-tutorial has been created.此命令會建立名為 的應用程式,
go-tutorial
並設定您的本機儲存庫,以使用最新的 Go 平台版本建立環境。 -
(選用) eb init再次執行 以設定預設金鑰對,讓您可以使用 SSH 連線到執行應用程式的EC2執行個體。
~/eb-go$
eb init
Do you want to set up SSH for your instances? (y/n):y
Select a keypair. 1) my-keypair 2) [ Create new KeyPair ]若您已有金鑰對,請選擇一對,或依照提示建立金鑰對。若未出現提示,或稍後需要變更設定,請執行 eb init -i。
-
使用 eb create 建立環境並於其中部署您的應用程式。Elastic Beanstalk 會自動為您的應用程式建置 zip 檔案,並在連接埠 5000 上啟動該檔案。
~/eb-go$
eb create go-env
Elastic Beanstalk 大約需要五分鐘的時間來建立您的環境。
步驟 3:在 Elastic Beanstalk 上執行應用程式
當建立環境的程序完成時,請使用 開啟您的網站eb open。
~/eb-go$ eb open
恭喜您!您已使用 Elastic Beanstalk 部署 Go 應用程式!這會開啟瀏覽器視窗,並使用為應用程式建立的網域名稱。
步驟 4:清理
您可以在完成使用應用程式時終止環境。Elastic Beanstalk 會終止與環境相關聯的所有 AWS 資源。
若要使用 EB 終止 Elastic Beanstalk 環境,請CLI執行下列命令。
~/eb-go$ eb terminate
AWS 應用程式的 資源
您剛建立了一個單一執行個體應用程式。它可作為具有單一EC2執行個體的簡單範例應用程式,因此不需要負載平衡或自動擴展。對於單一執行個體應用程式,Elastic Beanstalk 會建立下列 AWS 資源:
-
EC2 執行個體 – 設定為在您選擇的平台上執行 Web 應用程式的 Amazon EC2虛擬機器。
每個平台會執行不同一套軟體、設定檔和指令碼,來支援特定的語言版本、架構、Web 容器或其組合。大多數的平台會使用 Apache 或 nginx 做為反向代理,處理您 Web 應用程式前端的網路流量、向它轉送請求、提供靜態資產,並產生存取和錯誤日誌。
-
執行個體安全群組 – 設定為允許連接埠 80 上傳入流量的 Amazon EC2安全群組。此資源可讓來自負載平衡器的HTTP流量到達執行 Web 應用程式的EC2執行個體。在預設情況下,不允許傳輸資料從其他通訊埠傳送。
-
Amazon S3 儲存貯體 - 儲存位置,用來儲存當您使用 Elastic Beanstalk 時所建立的原始程式碼、日誌和其他成品。
-
Amazon CloudWatch 警示 – 監控您環境中執行個體負載的兩個 CloudWatch 警示,如果負載過高或過低,則會觸發警示。當警示觸發時,您的 Auto Scaling 群組會擴展或縮減以進行回應。
-
AWS CloudFormation 堆疊 – Elastic Beanstalk 使用 AWS CloudFormation 啟動環境中的資源並傳播組態變更。資源定義於範本中,您可在 AWS CloudFormation 主控台
中檢視此範本。 -
網域名稱 – 以 形式路由至 Web 應用程式的網域名稱
subdomain
.region
.elasticbeanstalk.com。
Elastic Beanstalk 會管理所有這些資源。當您終止環境時,Elastic Beanstalk 會終止其中的所有資源。
後續步驟
在您擁有執行應用程式的環境後,可以隨時部署應用程式的新版本或不同的應用程式。部署新的應用程式版本非常快速,因為它不需要佈建或重新啟動EC2執行個體。您也可以使用 Elastic Beanstalk 主控台探索您的新環境。如需詳細步驟,請參閱本指南入門章節中的探索您的環境。
在您部署一個或以上的範例應用程式,並準備好開始在本機開發和執行 Go 應用程式時,請參閱為 Elastic Beanstalk 設置 Go 開發環境。
使用 Elastic Beanstalk 主控台部署
您也可以使用 Elastic Beanstalk 主控台來啟動範例應用程式。如需詳細步驟,請參閱本指南入門章節中的建立範例應用程式。