작업 간소화 - 에서 마이크로서비스 구현 AWS

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

작업 간소화

마이크로서비스를 실행, 유지 관리 및 모니터링하는 데 필요한 운영 노력을 더욱 간소화하기 위해 완전 서버리스 아키텍처를 사용할 수 있습니다.

Lambda 기반 애플리케이션 배포

zip 파일 아카이브를 업로드하거나 유효한 Amazon ECR 이미지 URI를 사용하여 콘솔 UI를 통해 컨테이너 이미지를 생성하고 업로드하여 Lambda 코드를 배포할 수 있습니다. 그러나 Lambda 함수가 복잡해져 계층, 종속성 및 권한이 있는 경우 UI를 통한 업로드는 코드 변경에 적합하지 않을 수 있습니다.

AWS CloudFormation 및 AWS Serverless Application Model (AWS SAM) AWS 클라우드 개발 키트 (AWS CDK)또는 Terraform을 사용하면 서버리스 애플리케이션을 정의하는 프로세스가 간소화됩니다. CloudFormation에서 기본적으로 지원하는 AWS SAM은 서버리스 리소스를 지정하기 위한 간소화된 구문을 제공합니다.AWS Lambda 레이어는 여러 Lambda 함수에서 공유 라이브러리를 관리하고, 함수 공간을 최소화하고, 테넌트 인식 라이브러리를 중앙 집중화하고, 개발자 경험을 개선하는 데 도움이 됩니다. Java용 Lambda SnapStart는 지연 시간에 민감한 애플리케이션의 시작 성능을 향상시킵니다.

배포하려면 CloudFormation 템플릿에서 리소스 및 권한 정책을 지정하고, 배포 아티팩트를 패키징하고, 템플릿을 배포합니다. AWS CLI 도구인 SAM Local은 Lambda에 업로드하기 전에 서버리스 애플리케이션의 로컬 개발, 테스트 및 분석을 허용합니다.

AWS Cloud9 IDE, AWS CodeBuild AWS CodeDeploy, 등의 AWS CodePipeline 도구와 통합하면 SAM 기반 애플리케이션의 작성, 테스트, 디버깅 및 배포가 간소화됩니다.

다음 다이어그램은 CloudFormation 및 AWS CI/CD 도구를 사용하여 AWS Serverless Application Model 리소스를 배포하는 방법을 보여줍니다.

AWS Serverless Application Model (AWS SAM)를 보여주는 다이어그램

그림 2: AWS Serverless Application Model (AWS SAM)

다중 테넌시 복잡성 추상화

SaaS 플랫폼과 같은 다중 테넌트 환경에서는 다중 테넌시와 관련된 복잡성을 간소화하여 개발자가 특성 및 기능 개발에 집중할 수 있도록 하는 것이 중요합니다. 이는 교차 커팅 문제를 해결하기 위한 공유 라이브러리를 제공하는 AWS Lambda Layers와 같은 도구를 사용하여 달성할 수 있습니다.이 접근 방식의 이론적 근거는 공유 라이브러리와 도구를 올바르게 사용하면 테넌트 컨텍스트를 효율적으로 관리하는 것입니다. 

그러나 복잡성과 위험으로 인해 비즈니스 로직을 캡슐화하는 것으로 확장해서는 안 됩니다. 공유 라이브러리의 근본적인 문제는 업데이트를 둘러싼 복잡성이 증가하여 표준 코드 복제에 비해 관리하기가 더 어려워진다는 것입니다. 따라서 가장 효과적인 추상화를 위해 공유 라이브러리 사용과 중복 간의 균형을 맞추는 것이 중요합니다.

API 관리

APIs 관리는 특히 여러 버전, 개발 주기의 단계, 권한 부여 및 제한 및 캐싱과 같은 기타 기능을 고려할 때 시간이 많이 걸릴 수 있습니다. API Gateway 외에도 일부 고객은 API 관리를 위해 ALB(Application Load Balancer) 또는 NLB(Network Load Balancer)를 사용합니다. Amazon API Gateway는 RESTful APIs. 이를 통해 프로그래밍 방식으로 APIs를 생성하고, 백엔드 서비스, 권한 부여 및 액세스 제어, 속도 제한, 캐싱, 모니터링 및 트래픽 관리에서 데이터, 비즈니스 로직 또는 기능에 액세스할 수 있는 "선문" 역할을 하며, 서버를 관리하지 않고도 APIs.

그림 3은 API Gateway가 API 호출을 처리하고 다른 구성 요소와 상호 작용하는 방법을 보여줍니다. 모바일 디바이스, 웹 사이트 또는 기타 백엔드 서비스의 요청은 지연 시간을 줄이고 최적의 사용자 경험을 제공하기 위해 가장 가까운 CloudFront PoP(Point of Presence)로 라우팅됩니다.

API Gateway 통화 흐름을 보여주는 다이어그램

그림 3: API Gateway 통화 흐름