
LAB. AWS 서비스를 활용한 데이터 수집 파이프라인 구축
워크플로우
1. 역할 생성
2. API GateWay 구성
3. Amazon Kinesis 생성
4. Data Firehose 생성
5. 웹서버 구성
6. TEST

HTTP HEADER
Name : Content-Type
Mapped from : 'application/x-amz-json-1.1'#set ( $enter = "
")
#set($json = "$input.json('$')$enter")
{
"Data": "$util.base64Encode("$json")",
"PartitionKey": "$input.params('X-Amzn-Trace-Id')",
**"StreamName": "story-data-q"**
}[ec2-user@ip-10-0-0-120 ~]$ sudo yum remove awscli
[ec2-user@ip-10-0-0-120 ~]$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
[ec2-user@ip-10-0-0-120 ~]$ unzip awscliv2.zip
[ec2-user@ip-10-0-0-120 ~]$ sudo ./aws/install
[ec2-user@ip-10-0-0-120 ~]$ aws --version
aws-cli/2.17.36 Python/3.11.9 Linux/6.8.0-1012-aws exe/x86_64.ubuntu.24
# 위에 명령어가 실행되지 않는 경우 path를 변경해주어야함
[ec2-user@ip-10-0-0-120 ~]$ /usr/local/bin/aws --version
aws-cli/2.17.60 Python/3.12.6 Linux/6.1.109-118.189.amzn2023.x86_64 exe/x86_64.amzn.2023
[ec2-user@ip-10-0-0-120 ~]$ sudo mv /usr/local/bin/aws /usr/bin/# AWS CLI에서 AWS 서비스에 접근할 수 있는 자격 증명을 설정
[ec2-user@ip-10-0-0-126 ~]$ aws configure
AWS Access Key ID [None]: AKIA...
AWS Secret Access Key [None]: U6/kl2L7Zni5CM4...
Default region name [None]: us-east-1
Default output format [None]: json
# 인증된 자격 증명 불러오기
[ec2-user@ip-10-0-0-126 ~]$ aws sts get-caller-identity
{
"UserId": "AKIA...",
"Account": "851725267032",
"Arn": "apigateway2kinesis-role의 ARN"
}
# 버킷 확인
[ec2-user@ip-10-0-0-126 ~]$ aws s3 ls
2024-10-10 02:46:58 api-data-stream-bucket[ec2-user@ip-10-0-0-126 ~]$ sudo yum search java-11
[ec2-user@ip-10-0-0-126 ~]$ sudo yum install -y java-11-amazon-corretto
[ec2-user@ip-10-0-0-126 ~]$ java --version# Post json
[ec2-user@ip-10-0-0-126 ~]$
curl -d "{\"value\":\"30\",\"type\":\"Tip 3\"}" \
-H "Content-Type: application/json" \
-X POST \
https://d33mf4xn60.execute-api.ap-northeast-2.amazonaws.com/dev/v1
****
# shell 에서 shard의 값을 확인
{"SequenceNumber":"49656616735127373407378311837199279454763322191160279042","ShardId":"shardId-000000000000"}
# shell 에서 shard의 값을 확인
[ec2-user@ip-10-0-0-19 ~]$ SHARD_ITERATOR=$(aws kinesis get-shard-iterator --shard-id shardId-000000000000 --shard-iterator-type TRIM_HORIZON --stream-name story-data-q --query 'ShardIterator')
$ aws kinesis get-records --shard-iterator $SHARD_ITERATOR
