본문 바로가기
컴퓨터 활용/노년에 즐기는 코딩

AWS CLI 활용 데이터 파이프라인 구현

by easyfly 2025. 6. 8.
반응형

AWS CLI를 사용하여 해당 워크숍의 데이터 파이프라인을 구현하는 방법을 단계별로 안내해 드리겠습니다. 각 단계는 주요 AWS 서비스의 CLI 명령어를 포함하며, 실제 환경에 맞게 변수들을 조정하셔야 합니다.


1. Amazon S3 버킷 생성

데이터 저장을 위한 S3 버킷을 생성합니다.

aws s3api create-bucket \
  --bucket my-data-bucket \
  --region us-east-1 \
  --create-bucket-configuration LocationConstraint=us-east-1

2. Kinesis Data Firehose 전송 스트림 생성

실시간 데이터를 수집하여 S3에 저장하는 Firehose 전송 스트림을 생성합니다.

aws firehose create-delivery-stream \
  --delivery-stream-name my-firehose-stream \
  --s3-destination-configuration file://s3-destination-config.json

s3-destination-config.json 파일은 다음과 같은 형식입니다:

{
  "RoleARN": "arn:aws:iam::123456789012:role/firehose_delivery_role",
  "BucketARN": "arn:aws:s3:::my-data-bucket",
  "Prefix": "firehose-data/",
  "BufferingHints": {
    "SizeInMBs": 5,
    "IntervalInSeconds": 300
  },
  "CompressionFormat": "UNCOMPRESSED"
}

3. AWS Glue 크롤러 생성 및 실행

S3에 저장된 데이터를 스캔하여 메타데이터를 생성하는 Glue 크롤러를 생성하고 실행합니다.

aws glue create-crawler \
  --name my-glue-crawler \
  --role AWSGlueServiceRoleDefault \
  --database-name my-glue-database \
  --targets S3Targets=[{Path="s3://my-data-bucket/firehose-data/"}]

크롤러를 실행합니다:

aws glue start-crawler --name my-glue-crawler

4. Amazon EMR 클러스터 생성

데이터 처리를 위한 EMR 클러스터를 생성합니다.

aws emr create-cluster \
  --name "MyEMRCluster" \
  --release-label emr-6.6.0 \
  --applications Name=Spark \
  --ec2-attributes KeyName=myKey,InstanceProfile=EMR_EC2_DefaultRole \
  --instance-type m5.xlarge \
  --instance-count 3 \
  --use-default-roles \
  --log-uri s3://my-data-bucket/emr-logs/ \
  --auto-terminate

5. Amazon Athena를 통한 데이터 분석

Athena를 사용하여 S3에 저장된 데이터를 SQL로 분석합니다.

aws athena start-query-execution \
  --query-string "SELECT * FROM my_glue_database.my_table LIMIT 10;" \
  --query-execution-context Database=my_glue_database \
  --result-configuration OutputLocation=s3://my-data-bucket/athena-results/

이러한 명령어들을 사용하여 AWS CLI를 통해 데이터 파이프라인을 구축하실 수 있습니다. 각 명령어의 세부 옵션은 AWS 공식 문서를 참고하시기 바랍니다.

반응형

댓글