AWS workshop studio에는 다양한 워크샵이 있습니다. 이중 Analytics on AWS 워크샵은 AWS Glue, Amazon Athena, Amazon EMR, Amazon QuickSight, AWS Lambda 및 Amazon Redshift와 같은 여러 분석 서비스를 사용하여 데이터를 수집, 저장, 변환, 소비하는 방법을 배울 수 있다고 해서 워크샵을 따라 이 서비스들에 익숙해져 보려 합니다.
워크샵 링크 : https://catalog.us-east-1.prod.workshops.aws/workshops/44c91c21-a6a4-4b56-bd95-56bd443aa449/ko-KR/
이번 워크샵의 전재 조건은 다음과 같습니다.
전제 조건
- AWS 계정에서 AdminstratorAccess에 대한 액세스 권한이 있어야합니다.
- 이 실습은 us-east-1 리전에서 실행되어야 합니다.
- 이 가이드의 링크에 따라 새 탭에서 여는 것이 가장 좋습니다.
- 최신 브라우저에서 이 실습을 실행하세요.
시작하기 전 다음과 같은 부분을 한번 더 체크하고 넘어 가겠습니다.
- 모듈 내에서 학습을 시작하기 전에 각 모듈의 전제 조건을 확인하십시오.
- 새 브라우저 탭에서 모든 하이퍼 링크를 여는 것을 잊지 마십시오.
- 사용 가능한 모든 구성 옵션을 자유롭게 탐색하되 리소스 생성을 위해 실습 가이드에 언급 된 구성을 따르십시오. :)
- 또한 워크샵이 끝나면 리소스를 정리하는 것을 잊지 마십시오!
1. Ingest and Store
1. S3 버킷 생성
첫번째 단계는 S3 버킷 생성입니다.
[AWS] Amazon S3 버킷 생성하기
오늘은 Amazon S3에 대해 알아보는 시간을 가져볼 것입니다. 뭔가 옛날 게임 만들었을 때 닉네임 앞뒤에 붙였던 S2와 비슷한 느낌이었어서 이름 자체에는 친숙함이 느껴졌습니다. Amazon S3의 정식 풀
6058ah.tistory.com
S3 버킷 생성은 제가 일전에 포스팅한 내용 참고하시면 도움 될 것 같습니다.
이번 버킷은 일전 포스팅과 조건 차이는 있습니다. 버킷 이름과 리전을 다음과 같이 설정해야 합니다. 그리고 바로 버킷 만들기 버튼을 누릅니다.
- 버킷 이름 : yourname-analytics-workshop-bucket
- 리전 : US EAST (N. Virginia)
만든 버킷 이름을 클릭하시고 폴더 만들기를 클릭합니다.
폴더 이름은 'data'로 하여 생성합니다. 그리고 'data' 폴더를 클릭해 'reference_data'라는 폴더를 하나 더 만듭니다.
워크샵 페이지에 있는 'track_list.json'파일을 로컬에 다운로드하고 S3콘솔에서 Add files 클릭하여 그 파일을 업로드합니다.
2. Kinesis Firehorse 생성
이제 Kinesis Firehorse를 생성할 차례입니다. Kinesis Firehorse는 스트리밍 데이터를 안정적으로 캡처하고 변환하여 데이터 레이크, 데이터 스토어, 분석 서비스에 전달하는 추출, 변환 로드 서비스입니다.
이 단계에서 Kinesis 콘솔로 이동하고 Kinesis Firehose delivery stream을 생성하여 S3에 데이터를 수집하고 저장할 것입니다.
https://us-east-1.console.aws.amazon.com/kinesis/home?region=us-east-1#/home
위의 링크를 타고 Amazon Kinesis 서비스로 넘어갑니다.
우측 시작하기에서 'Kinesis Data Firehose' 클릭하면 하단 버튼이 '전송 스트림 생성'으로 바뀝니다. 이를 눌러줍니다
먼저 Source와 destination을 다음과 같이 선택해줍니다.
Delivery stream name은 'analytics-workshop-stream'으로 지어줍니다.
Transform and convert records는 'disabled'로 그대로 두시면 됩니다.
Destination setting에서는 S3 bucket과 Prefix를 설정해주면 됩니다. S3 bucket의 경우 browse 눌러서 방금 만들었던 S3 버킷을 가지고 오면 됩니다. Prefix 값은 'data/raw/'로 설정 해주면됩니다. 여기서 raw옆의 /는 꼭 들어가야됩니다. 그렇지 않으면 Firehose가 데이터를 원하지 않은 곳에 복사될 것 입니다. 아래의 S3 Error Prefix는 빈값으로 두시면 됩니다.
바로 아래의 Buffer hints, compression and encryption은 아래와 같이 세팅해줍니다.
마지막으로 Advanced Settings도 따로 건들지 않고 그대로 유지하고 'Create delivery stream'을 클릭합니다.
3. Dummy 데이터 생성
이 단계에선 페이크 데이터를 생성하고 방금 만들었던 Kinesis Firehose로 수집하도록 Kinesis Data Generator를 구성합니다.
이번에는 이 링크로 들어갑니다.
링크를 타고 들어가면 CloudForamation의 스택 생성 단계에 도착합니다. 여기서 바로 '다음'을 클릭합니다.
그리고 파라미터 설정에서 Username은 'admin'으로 password는 영어숫자로 된 암호를 입력하고 다음을 클릭합니다.
3단계인 스택 옵션 구성 단계는 쭉 넘어가셔서 '다음'을 클릭합니다.
마지막 4단계 '검토' 단계에서는 최 하단의 'AWS CloudFormation에서 IAM 리소스를 생성할 수 있음을 승인합니다.' 부분을 체크해주고 '스택 생성' 클릭하면 됩니다.
그 후 새로고침을 눌러 스택 상태가 'CREATE_IN_PROGRESS'에서 'CREATE_COMPLETE'로 변경될 때까지 기다리시면 됩니다.
그리고 출력 탭을 누르고 KinesisDataGeneratorUrl 의 링크를 클릭하면 Kinesis Data Generator 툴이 열립니다.
위의 창이 열리면 됩니다. 저는 처음에 오류창인줄 알고 몇번을 껐다 켰다 했습니다.ㅎㅎ
Kinesis Data Generator에서 아까 파라미터 설정에서 등록한 Username과 password를 입력하고 로그인합니다.
리전, Stream/Delivery stream, Records per second를 다음과 같이 설정합니다.
아래의 Record template의 Template1에는 아래의 json 탬플릿을 삽입해 줍니다.
{
"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\""]
}
)}}
}
그리고 'Send data'를 클릭해줍니다.
도구에서 ~ 10,000 개의 메시지를 보내면 - Stop sending data to Kinesis 클릭해 주시면 됩니다.
전 멍때리다가 40000까지 가버렸습니다...
잠시 후 S3 콘솔로 돌아가서
yourname-analytics-workshop-bucket > data 로 이동하면, yyyy/mm/dd/hh 파티셔닝을 사용하여 데이터가 다음과 같이 데이터를 S3로 덤프 했다는 것을 확인할 수 있습니다.
이제 다음으로 Catalog Data 단계로 넘어가 보겠습니다!
'AWS' 카테고리의 다른 글
[AWS]Analytics on AWS 워크샵 실습하기(3) (0) | 2022.03.30 |
---|---|
[AWS]Analytics on AWS 워크샵 실습하기(2) (0) | 2022.03.30 |
[AWS]간단 EC2 git 연동하기 (0) | 2022.03.29 |
[AWS] Python 이용해서 Amazon S3 에 파일 업로드하기 (0) | 2022.03.29 |
[AWS] Amazon S3 버킷 생성하기 (0) | 2022.03.28 |