AWS AppConfig Java 샘플
V2-2024
개요
이 프로젝트는 코드 변환을위한 Amazon Q Developer Agent의 데모입니다. 이것은 AWS SDK를 사용하여 AWS AppConfig 서비스에 저장된 구성을 기반으로 한 달 동안 무료 영화 목록을 표시하는 Java 1.8 기반 마이크로 서비스 응용 프로그램입니다. 이 응용 프로그램은 2020 년에 처음 오픈 소스였으며 Spring Boot 2.X, Log4J 2.13.x, Mockito 1.X, Javax 및 Junit 4와 같은 레거시 버전의 라이브러리를 사용합니다.
코드 변환을위한 Amazon Q Developer Agent는 파일의 코드 언어 버전을 업그레이드 할 수 있습니다. JetBrains의 모듈과 Project 또는 전체 작업 공간을 Visual Studio Code에서 변환 할 수 있습니다. Amazon Q는 먼저 소스 언어 버전에서 코드를 작성하고 코드를 변환하는 데 필요한 정보가 있는지 확인합니다. Amazon Q가 코드를 성공적으로 변환 한 후에는 IDE (Integrated Development Environment)의 변경 사항을 확인하고 수락합니다. 자세한 내용은 Code Transformation의 Amazon Q Developer Agent가 작동하는 방법을 참조하십시오.
시작 가이드 및 코드 변환을위한 Amazon Q Developer Agent가 Java 업그레이드를 가속화하는 방법 3 가지 방법을 참조하십시오.
설치 지침
현지의
- 지역 IDE에서 응용 프로그램을 컴파일하십시오
- 새 터미널을 열고
java -jar .targetmovie-service-0.1.0.jar 입력하십시오 - 아래 AWS 섹션의 1 단계를 따라 기본 AWS 계정 프로필에서 AppConfig 구성을 설정하십시오.
- 브라우저를 열고 http : // localhost : 8080/movies/getmovies로 이동하십시오
- 유료 영화 목록을 볼 수 있어야합니다.
AWS
1 단계 : AWS AppConfig에서 응용 프로그램, 환경 및 구성 프로필 작성
- AWS Systems Manager 콘솔을 엽니 다.
- 왼쪽 탐색 창에서 AWS AppConfig를 선택하고 시작하기 시작합니다.
- AWS AppConfig 환영 페이지가 나타나면 왼쪽 탐색에서 응용 프로그램 작성을 클릭하십시오.
- 이름의 경우 응용 프로그램의 이름을 입력하십시오. ( MyContainerApplication ) 선택 사항 설명을 추가하고 응용 프로그램에 태그를 적용 할 수 있습니다. 응용 프로그램 작성을 선택하십시오.
- 응용 프로그램이 작성된 후에는 환경 및 구성 프로파일이있는 페이지를 사용하여 환경 작성을 선택한 다음 이름 ( MyContainerApplicationProductionEnvironment ) 및 환경에 대한 선택적 설명을 입력합니다. 선택적으로 태그를 추가 하고이 환경에 대한 Amazon CloudWatch 알람을 구성 할 수도 있습니다.
- 최상위 내비게이션에서 응용 프로그램 이름을 선택하고 구성 프로파일 및 기능 플래그 탭에서 구성 프로파일 생성 및 프리폼 구성을 선택하십시오.
- 이름 ( MyContainerApplicationConfigurationProfile )을 입력하고 구성 프로파일에 대한 선택 사항 설명.
- 구성 소스에서 AWS AppConfig 호스팅 구성 구성을 선택하십시오. 컨텐츠에서 JSON을 선택하고 다음 컨텐츠를 붙여 넣은 다음 다음을 선택하십시오.
{
"movies": [
{
"id": 1,
"movieName": "The Shawshank Redemption"
},
{
"id": 2,
"movieName": "City of God"
},
{
"id": 3,
"movieName": "Memento"
},
{
"id": 4,
"movieName": "The Intouchables"
},
{
"id": 5,
"movieName": "Stardust"
},
{
"id": 6,
"movieName": "Apocalypto"
},
{
"id": 7,
"movieName": "Taxi Driver"
},
{
"id": 8,
"movieName": "No Country for Old Men"
},
{
"id": 9,
"movieName": "Planet 51"
},
{
"id": 10,
"movieName": "The Beach"
}
]
}
- (선택 사항) 구성을 검증하기 위해 유효성 검사기를 추가 할 수 있습니다. 자세한 내용은 AWS AppConfig 문서의 유효성 검사기에 대해 확인하십시오.
- 구성 프로파일 작성을 선택합니다.
- 배포 시작을 선택하십시오.
- 환경, 호스팅 된 구성 버전, 배포 전략 및 배포 프로세스를 시작하기위한 선택적 설명을 선택하십시오.
- 사용자 정의 배포 전략을 만들려면 배포 전략 만들기를 선택하십시오. 또는 AWS AppConfig가 제공하는 사전 정의 된 배포 전략 중 하나를 선택하십시오. 자세한 내용은 AWS AppConfig 문서에서 배포 전략 생성을 확인하십시오. 이 게시물의 목적으로 AppConfig.linear50percentevery30seconds 배포 전략을 선택했습니다.
참고 : 선택한 배포 전략에 따라이 작업을 완료하는 데 몇 분이 걸릴 수 있습니다. 배포 상태가 완료 되 자마자 응용 프로그램에서 구성을 사용할 수 있습니다.
** v1-2020 **
참고 : AppConnfig 관련 기능을 시도하려는 경우에만이 버전을 사용하십시오.
개요
이는 AWS AppConfig를 사용하여 컨테이너 워크로드에 블로그 게시물 응용 프로그램 구성 배포에 설명 된대로 AWS AppConfig Java 응용 프로그램의 데모입니다. 이 데모는 AWS AppConfig 서비스와 Java MicroServices 애플리케이션을 통합하는 방법을 보여줍니다.
AWS AppConfig는 AWS 고객이 EC2 인스턴스, 컨테이너, AWS LAMBDA, 모바일 앱, IoT 장치 및 온 프레미스 서버에서 유효성을 높이고 제어 및 모니터링하는 방식으로 응용 프로그램에서 애플리케이션 구성을 신속하게 출시 할 수 있도록 도와줍니다.
이 샘플 코드는 설명합니다
- 컨테이너화 된 응용 프로그램의 응용 프로그램 코드에서 응용 프로그램 구성을 분리하는 방법.
- AWS AppConfig를 사용하여 응용 프로그램 구성을 관리하고 배포하십시오.
- 컨테이너화 된 애플리케이션에서 응용 프로그램 구성을 자동화하고 효율적으로 관리하는 방법.
이 데모는 CloudFormation 템플릿을 사용하여 Amazon Elastic Container 서비스 클러스터 및 AWS Fargate 작업을 배포합니다. 사용자는이 저장소를 복제하고 Docker 이미지를 만들고 Amazon Elastic Container Registry로 밀고 AWS AppConfig 서비스와 상호 작용합니다.
이 응용 프로그램에는 AWS AppConfig 서비스의 응답을 캐시하기 위해 캐싱 레이어가 내장되어 있습니다. 구성 값을 가져 오려는 후속 호출은 먼저 캐시를 확인하고 캐시에서 응답을 반환합니다. 캐시가 비어 있으면 AWS AppConfig API를 호출하여 값을 가져옵니다. 캐시 만료는 속성에서 TTL을 기반으로합니다.
설치 지침
현지의
- 지역 IDE에서 응용 프로그램을 컴파일하십시오
- 새 터미널을 열고
java -jar .targetmovie-service-0.1.0.jar 입력하십시오 - 아래 AWS 섹션의 1 단계를 따라 기본 AWS 계정 프로필에서 AppConfig 구성을 설정하십시오.
- 브라우저를 열고 http : // localhost : 8080/movies/getmovies로 이동하십시오
- 5 개의 유료 영화 목록을 볼 수 있어야합니다.
AWS
1 단계 : AWS AppConfig에서 응용 프로그램, 환경 및 구성 프로필 작성
- AWS Systems Manager 콘솔을 엽니 다.
- 왼쪽 탐색 창에서 AWS AppConfig를 선택하십시오.
- AWS AppConfig 환영 페이지가 나타나면 구성 데이터 생성을 클릭하십시오. 그렇지 않으면 응용 프로그램 작성을 클릭합니다.
- 이름의 경우 응용 프로그램의 이름을 입력하십시오. ( MyContainerApplication ) 선택 사항 설명을 추가하고 응용 프로그램에 태그를 적용 할 수 있습니다. 응용 프로그램 작성을 선택하십시오.
- 응용 프로그램이 작성된 후에는 환경 및 구성 프로파일이있는 페이지를 사용하여 환경 작성을 선택한 다음 이름 ( MyContainerApplicationProductionEnvironment ) 및 환경에 대한 선택적 설명을 입력합니다. 선택적으로 태그를 추가 하고이 환경에 대한 Amazon CloudWatch 알람을 구성 할 수도 있습니다.
- 상단 탐색에서 응용 프로그램 이름을 선택하고 구성 프로파일 탭에서 구성 프로파일 작성을 선택하십시오.
- 이름 ( MyContainerApplicationConfigurationProfile )을 입력하고 구성 프로파일에 대한 선택 사항 설명.
- 구성 소스에서 AWS AppConfig 호스팅 구성 구성을 선택하십시오. 컨텐츠에서 JSON을 선택하고 다음 컨텐츠를 붙여 넣은 다음 다음을 선택하십시오.
{
"boolEnableFeature": true,
"intItemLimit": 5
}
- (선택 사항) 구성을 검증하기 위해 유효성 검사기를 추가 할 수 있습니다. 자세한 내용은 AWS AppConfig 문서의 유효성 검사기에 대해 확인하십시오.
- 구성 프로파일 작성을 선택합니다.
- 배포 시작을 선택하십시오.
- 환경, 호스팅 된 구성 버전, 배포 전략 및 배포 프로세스를 시작하기위한 선택적 설명을 선택하십시오.
- 사용자 정의 배포 전략을 만들려면 배포 전략 만들기를 선택하십시오. 또는 AWS AppConfig가 제공하는 사전 정의 된 배포 전략 중 하나를 선택하십시오. 자세한 내용은 AWS AppConfig 문서에서 배포 전략 생성을 확인하십시오. 이 게시물의 목적으로 AppConfig.linear50percentevery30seconds 배포 전략을 선택했습니다.
참고 : 선택한 배포 전략에 따라이 작업을 완료하는 데 몇 분이 걸릴 수 있습니다. 배포 상태가 완료 되 자마자 응용 프로그램에서 구성을 사용할 수 있습니다.
2 단계 : Amazon ECS 및 Amazon ECR 및 AWS CloudFormation을 사용하여 Amazon ECR 및 관련 네트워크 구성 요소로 기본 응용 프로그램 설정
- CloudFormation 콘솔을 열고 "새로운 리소스와 함께"옵션을 선택하고 "스택 만들기"를 클릭하십시오.
- 다음 화면에서 "템플릿 지정"섹션에서 "템플릿 파일 업로드"를 선택하고 repo /templates/ecs-cluster.yml에서 다운로드 한 파일을 제공합니다.
- 다음을 클릭하고 스택에 "ecscluster-dev"와 같은 이름을주고 환경 매개 변수의 값으로 dev를 선택하십시오. 다음을 클릭하고 선택적으로 태그를 정의하고 다시 클릭하십시오. 마지막 화면에서 "기능"섹션에서 확인란을 선택하고 마지막으로 "스택 만들기"버튼을 클릭하십시오.
3 단계 : 코드 저장소를 복제하고 Docker 컨테이너를 만들고 Amazon ECR에 게시하십시오.
- 이 저장소를 복제합니다
- Amazon Elastic Container Registry 콘솔로 이동하여 작성한 저장소를 클릭하고 푸시 명령보기를 클릭하십시오.
- 명령 프롬프트의 코드 저장소로 이동하여 푸시 명령을 실행하여 프로젝트를 업로드하십시오.
- 업로드가 완료되면 저장소에서 이미지의 URL을 복사하십시오. 이 URL을 다음 섹션에서 언급 한 AWS CloudFormation 템플릿에 입력 매개 변수 (ImageUrl)로 사용하십시오.
4 단계 : AWS CloudFormation을 사용하여 AWS Fargate의 Amazon EC에 Fargate 작업을 작성하고 컨테이너 응용 프로그램을 배포하십시오.
- CloudFormation 콘솔을 열고 "새로운 리소스와 함께"옵션을 선택하고 "스택 만들기"를 클릭하십시오.
- 다음 화면에서 "템플릿 지정"섹션에서 "템플릿 업로드 파일 업로드"를 선택하고 repo /templates/fargate-task.yml에서 다운로드 한 파일을 제공합니다.
- 다음을 클릭하고 "Fargate-Task-Dev"와 같은 스택에 이름을 제시하십시오. 환경 매개 변수의 값으로 "dev"를 선택하십시오.
- ImageUrl 매개 변수에 대한 이전 단계에서 얻은 이미지 URL을 제공하고 나머지 매개 변수를 기본값으로 남겨 둡니다.
- 다음을 클릭하고 선택적으로 태그를 정의하십시오. 다음으로 다시 클릭하십시오. 마지막 화면에서 "기능"섹션에서 확인란을 선택하고 마지막으로 "스택 만들기"버튼을 클릭하십시오.
5 단계 : 배포 된 응용 프로그램 확인, AppConfig 구성 데이터를 업데이트하며 업데이트 된 구성을 배포합니다.
- AWS CloudFormation 콘솔로 이동하여 만든 Fargate-Task-Dev 스택을 엽니 다.
- 출력을 클릭하고 LoadBalancer의 외장을 복사하십시오.
- 로드 밸런서에 외부 URL을 사용하여 응용 프로그램을 확인하십시오. http : // externalurl/movies/getmovies
- 다음으로 AWS AppConfig의 구성 값을 변경하고 컨테이너 응용 프로그램에 어떻게 반영되는지 확인합니다.
- AWS AppConfig 콘솔을 열고 응용 프로그램을 클릭하고 구성 프로파일 탭으로 이동하여 만든 구성 프로필을 클릭하십시오.
- 호스팅 된 구성 버전에서 작성을 클릭하면 구성 데이터를 편집 할 수있는 새 화면이 열립니다.
- 구성 값을 편집하고 호스팅 된 구성 버전 만들기 버튼을 클릭하십시오.
- 다음으로 배포 시작을 클릭하고 환경, 최신 호스팅 구성 버전, 배포 전략 및 배포 프로세스를 시작하기위한 선택적 설명을 선택하십시오.
- 배포가 완료되면 응용 프로그램 URL을 다시 방문하여 변경 사항이 즉시 반영됩니다.
- 이 변경은 응용 프로그램이 AWS AppConfig에 대한 후속 호출에서 업데이트 된 값을 검색 한 이후 컨테이너 애플리케이션을 다시 시작할 필요가 없었습니다.
대청소
이 프로세스 전반에 걸쳐 생성 된 모든 리소스를 삭제하고 추가 비용을 방지하십시오.
AppConfig
- 호스팅 된 구성
- 구성 프로필
- 환경
- 애플리케이션
기본 컨테이너 응용 프로그램 및 Fargate 작업
- AWS CloudFormation 콘솔로 이동하십시오
- Fargate-Task-Dev 스택을 선택하고 삭제를 클릭하십시오
- ecscluster-dev 스택을 선택하고 삭제를 클릭하십시오
특허
이 샘플 코드는 MIT-0 라이센스에 따라 라이센스가 부여됩니다. 라이센스 파일을 참조하십시오.