Product Catalog App 배포
Last updated
Was this helpful?
Last updated
Was this helpful?
AWS App Mesh를 이해하려면 위에서 실행되는 모든 애플리케이션을 이해하는 것이 가장 좋습니다. 이 실습에서는 애플리케이션 설정 및 배포의 다음 부분에 대해 설명합니다.
애플리케이션 아키텍처에 대해 설명합니다.
Application Services 컨테이너 이미지를 작성합니다.
컨테이너 이미지를 Amazon ECR에 푸시합니다.
처음에는 AWS 앱 메시 없이 Amazon EKS 클러스터에 애플리케이션 서비스를 배포합니다.
서비스 간의 연결을 테스트합니다.
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 backend prodcatalog
.
Product Catalog backend prodcatalog
»»> calls »»> Catalog Detail backend proddetail
.
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 로깅이 활성화 되었는지 확인합니다.
Fargate 와 Nodegroup 간에 연결을 확인하여 위해 frontend-node
컨테이너에 접속하여 prodcatalog
백엔트 서비스 엔드포인트를 호출합니다.
이번에는 prodcatalog
와 proddetail
간의 연결을 확인합니다. (ctrl+d 로 container에서 빠져나옵니다.)