

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

# Lambda MicroVMs的最佳實務
<a name="microvms-best-practices"></a>

遵循這些最佳實務，使用 AWS Lambda MicroVMs 建置可靠、經濟實惠且安全的應用程式。

## 應用程式設計
<a name="microvms-best-practices-design"></a>

設計您的應用程式以使用 MicroVM 快照和生命週期掛鉤：
+ **使用生命週期掛鉤** – 實作 `/run`進行執行後初始化、`/suspend`進行正常清除、重新建立`/resume`連線，以及`/terminate`進行資料清除。
+ **處理重複使用的快照** – 在`/run`掛鉤中產生 UUIDs、秘密和隨機值，而不是在映像建置期間。對所有隨機數字產生使用 CSPRNGs。
+ **恢復設計** – 驗證 `/resume` hook. AWS SDK 連線中的所有網路連線和快取狀態通常會自動復原，但自訂連線可能不會復原。

## 效能
<a name="microvms-best-practices-performance"></a>

使用以下實務最佳化 MicroVM 效能：
+ **適當調整 MicroVM **的大小：選擇符合您 CPU、記憶體和頻寬需求的最小 MicroVM 大小。頻寬會隨著設定的記憶體而擴展。
+ **將快照大小降至最低** – 讓您的應用程式佔用空間保持較小，以減少執行和恢復時間。在擷取映像快照之前，移除建置時間相依性和暫存檔案。
+ **將暫停/繼續用於延遲敏感工作負載** – 將常用環境保持在暫停狀態，以快速恢復執行。

## 安全
<a name="microvms-best-practices-security"></a>

請遵循下列實務來保護 MicroVM 工作負載：
+ **輪換身分驗證權**杖 – 產生短期權杖 (15-30 分鐘）。在過期前在用戶端中實作權杖重新整理邏輯。
+ **特定連接埠的範圍字符** – 使用 `allowedPorts` 參數將字符範圍限制為僅您的應用程式使用的連接埠。
+ **將 VPC 輸出用於敏感流量** – 透過 VPC 輸出連接器將流量路由到資料庫和內部 APIs，而不是公有網際網路。
+ **套用最低權限 IAM** – 將建置角色 （建立映像） 與執行角色 （執行時間） 分開。授予最低必要許可。

## 成本最佳化
<a name="microvms-best-practices-cost"></a>

使用下列策略降低成本：
+ **設定閒置政策** – `maxIdleDurationSeconds`設定為自動暫停閒置MicroVMs。暫停MicroVMs 不會產生運算費用。
+ **設定 maximumDurationInSeconds** – 在每個 MicroVM 上設定硬終止時間，以避免失控成本。
+ **終止未使用的 MicroVMs** – 請勿讓 MicroVMs 無限期執行。`suspendedDurationSeconds` 使用 在延長閒置期間後自動終止。
+ **標籤資源** – 在 MicroVM 映像上使用標籤，以在 AWS Cost Explorer 中進行成本分配和報告。
+ **適當調整 MicroVMs**的大小 – 從符合您效能需求的最小基準開始。您可以在尖峰活動期間爆量至 4 倍基準，而無需重新佈建。
+ **清除未使用的映像** – 刪除不再需要的 MicroVM 映像版本，以降低儲存成本。

## 監控
<a name="microvms-best-practices-monitoring"></a>

有效監控您的 MicroVMs：
+ **檢閱 stateReason** – 當 MicroVMs 意外終止時，`get-microvm`回應會包含 `stateReason`，其中包含意外失敗的原因。