Amazon Web Services 한국 블로그
AWS System Mamager, AppConfig로 애플리케이션 구성 설정을 통한 안전한 배포 기능 출시
AWS Systems Manager의 새로운 기능인 AppConfig를 통해 코드와 별도로 EC2 인스턴스, 컨테이너, 서버리스 애플리케이션 및 함수에서 호스팅되는 모든 크기의 애플리케이션에서 구성 변경을 빠르게 배포할 수 있습니다.
Config는 API 또는 콘솔을 사용하여 생성하고 업데이트할 수 있으며 정의된 스키마 템플릿 또는 AWS Lambda 함수를 사용하여 배포 전에 변경 사항을 검증할 수 있습니다. AppConfig는 또한 자동화된 안전 제어 기능이 있어 구성 변경 배포를 모니터링할 수 있습니다. 그리고 문제가 발생하면 이전 구성으로 롤백할 수 있습니다. 구성 배포 업데이트는 실행 중인 애플리케이션에 즉시 이용 가능합니다. 간단한 API를 사용하여 정기적으로 폴링하고 최신 이용 가능한 구성을 검색할 수 있습니다.
AppConfig- 애플리케이션 구성 설정 관리
AppConfig를 사용하여 애플리케이션에 대한 구성 설정울 생성하고 관리하는 것은 간단한 프로세스입니다. 먼저 애플리케이션을 생성하고 해당 애플리케이션에 대해 하나 이상의 환경, 구성 프로파일 및 배포 전략을 정의합니다. 환경은 베타 또는 프로덕션 환경과 같이 논리적 배포 그룹을 나타냅니다. 또는 웹, 모바일 및 백엔드 구성 요소와 같은 애플리케이션의 하위 구성 요소일 수 있습니다. 저는 각 환경에 대해 Amazon CloudWatch 알람을 구성했습니다. AWS AppConfig에서 환경을 모니터링하며 배포 중에 알람이 켜지면 롤백을 트리거합니다. 구성 프로파일은 선택 사항인 검사기와 함께 배포할 구성 데이터의 소스를 정의합니다. 검사기는 배포 전에 구성 데이터가 올바른지 확인합니다. 배포 전략은 배포가 수행되는 방법을 정의합니다.
시작하려면 AWS Systems Manager 대시보드로 이동하여 탐색 창에서 [AppConfig]를 선택합니다. [Create configuration data]를 클릭하면 애플리케이션 이름과 설명(선택 사항)을 함께 지정하는 페이지로 이동합니다. 원하는 경우 태그를 애플리케이션에 적용할 수도 있습니다.
애플리케이션을 생성하면 [Environments] 및 [Configuration Profiles] 탭이 있는 페이지로 이동합니다. 애플리케이션의 프로덕션 환경을 대상으로 하는 환경을 생성해보겠습니다. [Environments] 탭을 선택하고 [Create environment]를 클릭합니다. 그리고 다음 페이지에서 환경에 이름을 지정하고 [Monitors]에서 [Enable rollback on Cloudwatch alarms]를 선택합니다. 그리고 배포 중에 선택한 알람을 모니터링하는 AWS AppConfig를 활성화하는 IAM 역할을 제공한 후 Add를 클릭합니다. 역할에 필요한 권한에 대한 세부 정보는 여기에서 찾을 수 있습니다.
다음으로 구성 프로파일을 설정합니다. 애플리케이션의 세부 정보 보기로 돌아가 [Configuration Profiles] 탭을 선택하고 [Create configuation profile]을 클릭합니다. 필요한 첫 번째 세부 정보는 구성에 대한 이름과 AWS AppConfig에서 구성에 대한 액세스를 담당할 서비스 역할입니다. 새 역할을 생성하거나 기존 역할을 선택할 수 있습니다.
[Next]를 클릭하고 배포할 구성 데이터의 소스를 선택합니다. Systems Manager 설명서에서 선택하거나 파라미터 스토어의 파라미터를 선택합니다. 이 연습에서는 파라미터를 true로 설정하여 이 샘플 애플리케이션의 사용자에 대해 해당 기능과 연관된 기능성을 활성화합니다.
다음에 선택 사항으로 하나 이상의 검사기를 프로파일에 추가합니다. 이렇게 하면 AWS AppConfig는 업데이트된 설정을 배포할 때 값이 정확하고 애플리케이션 장애를 초래하지 않을 것이라고 것을 확인할 수 있습니다. 여기에서는 JSON 스키마를 사용하기 때문에 구문 확인을 사용합니다. 검증, 구문 확인을 수행할 코드를 실행하려면 Lambda 함수를 구성합니다. 스키마를 입력하면 바로 [Create configuration profile]를 클릭하여 프로세스를 완료합니다.
한 가지 남은 작업은 롤아웃을 제어할 배포 전략을 구성하는 것입니다. AWS AppConfig 대시보드에서 [Deployment Strategies] 탭을 선택하거나 [Create deployment strategy]를 클릭하여 이 작업을 수행합니다. 여기에서 AWS AppConfig가 한 번에 애플리케이션을 호스팅하는 인스턴스의 1/5(20%)을 배포하도록 하는 전략을 구성했습니다. 모니터링은 배포 중에 그리고 모든 배포가 완료되면 발생하는 ‘베이크(bake)’ 시간 중에 수행됩니다. 배포와 베이크 시간 동안 무언가 잘못되면 이 환경과 관련된 알람이 트리거되고 롤백이 일어납니다. 여기에서 전략을 설정할 수 있는 옵션에 대해 자세히 알아보십시오. [Create deployment strategy]를 클릭하면 이 단계가 완료되고 배포 중에 전략을 선택할 수 있습니다.
환경, 애플리케이션에 대해 구성된 구성 파일, 구축한 배포 전략을 통해 배포를 시작할 준비가 되었습니다. 구성 파일로 이동하려면 [Start deployment]를 클릭합니다.
저는 배포하려는 환경, 배포하려는 구성 변경을 포함하는 파라미터 버전, 배포 전략을 선택했습니다. 그리고 선택 사항인 설명을 입력할 수 있습니다. 선택한 파라미터 버전은 2입니다. 파라미터의 버전 1은 값 { “featureX”: false }을 갖습니다. 파라미터의 버전 2는 값 { “featureX”: true }을 갖고 배포되면 즉시 사용자의 기능과 관련 있는 기능성을 활성화합니다.,
[Start deployment]를 클릭하여 검증 및 배포 프로세스를 시작합니다. 파라미터의 버전 2 값이 유효하며 배포는 검증 이후에 진행됩니다. 대상에서 배포를 사용할 수 있게 되면 구성의 다음 폴에서 대상은 업데이트된 구성을 수신하고 featureX와 연결된 새 기능은 사용자를 위해 안전하게 활성화됩니다.
이 게시물에서 시의 적절한 롤아웃(예: 새 제품 출시 또는 발표)이 요구되는 기능을 즉시 활성화할 수 있는 기능 토글에 대한 간단한 경험을 알려드렸습니다. AWS AppConfig는 하지만 아주 다양한 사용 사례에서 활용할 수 있으면 몇 가지 고려해야 할 예제가 있습니다.
- A/B 테스트: 어떤 애플리케이션 버전이 더 많은 수익을 창출하는지 실험을 수행합니다.
- 사용자 멤버십: 프리미엄 가입자에게 애플리케이션 유료 컨텐츠에 대한 액세스를 허용합니다.
AppConfig로부터 배포를 수신하는 대상은 Systems Manager 에이전트로 구성할 필요가 없으며 다른 Systems Mananger 기능에서 필요한 AWS Identity and Access Management(IAM) 인스턴스 프로파일도 필요 없습니다. 이를 통해 AppConfig는 관리된 인스턴스 및 관리되지 않는 인스턴스와 사용할 수 있습니다. 사용자 가이드에서 AppConfig에 대해 자세히 알아볼 수 있으며 여기에서 요금 정보를 확인할 수 있습니다. AppConfig는 지금 모든 상용 AWS 리전의 고객들에게 이용 가능합니다.