本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
QuickStart:將 Node.js 應用程式部署至 Elastic Beanstalk
本 QuickStart 教學課程將逐步引導您建立 Node.js 應用程式並將其部署至 AWS Elastic Beanstalk 環境。
注意
本 QuickStart 教學課程旨在用於示範目的。請勿將本教學課程中建立的應用程式用於生產流量。
章節
AWS 您的帳戶
如果您還不是 AWS 客戶,則需要建立 AWS 帳戶。註冊可讓您存取 Elastic Beanstalk 和其他您需要 AWS 的服務。
如果您已經有 AWS 帳戶,您可以繼續前往 先決條件。
註冊 AWS 帳戶
如果您沒有 AWS 帳戶,請完成下列步驟來建立一個 。
註冊 AWS 帳戶
開啟 https://portal.aws.amazon.com/billing/signup
。 請遵循線上指示進行。
部分註冊程序需接收來電,並在電話鍵盤輸入驗證碼。
當您註冊 時 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 Identity Center。
如需指示,請參閱《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 存取入口網站。
先決條件
為了遵循本指南的程序,您需要命令列終端機或 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。
Node.js
遵循 Node.js 網站上的如何安裝 Node.js,在本機電腦上安裝
執行下列命令來驗證 Node.js 安裝。
~$ node -v
步驟 1:建立 Node.js 應用程式
建立專案目錄。
~$ mkdir eb-nodejs
~$ cd eb-nodejs
接著,請建立您將使用 Elastic Beanstalk 進行部署的應用程式。我們將建立一個「Hello World」RESTful Web 服務。
範例 ~/eb-nodejs/server.js
const http = require('node:http'); const hostname = '127.0.0.1'; const port = 8080; const server = http.createServer((req, res) => { res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); res.end('Hello Elastic Beanstalk!\n'); }); server.listen(port, hostname, () => { console.log(`Server running at http://${hostname}:${port}/`); });
此應用程式會在連接埠 8080 上開啟接聽程式。Elastic Beanstalk 預設會將 Node.js 的請求轉送至連接埠 8080 上的應用程式。
步驟 2:在本機執行您的應用程式
執行下列命令以在本機執行您的應用程式。
~/eb-nodejs$ node server.js
您應該會看到下列文字。
Server running at http://127.0.0.1:8080/
在 Web 瀏覽器http://127.0.0.1:8080/
中輸入 URL 地址。瀏覽器應該顯示「Hello Elastic Beanstalk!」。
步驟 3:使用 EB CLI 部署 Node.js 應用程式
執行下列命令,為此應用程式建立 Elastic Beanstalk 環境。
建立環境並部署 Node.js 應用程式
-
透過 eb init 命令初始化您的 EB CLI 儲存庫。
~/eb-nodejs$
eb init -p node.js nodejs-tutorial --region us-east-2
此命令會建立名為 的應用程式,
nodejs-tutorial
並設定您的本機儲存庫,以使用最新的 Node.js 平台版本建立環境。 -
(選用) 再次執行 eb init 來設定預設金鑰對,藉此使用 SSH 連接至執行您應用程式的 EC2 執行個體:
~/eb-nodejs$
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 檔案,並將其部署到環境中的 EC2 執行個體。部署應用程式之後,Elastic Beanstalk 會在連接埠 8080 上啟動它。
~/eb-nodejs$
eb create nodejs-env
Elastic Beanstalk 大約需要五分鐘的時間來建立您的環境。
步驟 4:在 Elastic Beanstalk 上執行應用程式
當建立環境的程序完成時,請使用 開啟您的網站eb open。
~/eb-nodejs$ eb open
恭喜您!您已使用 Elastic Beanstalk 部署 Node.js 應用程式!這會開啟瀏覽器視窗,並使用為應用程式建立的網域名稱。
步驟 5:清除
您可以在完成使用應用程式時終止您的環境。Elastic Beanstalk 會終止與您的環境相關聯的所有 AWS 資源。
若要使用 EB CLI 終止 Elastic Beanstalk 環境,請執行下列命令。
~/eb-nodejs$ 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 主控台探索您的新環境。如需詳細步驟,請參閱本指南入門章節中的探索您的環境。
嘗試更多教學課程
如果您想要使用不同的範例應用程式來嘗試其他教學課程,請參閱 更多適用於 Node.js 的 Elastic Beanstalk 範例應用程式和教學課程。
部署範例應用程式或兩個,並準備好開始在本機開發和執行 Node.js 應用程式後,請參閱 設定 Elastic Beanstalk 的 Node.js 開發環境。
使用 Elastic Beanstalk 主控台部署
您也可以使用 Elastic Beanstalk 主控台來啟動範例應用程式。如需詳細步驟,請參閱本指南入門章節中的建立範例應用程式。