Product Catalog App 배포
AWS App Mesh를 이해하려면 위에서 실행되는 모든 애플리케이션을 이해하는 것이 가장 좋습니다. 이 실습에서는 애플리케이션 설정 및 배포의 다음 부분에 대해 설명합니다.
애플리케이션 아키텍처에 대해 설명합니다.
Application Services 컨테이너 이미지를 작성합니다.
컨테이너 이미지를 Amazon ECR에 푸시합니다.
처음에는 AWS 앱 메시 없이 Amazon EKS 클러스터에 애플리케이션 서비스를 배포합니다.
서비스 간의 연결을 테스트합니다.
1. Application Architecture
App Mesh를 생성하는 과정을 안내할 애플리케이션 아키텍처의 예는 Product Catalog
라고 하며 모든 eCommerce 애플리케이션에 사용됩니다. 이 애플리케이션은 세 가지 마이크로 서비스로 구성됩니다.
프런트엔드
프런트엔드 서비스
frontend-node
는 제품 카탈로그 기능에 대한 UI를 보여줍니다.ejs 템플레이팅과 함께 Nodejs에서 개발되었습니다.
EKS 관리 노드 그룹에 배포되었습니다.
제품 카탈로그 백엔드
백엔드 서비스
prodcatalog
는 다음 작업을 수행하는 REST API 서비스입니다.제품 카탈로그에 제품을 추가합니다.
제품 카탈로그에서 제품을 가져옵니다.
카탈로그 세부 정보 백엔드 서비스
proddetail
를 호출하여 벤더와 같은 제품 카탈로그 세부 정보를 가져옵니다.제품 카탈로그에서 모든 제품을 가져옵니다.
Python Fask Restplus와 Rest API용 Swagger UI가 함께 제공됩니다.
EKS 파게이트에 배치되었습니다.
Catalog Detail 백엔드
백엔드 서비스
proddetail
은 다음 작업을 수행하는 REST API 서비스입니다.버전 번호 및 공급업체 이름이 포함된 카탈로그 세부 정보를 가져옵니다.
Nodejs로 배포됩니다.
EKS 관리 노드 그룹에 배포되었습니다.
위의 다이어그램에서 Product Catalog
애플리케이션의 서비스 간 service-call 관계를 다음과 같이 요약할 수 있습니다.
Frontend
frontend-node
»»> calls »»> Product Catalog backendprodcatalog
.Product Catalog backend
prodcatalog
»»> calls »»> Catalog Detail backendproddetail
.
2. Catalog 애플리케이션 생성
3가지 서비스에 대한 Container 이미지를 빌드하여 ECR에 푸시합니다. (약 5분 소요됩니다.)
콘솔에서 ECR내의 이미지를 확인할 수 있습니다.
애플리케이션을 EKS 클러스터에 배포합니다. (Fargate pod 가 생성되기 까지는 약 4분이 소요됩니다.)
배포된 정보를 확인합니다.
Product Catalog 서비스는 Fargate에 배포되어야 하며(네임스페이스 productlog-ns
, label : app= productlog
) 백엔드와 Catalog Product Detail은 Mnaged Nodegroup에 배포됩니다.
fargate pod가 service account role을 사용하는지 확인합니다.
fargate pod 로깅이 활성화 되었는지 확인합니다.
3. 애플리케이션 테스트
Fargate 와 Nodegroup 간에 연결을 확인하여 위해 frontend-node
컨테이너에 접속하여 prodcatalog
백엔트 서비스 엔드포인트를 호출합니다.
이번에는 prodcatalog
와 proddetail
간의 연결을 확인합니다. (ctrl+d 로 container에서 빠져나옵니다.)
Last updated