2022.06.17.

AWS에서 분석 플랫폼 구축 실습 Part 1

(S3 생성, Kinesis Firehose 생성, Dummy Data 생성)

 

 

 

 

 

Part 1 실습 목표

 

 

  • 실습 목표

- Kinesis data 생성기 utility를 사용하여 거의 실시간으로 dummy data를 생성

 

- 생성한 data를 Kinesis Firehose delivery stream을 사용하여 Amazon S3로 전송

 

- 일부 참조 data를 Amazon S3 bucket에 직접 복사

 

 

 

 

 

Create S3 Bucket

 

 

  • Create S3 Bucket

- 검색창에 'S3' 검색 후 선택 => '버킷 만들기' 선택 

 

 

 

- '일반 구성'에서 '버킷 이름'에 'minjoooo-analytics-workshop-bucket' 입력, 'AWS 리전'에 'us-east-1' 선택

 

 

 

- '태그'에서 '키'에 'workshop' 입력, '값'에 'AnalyticsOnAWS' 입력

 

 

 

 

  • 참조 Data 추가

- 'S3' Console에서 방금 만든 bucket에 들어가기

 

 

 

- '폴더 만들기' 선택

 

 

 

- '폴더'에서 '폴더 이름'에 'data' 입력 => '폴더 만들기 '선택

 

 

 

- 'data' 폴더 안에 'reference_data' 폴더를 하나 더 생성

 

- 다음 'tracks_list.json' file을 local에 다운로드 (file url: https://static.us-east-1.prod.workshops.aws/public/b4ab4ec2-9ab1-4c41-bf19-964db5dcc495/static/data/tracks_list.json)

 

- 'reference_data' 폴더 안에 '업로드' 선택 => 'tracks_list.json' file을 upload

 

 

 

 

 

 

Create Kinesis Firehose

 

 

  • 목표

- Kinesis Firehose delivery stream을 생성 => S3에 data를 수집하고 저장

 

 

 

  • Create Kinesis Firehose

- 검색창에 'Kinesis' 검색 후 선택 => 오른쪽 '시작하기'에서 'Kinesis Data Firehose' 선택 후 '전송 스트림 생성' 선택

 

 

 

- 'Choose source and destination'에서 'Source'에 'Direct PUT' 선택, 'Destination'에 'Amazon S3' 선택 => 'Delivery stream name'에 'analytics-workshop-stream' 입력

 

 

 

- 'Destination settings'에서 'S3 bucket'에 'Browse' 선택 후 'minjoooo-analytics-workshop-bucket' 선택 => 'S3 bucket prefix'에 'data/raw/' 입력 (raw 뒤에 꼭 '/'를 넣어줘야 함)

 

 

- 'Buffer hints, compression and encryption'에서 'Buffer size'에 '1' 입력, 'Buffer interval'에 '60' 입력

 

 

 

- 'Advanced settings'에서 'Tags'에 'Key'에 'workshop' 입력, 'Value'에 'AnalyticsOnAWS' 입력

 

 

 

- 'Create delivery stream' 선택

 

 

 

 

 

Create Dummy Data

 

 

  • 목표

- fake data 생성 => Kinesis Firehose로 수집하도록 Kinesis Data Generator를 구성

 

 

 

  • Kinesis Data Generator용 Amazon Cognito 구성

- 목표: Cognito를 구성할 Cloudformation 스택을 실행함. CloudFormation 스크립트는 N.Virginia region에서 실행됨.

 

- url을 통해 console로 이동 (url: https://console.aws.amazon.com/cloudformation/home?region=us-east-1#/stacks/new?stackName=Kinesis-Data-Generator-Cognito-User&templateURL=https://aws-kdg-tools-us-east-1.s3.amazonaws.com/cognito-setup.json)

 

- '다음' 선택

 

 

 

- '파라미터'에서 'Username'에 'admin' 입력, 'Password'에 비밀번호 입력 (비밀번호는 특수문자 없이 영문+숫자로 구성하여 6자 이상이어야 함. 특수문자 넣으니 마지막 '스택 생성' 눌렀을 때 오류가 났음) => '다음' 선택

 

 

 

- '스택 옵션 구성'에서 '태그'에 'workshop'과 'AnalyticsOnAWS' 입력

 

 

 

- '기능'에서 'The following resource(s) require capabilities: [AWS::IAM::Role]'에 체크 => '스택 생성' 선택

 

 

 

 

- 'CloudFormation' console 들어가기 => '스택' 선택 후 방금 만든 스택 선택 => 스택 상태가 'CREATE_COMPLETE'가 되면 '출력' 선택 => 'KinesisDataGeneratorUrl'의 url로 들어가면 Kinesis Data Generator 툴이 열림.

 

 

 

- 방금 만든 'Username'과 'Password' 입력 ('Username'은 'admin')

 

 

 

- 'Region'에 'us-east-1' 선택,'Stream/delivery stream'에 S'analytics-workshop-stream' 선택, 'Records per second'에 '2000' 입력 => 'Record template (Template 1)' 다음의 json template를 입력 => 'Send data' 선택

 

{
  "uuid": "{{random.uuid}}",
  "device_ts": "{{date.utc("YYYY-MM-DD HH:mm:ss.SSS")}}",
  "device_id": {{random.number(50)}},
  "device_temp": {{random.weightedArrayElement(
    {"weights":[0.30, 0.30, 0.20, 0.20],"data":[32, 34, 28, 40]}
  )}},
  "track_id": {{random.number(30)}},  
  "activity_type": {{random.weightedArrayElement(
        {
            "weights": [0.1, 0.2, 0.2, 0.3, 0.2],
            "data": ["\"Running\"", "\"Working\"", "\"Walking\"", "\"Traveling\"", "\"Sitting\""]
        }
    )}}
}

 

 

 

- 10000개 정도의 data가 생성되면 'Stop Sending Data to Kinesis' 선택

 

 

 

 

 

 

Data가 S3에 저장되었는지 확인

 

 

  • S3 확인

- 'S3' console로 이동 => 'minjoooo-analytics-workshop-bucket' 선택 => 'data/raw/' 폴더에서 오늘 날짜로 dummy data가 생성된 것을 확인

 

 

 

 

 

 

참고: AWS Analytics on AWS (https://catalog.us-east-1.prod.workshops.aws/workshops/44c91c21-a6a4-4b56-bd95-56bd443aa449/ko-KR)

이 워크샵을 추천해주시고 항상 많은 도움을 주시는 정도현 선배님께 감사합니다.

 

복사했습니다!