Amazon Web Services 한국 블로그
AWS Well-Architected Tool 내 서버리스 렌즈 신규 출시 (서울 리전 포함)
클라우드에서 애플리케이션을 구축 및 실행할 때 2015년에 정식 출시한, AWS Well-Architected 프레임워크를 사용하면 정식으로 AWS 모범 사례와 고객의 워크로드를 비교하고 개선에 대한 지침을 얻을 수 있습니다. Well-Architected 프레임워크에서는 고객 및 파트너에게 클라우드 아키텍처를 설계하고 평가하는 일관된 방법을 제공하며, 이는 다섯 개 기준에 기반합니다.
- 운영 효율성
- 보안
- 안정성
- 성능 효율성
- 비용 최적화
워크로드에 특정한 조언을 더 많이 제공하기 위해 2017년 AWS는 “렌즈”의 개념을 통해 프레임워크를 확장하여 일반적인 관점을 넘어서 구체적인 기술 영역으로 진입하였습니다. 현재 세 가지 렌즈를 사용할 수 있습니다.
- 서버리스
- HPC(고성능 컴퓨팅)
- IoT(사물 인터넷)
개선 작업의 첫 번째 단계는, 측정 대상과 측정 방법을 결정하는 일입니다. 더 구조적인 방식으로 워크로드를 검토하기 위해 2018년 AWS Well-Architected Tool을 출시했습니다. AWS Management Console에서 무료로 사용할 수 있는 도구로, 여기에서 워크로드를 정의하고 다섯 개 기준의 측면에서 질문에 답변할 수 있습니다.
Well-Architected Tool은 여러 방법으로 사용할 수 있습니다. 예를 들어, 다음과 같습니다.
- 특정 애플리케이션에서 작업할 때 이 도구를 사용하여 리스크를 평가하고 개선할 영역을 찾을 수 있습니다.
- 여러 애플리케이션을 담당하는 경우 이 도구를 사용하여 모든 애플리케이션의 현재 상태에 대한 가시성을 얻을 수 있습니다.
오늘 Well-Architected Tool에 렌즈를 적용하는 기능을 추가했으며 처음 사용 가능한 기능이 서버리스 렌즈임을 발표하게 되어 정말 기쁩니다!
AWS Well-Architected Tool에서 서버리스 렌즈 사용
Well-Architected Tool 콘솔에서 워크로드를 먼저 정의합니다. 현재 Amplify Framework를 사용하여 모바일 앱에 대한 백엔드를 구축합니다. 간단한 게임이지만, DynamoDB 글로벌 테이블을 사용하여 사용자에 대한 데이터를 저장하려고 합니다. 애플리케이션은 2개의 AWS 리전에서 실행할 예정입니다. AWS 계정 ID 추가는 선택 사항이지만, 여러 계정 설정에서 애플리케이션 배포를 이해하는 데 도움이 될 수 있습니다.
이제 적용할 렌즈를 선택할 수 있습니다. 기본적으로 AWS Well-Architected 프레임워크가 있습니다. 서버리스 렌즈를 선택합니다. 그러면 프레임워크 모범 사례에 따라 서버리스 앱을 설계, 배포 및 구축하는 방법을 이해하는 데 유용한 질문을 추가합니다.
워크로드가 정의되면 내 검토를 시작합니다. 서버리스 렌즈로 바로 이동합니다. 새로운 질문은 다섯 개 기준에 분포됩니다. 예를 들어, 제가 자주 하는 질문 중 하나는 바로 성능에 관한 것입니다.
각 질문에 대해 콘솔의 오른쪽에는 가능한 답변과 사용된 용어를 이해하는 데 도움이 되는 리소스가 표시됩니다. 특히, 다음과 같이 구현의 일부인 활동과 기술 옵션을 선택합니다.
- 데이터 스트림(예: Amazon Kinesis 또는 DynamoDB 스트림) 및 비동기식 함수 호출을 사용하여 동시성을 개선합니다.
- 데이터베이스 액세스를 줄이도록 인 메모리에서 사용자 데이터를 캐시합니다. 또한 Lambda 함수의
/tmp
를 사용하거나 Amazon ElastiCache와 같은 외부 데이터 스토어를 사용할 수도 있습니다. - 서비스 통합이 기본적으로 작업을 수행할 수 있는 경우(예: Amazon API Gateway에서 Kinesis Data Firehose를 호출해야 하는 경우) 함수를 제거합니다. 그러면 비용도 최적화할 수 있습니다.
저장한 후 종료합니다. 1개 질문에만 답했어도 도구에서 이미 몇 가지 피드백을 받았습니다. 워크로드 개요에서 서버리스 렌즈를 선택합니다. 이때 리스크가 높아서 이를 완화해야 합니다.
바로 아래에서 리스크를 높이는 질문에 기반한 특정 권장 사항을 포함하여 리스크를 처리하는 방법에 대한 제안이 있습니다. 서버리스 애플리케이션은 플랫폼에서 자동으로 확장하는 올바른 용량 단위를 사용하여 성능과 비용의 균형을 맞추는 것이 중요합니다.
첫 번째 권장 사항을 클릭하면 개선 계획에 대한 특정 작업 항목을 수신합니다. 여기에서는 Lambda 함수, DynamoDB 테이블 또는 API Gateway 엔드포인트와 같이 서버리스 앱에서 사용할 수 있는 다양한 아키텍처 구성 요소를 포괄합니다. 이 경우 Lambda Power Tuning 오픈 소스 도구를 사용하여 Lambda 함수의 메모리/성능 구성을 미세 조정하도록 제안을 따르려고 합니다.
개선 계획을 진행하기 전에 계속해서 모든 질문에 답변합니다. 이제 AWS 콘솔에서 전체 보고서를 보거나 PDF 형식으로 다운로드하여 다른 관계자와 공유할 수 있습니다. 이러한 방식으로 함께 작업하여 필요한 개선을 계획하고 성공적인 서버리스 앱을 구축할 수 있습니다.
개선을 마친 후에는 다시 돌아가 높은 리스크 문제를 없앨 수 있는 정답을 표시할 수 있습니다. 뛰어난 아키텍처는 여러 반복의 결과로 얻을 수 있습니다.
정식 출시
서버리스 렌즈는 오늘 Well-Architected Tool을 제공하는 모든 리전에서 사용 가능합니다(AWS 리전 표 참조). 기존 워크로드에 적용하거나 도구에서 정의한 새 워크로드에 대해 사용할 수 있습니다.
AWS Well-Architected Tool을 사용하는 데 비용은 발생하지 않으며, 이를 사용하여 작업하는 애플리케이션을 개선하거나 여러분이 근무하는 부서나 영역에서 사용하는 여러 워크로드에 대한 가시성을 확보할 수 있습니다.
CIO/CTO로서 담당하는 모든 애플리케이션의 상태를 설명하는 대시보드로 이를 사용할 수 있습니다. 더 쉽게 작업하기 위해 다른 AWS 계정과 워크로드를 공유할 수 있습니다. 이를 통해 여러 애플리케이션에서 단일한 보기를 확보할 수 있습니다.
도구의 출력은 리스크와 이를 처리하는 방법을 포함하는 보고서로 제공되므로, 프로덕션으로 진행하는 경우 뿐만 아니라, 전체 애플리케이션 수명 주기, 특히, 설계 및 구현 단계에서 도구를 사용해야 합니다. 너무 늦으면 사용자에게 제공되는 일부 제안을 구현하지 못할 수 있기 때문입니다.
– Danilo