[SEO 부제목]
이 지침에서는 이벤트 기반의 확장 가능한 서버리스 아키텍처를 사용하여 AWS에서 자동으로 구성된 데이터 레이크를 보여줍니다. AWS 관리형 서비스를 활용하여 데이터를 수집, 저장, 처리, 분석하며, 적절한 데이터 거버넌스를 통해 안전하고 유연하며 비용 효율적인 설계를 제공합니다. 이 접근 방식은 기존 데이터 관리 시스템보다 민첩성, 유연성, 신뢰성이 뛰어납니다. 전체 솔루션은 코드형 인프라(IaC)와 지속적 통합, 지속적 전송(CI/CD) 파이프라인을 사용하여 코드화된 애플리케이션으로 구축됩니다.
참고: [고지 사항]
아키텍처 다이어그램
![](https://d1.awsstatic.com/apac/events/2021/aws-innovate-aiml/2022/eng/innovate-aiml-22-UI_Gradient-Divider.082bb46e8d9654e48f62bf018e131dd8ec563c4e.jpg)
[아키텍처 다이어그램 설명]
1단계
데이터 관리자가 Amazon Simple Storage Service(Amazon S3) 원시 버킷에 JSON 파일을 업로드합니다. Amazon S3에서 객체를 생성하면 Amazon EventBridge에서 이벤트가 트리거됩니다.
2단계
EventBridge에는 AWS Lambda 함수를 간접적으로 호출하는 Amazon Simple Queue Service(Amazon SQS)에서 메시지를 전송하는 규칙이 있습니다.
3단계
Lambda 함수는 Lambda 람다 함수가 S3 원시 버킷에서 파일을 읽고 변환을 수행하는 AWS Step Functions 워크플로를 트리거합니다. 또한 S3 스테이지 버킷에 새로운 JSON 파일 세트를 작성합니다.
4단계
Lambda 함수는 Step Functions 작업 상태로 Amazon DynamoDB 테이블을 업데이트합니다.
5단계
파일이 S3 단계 버킷에 생성되면 생성된 파일 세부 정보가 포함된 메시지를 Amazon SQS에서 전송하는 규칙이 있는 이벤트가 EventBridge에서 트리거됩니다.
6단계
Eventbridge 스케줄러는 특정 간격으로 실행되며 Amazon SQS에서 메시지를 검색하고 다른 Step Functions 워크플로를 시작하는 Lambda 함수를 간접적으로 호출합니다.
7단계
AWS Glue 추출, 전환, 적재(ETL)는 AWS Glue 데이터베이스 단계에서 데이터를 읽은 다음, 파일을 JSON에서 Parquet 형식으로 변환합니다.
8단계
AWS Glue ETL은 S3 분석 버킷에 Parquet 파일을 작성합니다. AWS Glue 크롤러는 동일한 버킷에서 Parquet 파일을 크롤링한 다음 AWS Glue 데이터베이스 분석에서 분석 테이블을 생성합니다.
9단계
모든 스테이징 및 분석 카탈로그는 AWS Glue Data Catalog에서 유지 관리됩니다.
10단계
Lambda 함수는 Step Functions 작업 상태로 DynamoDB 테이블을 업데이트합니다.
11단계
비즈니스 분석가는 Amazon Athena를 사용하여 AWS Glue 데이터베이스 분석을 쿼리합니다.
Well-Architected 원칙
![](https://d1.awsstatic.com/apac/events/2021/aws-innovate-aiml/2022/eng/innovate-aiml-22-UI_Gradient-Divider.082bb46e8d9654e48f62bf018e131dd8ec563c4e.jpg)
AWS Well-Architected Framework는 클라우드에서 시스템을 구축하는 동안 사용자가 내리는 의사 결정의 장단점을 이해하는 데 도움이 됩니다. 이 프레임워크의 6가지 원칙을 통해 안정적이고 안전하며 효과적이고 비용 효율적이며 지속 가능한 시스템을 설계 및 운영하기 위한 아키텍처 모범 사례를 배울 수 있습니다. AWS Management Console에서 추가 요금 없이 사용할 수 있는 AWS Well-Architected Tool을 사용하면 각 원칙에 대한 여러 질문에 답하여 이러한 모범 사례와 비교하며 워크로드를 검토할 수 있습니다.
위의 아키텍처 다이어그램은 Well-Architected 모범 사례를 고려하여 생성된 솔루션의 예시입니다. Well-Architected를 완전히 충족하려면 가능한 많은 Well-Architected 모범 사례를 따라야 합니다.
-
운영 우수성
Amazon CloudWatch는 모든 아키텍처 구성 요소의 운영 로깅을 통해 성능과 상태에 대한 포괄적인 인사이트를 제공합니다. Amazon S3 서버 액세스 로깅을 사용하여 데이터 레이크에 대한 요청에 대한 자세한 기록을 추적하여 보안 및 액세스 감사를 수행하고 Amazon S3 청구 내역을 파악할 수 있습니다. DynamoDB는 데이터 레이크 파이프라인 작업의 상태를 꼼꼼하게 추적하여 발생할 수 있는 모든 오류를 신속하게 식별하고 해결할 수 있도록 지원합니다.
-
보안
AWS Key Management Service(AWS KMS)는 고객 관리형 키로 모든 저장 데이터를 암호화하여 데이터 레이크를 보호합니다. 강력한 TLS 1.2 암호화로 전송 중 데이터를 보호하세요. AWS Identity and Access Management(IAM)를 사용하면 최소 권한 원칙을 통해 ID와 AWS 서비스 및 리소스에 대한 액세스를 정밀하게 관리할 수 있습니다.
-
신뢰성
Amazon S3는 내구성과 가용성이 뛰어난 스토리지 계층 역할을 합니다. 데이터 파이프라인은 EventBridge를 통해 트리거되며, EventBridge는 Amazon SQS에 메시지를 전송하여 파이프라인 작업을 시작합니다. 오류는 디버깅 및 재처리를 위해 메시지를 Dead Letter Queue(DLQ)로 옮겨 처리됩니다. 리전별 장애 발생 시 다른 AWS 리전이나 계정으로 지침을 재배치할 수 있어 유연성과 복원력이 보장됩니다.
-
성능 효율성
이 솔루션은 경량 태스크에는 Lambda를 사용하고, 대량의 데이터 트랜스포메이션에는 AWS Glue를 사용하여 성능을 최적화합니다. 서버리스 데이터 통합 서비스인 AWS Glue는 데이터 준비를 간소화하고 가속화하는 동시에 비용을 절감합니다. 트랜스포메이션 작업의 확장 가능한 실행을 위해 Apache Spark를 활용합니다. Step Functions는 AWS Glue 작업을 조율하여 분산 처리 기능을 제공함으로써 데이터 파이프라인의 성능을 향상시킵니다.
-
비용 최적화
이 지침에서는 서버리스 AWS 서비스를 사용하여 총 소유 비용을 줄이고 수요에 따른 확장성을 구현합니다. Amazon S3는 다양한 데이터 액세스 패턴을 위한 자동화된 수명 주기 관리와 함께 다양한 비용 효율적인 스토리지 클래스를 제공하는 스토리지 레이어 역할을 합니다. 서버리스 접근 방식은 인프라 관리를 AWS로 전환함으로써 개발자가 코드에 집중할 수 있게 하여 비용을 더욱 절감하고 효율성을 향상시킵니다.
-
지속 가능성
이 지침의 서버리스 서비스는 수요에 따라 규모가 조정되어 에너지 효율성을 극대화하고 컴퓨팅 리소스를 최소화합니다. Amazon S3는 데이터 수명 주기 정책을 구현하고 수집된 데이터를 Parquet 형식으로 저장합니다. 이 압축 형식은 쿼리당 데이터 스캔 횟수를 줄여 워크로드에 필요한 컴퓨팅 리소스를 더욱 줄여줍니다. 서버리스 아키텍처와 효율적인 데이터 스토리지의 결합으로 전반적인 성능과 리소스 활용도가 최적화됩니다.
고지 사항
샘플 코드, 소프트웨어 라이브러리, 명령줄 도구, 개념 증명, 템플릿 또는 기타 관련 기술(AWS 직원을 통해 제공되는 상기 항목 포함)은 AWS 이용 계약 또는 귀하와 AWS 간의 서면 계약(둘 중 해당되는 것)에 따라 AWS 콘텐츠로 제공됩니다. 이 AWS 콘텐츠를 프로덕션 계정, 프로덕션 또는 기타 중요한 데이터에 사용해서는 안 됩니다. 귀하는 특정 품질 제어 방식 및 표준에 따라 프로덕션급 사용에 적절하게 샘플 코드와 같은 AWS 콘텐츠를 테스트, 보호 및 최적화할 책임이 있습니다. AWS 콘텐츠를 배포하면 Amazon EC2 인스턴스를 실행하거나 Amazon S3 스토리지를 사용할 때와 같이 요금이 부과되는 AWS 리소스를 생성하거나 사용하는 것에 대한 AWS 요금이 발생할 수 있습니다.
본 지침에 서드 파티 서비스 또는 조직이 언급되어 있다고 해서 Amazon 또는 AWS와 서드 파티 간의 보증, 후원 또는 제휴를 의미하지는 않습니다. AWS의 지침을 기술적 시작점으로 사용할 수 있으며 아키텍처를 배포할 때 서드 파티 서비스와의 통합을 사용자 지정할 수 있습니다.