QuickStart:將 Go 應用程式部署至 Elastic Beanstalk - AWS Elastic Beanstalk

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

QuickStart:將 Go 應用程式部署至 Elastic Beanstalk

本 QuickStart 教學課程將逐步引導您建立 Go 應用程式並將其部署至 AWS Elastic Beanstalk 環境。

注意

本 QuickStart 教學課程旨在用於示範目的。請勿將本教學課程中建立的應用程式用於生產流量。

AWS 您的帳戶

如果您尚未成為 AWS 客戶,則需要建立 AWS 帳戶。註冊可讓您存取 Elastic Beanstalk 和其他您需要 AWS 的服務。

如果您已經有 AWS 帳戶,您可以繼續前往 先決條件

註冊 AWS 帳戶

如果您沒有 AWS 帳戶,請完成下列步驟來建立一個 。

註冊 AWS 帳戶
  1. 開啟 https://portal.aws.amazon.com/billing/signup

  2. 請遵循線上指示進行。

    部分註冊程序需接收來電,並在電話鍵盤輸入驗證碼。

    當您註冊 時 AWS 帳戶,AWS 帳戶根使用者會建立 。根使用者有權存取該帳戶中的所有 AWS 服務 和資源。作為安全最佳實務,請將管理存取權指派給使用者,並且僅使用根使用者來執行需要根使用者存取權的任務

AWS 會在註冊程序完成後傳送確認電子郵件給您。您可以隨時登錄 https://aws.amazon.com/ 並選擇我的帳戶,以檢視您目前的帳戶活動並管理帳戶。

建立具有管理存取權的使用者

註冊 後 AWS 帳戶,請保護 AWS 帳戶根使用者、啟用 AWS IAM Identity Center和建立管理使用者,以免將根使用者用於日常任務。

保護您的 AWS 帳戶根使用者
  1. 選擇根使用者並輸入 AWS 帳戶 您的電子郵件地址,以帳戶擁有者AWS Management Console身分登入 。在下一頁中,輸入您的密碼。

    如需使用根使用者登入的說明,請參閱 AWS 登入 使用者指南中的以根使用者身分登入

  2. 若要在您的根使用者帳戶上啟用多重要素驗證 (MFA)。

    如需說明,請參閱《IAM 使用者指南》中的為您的 AWS 帳戶 根使用者 (主控台) 啟用虛擬 MFA 裝置

建立具有管理存取權的使用者
  1. 啟用 IAM Identity Center。

    如需指示,請參閱《AWS IAM Identity Center 使用者指南》中的啟用 AWS IAM Identity Center

  2. 在 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 存取入口網站

指派存取權給其他使用者
  1. 在 IAM Identity Center 中,建立一個許可集來遵循套用最低權限的最佳實務。

    如需指示,請參閱《AWS IAM Identity Center 使用者指南》中的建立許可集

  2. 將使用者指派至群組,然後對該群組指派單一登入存取權。

    如需指示,請參閱《AWS IAM Identity Center 使用者指南》中的新增群組

先決條件

為了遵循本指南的程序,您需要命令列終端機或 shell 來執行命令。命令清單前會出現提示字元 ($) 及目前的目錄名稱 (如有)。

~/eb-project$ this is a command this is output

在 Linux 和 macOS 上,您可以使用偏好的 Shell 和套件軟體管理工具。在 Windows 上,您可以安裝適用於 Linux 的 Windows 子系統,以取得與 Windows 整合的 Ubuntu 和 Bash 版本。

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 CLI 部署 Go 應用程式

接著,您建立應用程式環境,並透過 Elastic Beanstalk 部署已設定的應用程式。

欲建立環境並部署您的 Go 應用程式
  1. 透過 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 平台版本建立環境。

  2. (選用) 再次執行 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

  3. 使用 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 CLI 終止 Elastic Beanstalk 環境,請執行下列命令。

~/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 主控台來啟動範例應用程式。如需詳細步驟,請參閱本指南入門章節中的建立範例應用程式