기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
AWS 리소스 평가 자동화
작성자: Naveen Suthar(AWS), Arun Bagal(AWS), Manish Garg(AWS), Sandeep Gawande(AWS)
코드 리포지토리: infrastructure-assessment-iac-automation | 환경: PoC 또는 파일럿 | 기술: DevOps; 인프라; 관리 및 거버넌스, 운영, 서버리스 |
AWS 서비스: 아마존 아테나, AWS, AWS Lambda CloudTrail, 아마존 S3, 아마존 QuickSight |
요약
이 패턴은 AWS Cloud Development Kit(AWS CDK)를 사용하여 리소스 평가 기능을 설정하는 자동화된 접근 방식을 설명합니다. 운영팀은 이 패턴을 사용하여 자동화된 방식으로 리소스 감사 세부 정보를 수집하고 단일 대시보드에서 AWS 계정에 배포된 모든 리소스의 세부 정보를 볼 수 있습니다. 이는 다음과 같은 경우에 유용합니다.
코드형 인프라 (IaC) 도구를 식별하고 HashiCorp Terraform
, AWS CloudFormation, AWS CDK 및 AWS 명령줄 인터페이스 (AWS CLI) 와 같은 다양한 IaC 솔루션에서 생성된 리소스를 격리합니다. 리소스 감사 정보 가져오기
또한 이 솔루션은 경영진이 단일 대시보드에서 AWS 계정의 리소스 및 활동에 대한 통찰력을 얻는 데도 도움이 됩니다.
참고: QuickSight Amazon은 유료 서비스입니다. 이를 실행하여 데이터를 분석하고 대시보드를 생성하기 전에 Amazon QuickSight 요금을 |
사전 조건 및 제한 사항
사전 조건
활성 상태의 AWS 계정.
AWS Identity and Access Management(IAM) 역할과 리소스 프로비저닝에 대한 액세스 권한
아마존 심플 스토리지 서비스 (Amazon S3) 와 아마존 아테나에 액세스할 수 있도록 생성된 아마존 QuickSight 계정
AWS CDK 버전 2.55.1 이상 설치
Python
버전 3.9 이상 설치
제한 사항
이 솔루션은 단일 AWS 계정에 배포됩니다.
CloudTrail AWS가 이미 설정되어 있고 S3 버킷에 데이터를 저장하지 않는 한 솔루션은 배포 전에 발생한 이벤트를 추적하지 않습니다.
제품 버전
AWS CDK 버전 2.55.1 이상
Python 버전 3.9 이상
아키텍처
대상 기술 스택
Amazon Athena
AWS CloudTrail
Glue
Lambda
아마존 QuickSight
Amazon S3
대상 아키텍처
AWS CDK 코드는 AWS 계정에서 리소스 평가 기능을 설정하는 데 필요한 모든 리소스를 배포합니다. 다음 다이어그램은 AWS Glue, Amazon Athena 및 로 CloudTrail 로그를 보내는 프로세스를 보여줍니다. QuickSight
CloudTrail 저장을 위해 S3 버킷으로 로그를 전송합니다.
이벤트 알림은 로그를 처리하고 필터링된 데이터를 생성하는 Lambda 함수를 간접 호출합니다.
필터링된 데이터는 다른 S3 버킷에 저장됩니다.
S3 버킷의 필터링된 데이터에 AWS Glue 크롤러가 설정되어 AWS Glue 데이터 카탈로그 테이블에 스키마를 생성합니다.
Amazon Athena는 필터링된 데이터를 쿼리할 준비가 되었습니다.
는 시각화를 QuickSight 위해 쿼리된 데이터에 액세스합니다.
자동화 및 규모 조정
AWS Organizations에 조직 전반의 추적이 있는 경우 이 솔루션을 하나의 AWS 계정에서 여러 CloudTrail AWS 계정으로 확장할 수 있습니다. 조직 CloudTrail 수준에서 배포하면 이 솔루션을 사용하여 필요한 모든 리소스에 대한 리소스 감사 세부 정보를 가져올 수도 있습니다.
이 패턴은 AWS 서버리스 리소스를 사용하여 솔루션을 배포합니다.
도구
서비스
Amazon Athena는 표준 SQL을 사용하여 Amazon S3에 있는 데이터를 직접 분석할 수 있는 대화형 쿼리 서비스입니다.
AWS Cloud Development Kit(AWS CDK)는 AWS 클라우드 인프라를 코드로 정의하고 프로비저닝하는 데 도움이 되는 소프트웨어 개발 프레임워크입니다.
AWS는 AWS CloudFormation 리소스를 설정하고, 빠르고 일관되게 프로비저닝하고, AWS 계정 및 AWS 지역의 수명 주기 전반에 걸쳐 리소스를 관리할 수 있도록 지원합니다.
AWS는 AWS 계정의 거버넌스, 규정 준수 및 운영 위험을 감사할 수 있도록 CloudTrail 지원합니다.
AWS Glue는 완전 관리형 추출, 전환, 적재(ETL) 서비스입니다. 이를 통해 데이터 스토어와 데이터 스트림 간에 데이터를 안정적으로 분류, 정리, 보강하고 이동할 수 있습니다. 이 패턴은 AWS Glue 크롤러와 AWS Glue 데이터 카탈로그 테이블을 사용합니다.
AWS Lambda는 서버를 프로비저닝하거나 관리할 필요 없이 코드를 실행할 수 있도록 도와주는 컴퓨팅 서비스입니다. 필요할 때만 코드를 실행하며 자동으로 확장이 가능하므로 사용한 컴퓨팅 시간만큼만 비용을 지불합니다.
QuickSightAmazon은 단일 대시보드에서 데이터를 시각화, 분석 및 보고하는 데 도움이 되는 클라우드 규모의 비즈니스 인텔리전스 (BI) 서비스입니다.
Amazon Simple Storage Service(S3)는 원하는 양의 데이터를 저장, 보호 및 검색하는 데 도움이 되는 클라우드 기반 객체 스토리지 서비스입니다.
코드 리포지토리
이 패턴의 코드는 리포지토리에서 사용할 수 있습니다. GitHub infrastructure-assessment-iac-automation
코드 리포지토리에는 다음 파일과 폴더가 포함되어 있습니다.
lib
폴더 - AWS CDK는 AWS 리소스를 생성하는 데 사용되는 Python 파일 구성src/lambda_code
- Lambda 함수에서 실행되는 Python 코드requirements.txt
- 설치해야 하는 모든 Python 종속성 목록cdk.json
- 리소스를 스핀업하는 데 필요한 값을 제공하는 입력 파일
모범 사례
Lambda 함수에 대한 모니터링 및 알림을 설정합니다. 자세한 내용은 Lambda 함수 모니터링 및 문제 해결을 참조하십시오. Lambda 함수를 사용할 때의 일반적인 모범 사례는 AWS 설명서를 참조하십시오.
에픽
작업 | 설명 | 필요한 기술 |
---|---|---|
로컬 머신에서 저장소를 복제합니다. | 리포지토리를 복제하려면 | AWS DevOps, DevOps 엔지니어 |
Python 가상 환경을 설정하고 필요한 종속성을 설치합니다. | 다음 명령을 실행하여 Python 가상 환경을 설정합니다.
필요한 종속성을 설정하려면 | AWS DevOps, DevOps 엔지니어 |
AWS CDK 환경을 설정하고 AWS CDK 코드를 합성합니다. |
| AWS DevOps, DevOps 엔지니어 |
작업 | 설명 | 필요한 기술 |
---|---|---|
스택이 배포될 계정 및 리전의 변수를 내보냅니다. | 환경 변수를 사용하여 AWS CDK용 AWS 보안 인증을 제공하려면 다음 명령을 실행합니다.
| AWS DevOps, DevOps 엔지니어 |
AWS CLI 프로필을 설치합니다. | 계정에 대한 AWS CLI 프로필을 설정하려면 AWS 설명서의 지침을 따르십시오. | AWS DevOps, DevOps 엔지니어 |
작업 | 설명 | 필요한 기술 |
---|---|---|
계정에 리소스를 배포하십시오. | AWS CDK를 사용하여 AWS 계정에 리소스를 배포하려면 다음을 수행하십시오.
| AWS DevOps |
AWS Glue 크롤러를 실행하며 데이터 카탈로그 테이블을 생성합니다. | AWS Glue 크롤러는 데이터 스키마를 동적으로 유지하는 데 사용됩니다. 이 솔루션은 AWS Glue 크롤러 스케줄러에서 정의한 대로 정기적으로 크롤러를 실행하여 AWS Glue 데이터 카탈로그 테이블에 파티션을 생성하고 업데이트합니다. 출력 S3 버킷에서 데이터를 사용할 수 있게 되면 다음 단계에 따라 AWS Glue 크롤러를 실행하고 테스트용 데이터 카탈로그 테이블 스키마를 생성합니다.
참고: AWS CDK 코드는 AWS Glue 크롤러가 특정 시간에 실행되도록 구성하지만 온디맨드로 실행할 수도 있습니다. | AWS DevOps, DevOps 엔지니어 |
QuickSight 구조물 배포. |
| AWS DevOps, DevOps 엔지니어 |
QuickSight 대시보드 생성. | 예제 QuickSight 대시보드와 분석을 만들려면 다음과 같이 하십시오.
자세한 내용은 Amazon에서 분석 시작 QuickSight 및 Amazon의 시각적 유형을 참조하십시오 QuickSight. | AWS DevOps, DevOps 엔지니어 |
작업 | 설명 | 필요한 기술 |
---|---|---|
AWS 리소스를 제거합니다. |
| AWS DevOps, DevOps 엔지니어 |
작업 | 설명 | 필요한 기술 |
---|---|---|
수동으로 생성한 리소스를 모니터링하고 정리합니다. | (선택 사항) 조직에 IaC 도구를 사용하여 리소스를 생성해야 하는 규정 준수 요구 사항이 있는 경우, AWS 리소스 평가 도구 자동화를 사용하여 수동으로 프로비저닝된 리소스를 가져옴으로써 규정 준수를 달성할 수 있습니다. 도구를 사용하여 리소스를 IaC 도구로 가져오거나 다시 생성할 수도 있습니다. 수동으로 프로비저닝된 리소스를 모니터링하려면 다음과 같은 높은 수준의 작업을 수행합니다.
| AWS DevOps, DevOps 엔지니어 |
문제 해결
문제 | Solution |
---|---|
AWS CDK가 오류를 반환합니다. | AWS CDK 문제에 대한 도움이 필요하면 일반적인 AWS CDK 문제 해결을 참조하십시오. |
관련 리소스
추가 정보
여러 계정
여러 계정에 대해 AWS CLI 보안 인증을 설정하려면 AWS 프로필을 사용하십시오. 자세한 내용은 AWS CLI 설정
AWS CDK 명령
AWS CDK로 작업할 때는 다음과 같은 유용한 명령을 유념하십시오.
앱의 모든 스택 나열하기
cdk ls
합성된 AWS 템플릿을 내보냅니다. CloudFormation
cdk synth
스택을 기본 AWS 계정 및 리전에 배포하기
cdk deploy
배포된 스택을 현재 상태와 비교하기
cdk diff
AWS CDK 설명서 열기
cdk docs