我將在AWS上構建微服務的體系結構,我想請您澄清我的疑惑。AWS API網關+彈性Beanstalk和微服務
我現在的一般概念
我想用API網關,它公開microsevices'在彈性魔豆運行的API。我想將Elastic Beanstalk放在VPC中,而無需從Internet直接訪問其實例。
問題&疑惑:
- 彈性魔豆得上的應用程序創建的子域。 API網關應使用此子域,並使用集成類型:AWS服務,在操作配置中 - 我是對的嗎?
- 什麼代表一個單一的微服務? Elastic Beanstalk的應用程序是一種特定的可擴展微服務?
- 微服務應該如何相互溝通?我會去使用SQS(簡單隊列服務)。但在其他情況下,兩個微服務通過API網關而不是直接相互通信會更好 - 是嗎?
- 測試環境:我應該在測試環境(或登臺環境)中使用哪種結構?我考慮使用另一個Elastic Beanstalk和其他Amazon服務創建單獨的VPC。
- 測試環境和API網關:我應該如何設置API網關?如果請求具有特定的子域,它應該允許客戶訪問測試環境中的微服務,如:test.mydomain.com/hello_world/say_hello。我不確定如何在CI/CD中使用API網關以使其快速而簡單,而無需手動將某些配置從測試階段複製到生產階段。 (我不期待任何複雜的解決方案,只有一些關於我可以使用什麼組件,部件和概念的提示,更多細節我會自己找到)。
- 您有使用Codep Deploy和/或Jenkins將應用程序部署到Elastic Beanstalk的經驗嗎?我很感興趣:Jenkins,AWS Code Deploy或Jenkins + CodeDeploy。
謝謝先進!
通常,當人們引用微服務時,他們正在討論AWS Lambda或Azure函數。在Lambda的情況下,可以從外部直接從API網關調用函數,然後執行SQS任務或直接啓動其他lambda函數。另外,除非您將VPC連接到某些本地基礎架構並讓Lambda功能訪問這些資產,否則我認爲不需要VPC。 – Jordan