기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
DevOps 관행 및 AWS Cloud9를 사용하여 마이크로서비스와 느슨하게 연결된 아키텍처 구축
작성자: Alexandre Nardi(AWS)
환경: PoC 또는 파일럿 | 기술: DevOps, 서버리스, 웹 및 모바일 앱, 데이터베이스 | AWS 서비스: AWS Cloud9, AWS CloudFormation, AWS CodePipeline, Amazon DynamoDB , AWS CodeCommit |
요약
알림: AWS Cloud9 는 더 이상 신규 고객에게 제공되지 않습니다. 의 기존 고객은 평소와 같이 서비스를 계속 사용할 AWS Cloud9 수 있습니다. 자세히 알아보기
알림: AWS CodeCommit 는 더 이상 신규 고객에게 제공되지 않습니다. 의 기존 고객은 평소와 같이 서비스를 계속 사용할 AWS CodeCommit 수 있습니다. 자세히 알아보기
이 패턴은 Amazon Web Services()에서 DevOps 사례를 테스트하기 시작하는 개발자와 개발 리더를 위해 서버리스 아키텍처에서 일반적인 웹 애플리케이션을 개발하는 방법을 보여줍니다AWS. 책을 검색하고 구매할 수 있는 스토어프론트 및 백엔드를 생성하는 샘플 애플리케이션을 구축하고 독립적으로 개발할 수 있는 마이크로서비스를 제공합니다. 이 패턴은 AWS Cloud9를 개발 환경으로, Amazon DynamoDB 데이터베이스를 데이터 스토어로, AWS CodePipeline 및 와 같은 AWS 서비스를 사용하여 CI/CD(지속적 통합 및 지속적 배포) 기능을 AWS CodeBuild 제공합니다.
이 패턴은 다음과 같은 개발 활동을 안내합니다.
표준 AWS Cloud9 개발 환경 생성
AWS CloudFormation 템플릿을 사용하여 웹 애플리케이션 및 서적용 마이크로서비스 생성
AWS Cloud9를 사용하여 프런트엔드 수정, 변경 사항 커밋 및 변경 사항 테스트
마이크로서비스에 대한 CI/CD 파이프라인 생성 및 테스트
유닛 테스트 자동화
이 패턴의 코드는 AWS DevOps End-to-End 워크숍
사전 조건 및 제한 사항
사전 조건
활성 AWS 계정
AWS DevOps End-to-End 워크숍
에서 컴퓨터로 다운로드한 파일
중요: AWS 계정에 이 데모 애플리케이션을 빌드하면 AWS 리소스가 생성되고 사용됩니다. 애플리케이션을 생성하고 실행하는 데 사용되는 AWS 서비스 및 리소스 비용은 사용자가 부담합니다. 작업을 마친 후에는 계속 요금이 부과되지 않도록 모든 리소스를 삭제해야 합니다. 지침은 에픽 섹션을 참조하십시오.
제한 사항
이 안내는 데모 및 개발 목적으로만 제공됩니다. 프로덕션 환경에서 사용하려면 AWS Identity and Access Management(IAM) 설명서의 보안 모범 사례를 참조하고 IAM 역할, Amazon DynamoDB 및 기타 사용된 서비스를 필요한 대로 변경합니다. 웹 애플리케이션은 AWS Bookstore 데모 앱
아키텍처
서점 애플리케이션의 아키텍처는 AWS 서점 데모 앱
배포 관점에서 Bookstore 데모 앱은 단일 CloudFormation 템플릿을 사용하여 모든 서비스와 객체를 하나의 스택에 배포합니다. 이 패턴은 특정 개발자 또는 팀이 특정 제품(Books)에서 작업하고 애플리케이션의 나머지 부분과 독립적으로 업데이트할 수 있는 방법을 보여주기 위해 몇 가지 변경 사항을 적용했습니다. 따라서 이 패턴의 코드는 Books 마이크로서비스의 AWS Lambda 함수와 관련 객체를 두 번째 CloudFormation 템플릿으로 구분하여 Books 스택을 생성합니다. 따라서 CI/CD 관행을 사용하여 마이크로서비스가 업데이트되는 것을 확인할 수 있습니다. 다음 다이어그램에서 점선 테두리는 Books 마이크로서비스를 나타냅니다.
도구
도구
JavaScript 테스트를 위한 Jest 프레임워크
Python 3.9
코드
이 패턴의 소스 코드와 템플릿은 AWS DevOps End-to-End 워크숍
참고: 에픽 섹션에서는 프로세스에 대한 일반적인 정보를 제공하기 위해 이 안내를 위한 고급 단계를 제공합니다. 각 단계를 완료하려면 자세한 지침은 AWS DevOps End-to-End 워크숍 리포지토리의 README 파일을
AWS DevOps End-to-End 워크숍
모범 사례
Bookstore 애플리케이션을 사용하는 방법은 간단합니다. 권장되는 몇 가지 모범 사례는 다음과 같습니다.
애플리케이션을 설치할 때 원하는 프로젝트 이름을 사용하거나 편의를 위해 기본 이름(
demobookstore
)을 사용할 수 있습니다.애플리케이션을 가동하고 실행한 후 하루 더 테스트를 계속하려면 Amazon Neptune 데이터베이스를 종료하는 것이 좋습니다. 데이터베이스 인스턴스로 인해 추가 요금이 발생할 수 있기 때문입니다. 하지만 7일 후에는 데이터베이스가 자동으로 시작된다는 점에 유의하십시오.
코드 세부 정보는 AWS Bookstore 데모 앱
리포지토리 설명서를 참조하세요. 각 마이크로서비스와 테이블에 대해 설명합니다. 추가 모범 사례는 AWS DevOps End-to-End 워크숍 리포지토리에서 README 파일의
시간이 있는 경우 몇 가지 문제... 섹션을 참조하세요. 이 정보를 검토하여 보안을 위한 추가 기능을 자세히 살펴보고 디커플링 서비스를 연습해 보는 것이 좋습니다.
에픽
작업 | 설명 | 필요한 기술 |
---|---|---|
에서 소스 코드를 다운로드합니다 GitHub. | 이 패턴의 소스 코드와 템플릿은 AWS DevOps End-to-End 워크숍 참고: 에픽 섹션에서는 프로세스에 대한 일반적인 정보를 제공하기 위해 이 안내를 위한 고급 단계를 제공합니다. 각 단계를 완료하려면 자세한 지침은 AWS DevOps End-to-End 워크숍 리포지토리의 README 파일을 AWS DevOps End-to-End 워크숍 | 앱 개발자 |
작업 | 설명 | 필요한 기술 |
---|---|---|
Bookstore 앱을 위한 프론트엔드 및 Lambda 함수를 생성합니다. |
| 개발자 |
Books 마이크로서비스를 생성합니다. | CloudFormation 콘솔 | 개발자 |
애플리케이션을 테스트합니다. | URL DemoBookStoreStack 스택의 웹 사이트를 사용하여 Bookstore 애플리케이션에 액세스합니다. | 개발자 |
작업 | 설명 | 필요한 기술 |
---|---|---|
AWS Cloud9를 생성합니다IDE. | CloudFormation 콘솔 | 개발자, 개발자 책임자 |
CodeCommit 리포지토리를 생성합니다. |
| 개발자 |
프론트엔드에서 코드를 변경하고 파이프라인을 확인합니다. |
| 개발자 |
작업 | 설명 | 필요한 기술 |
---|---|---|
빌드 및 서비스 업데이트에 대한 YAML 파일을 추가합니다. |
| 개발자 |
빌드 파이프라인용 S3 버킷을 생성합니다. | S3 버킷을 만들려면 Amazon S3 설명서에 있는 지침을 따르십시오.
| 개발자 |
CloudFormation 배포를 위한 역할을 생성하는 IAM 데 사용합니다. |
| 개발자 |
새 파이프라인을 생성하여 Books 마이크로서비스 구축 및 배포를 자동화합니다. | README 파일 | 개발자 |
AWS Cloud9에서 마이크로서비스를 테스트합니다. | ListBooks 함수를 변경하고 파이프라인이 작동하는지 확인합니다. | 개발자 |
ListBooks Lambda 함수에 대한 단위 테스트를 자동화합니다. | AWS Cloud9 에서 빌드가 단위 테스트를 실행하도록 IDE활성화하고 테스트 결과를 확인합니다. 지침은README 파일을 | 개발자 |
작업 | 설명 | 필요한 기술 |
---|---|---|
솔루션을 안전하게 만듭니다. | 최소 권한을 갖도록 | 개발자 |
CloudFormation 템플릿의 종속성을 제거합니다. |
| 개발자 |
Cart 마이크로서비스를 생성합니다. | 예를 들어, Books 마이크로서비스를 사용하여 | 개발자 |
작업 | 설명 | 필요한 기술 |
---|---|---|
S3 버킷을 삭제합니다. | Amazon S3 콘솔
| 개발자 |
스택을 삭제합니다. | CloudFormation 콘솔
제거하는 데 90분 이상 걸릴 수 있습니다. 제거에 실패하면 다시 삭제하고 알림을 기반으로 수동 리소스(예: VPC 또는 네트워크 인터페이스)도 삭제합니다. | 개발자 |
IAM 역할을 삭제합니다. | IAM 콘솔
지침은 step-by-step IAM 설명서를 참조하세요. | 개발자 |
관련 리소스
AWS CloudFormation 콘솔에서 스택 생성(AWS CloudFormation 문서)
버킷 생성(Amazon S3 설명서)
추가 정보
자세한 step-by-step 지침은 AWS DevOps End-to-End 워크숍
2023년 5월 업데이트 정보: 이 패턴은 최신 버전의 Node 및 Python을 사용하도록 업데이트되었습니다. 소스 코드의 많은 패키지를 업데이트했으며 Glyphicon은 더 이상 무료가 아니기 때문에 삭제했습니다. 또한 AWS Bookstore 데모 앱