- EC2에 접속 시 로그 DB에 저장 (SQS, DynamoDB)2024년 12월 27일
- wngnl05
- 작성자
- 2024.12.27.오후02:50
2024.04.13 - [Aws] - EC2에서 SQS에 메세지 전송하는 코드
EC2 Setting
더보기시작하기 전에 Bastion에서 계정을 하나 생성해줍니다.
passwd명령으로 계정에 비밀번호를 설정해줍니다.
sudo useradd wngnl sudo passwd wngnl
Log를 저장할 login.txt를 만들어주겠습니다. <파일 이름 변경 가능>
sudo touch /var/log/login.txt sudo chmod 777 /var/log/login.txt
Bastion에 접속할 때 마다 sh명령을 실행하도록 해주겠습니다. <login.sh 파일 이름은 아무 상관 없음>
login.sh에 접속하여 아래 코드를 넣어줍니다. <login.sh는 처음에 빈 파일이 맞음>
sudo vi /etc/profile.d/login.sh
aws sqs send-message --queue-url <SQS 링크> --message-body "$USER" --endpoint-url https://<앤드포인트 링크> --region ap-northeast-2
sudo chmod 777 /etc/profile.d/login.sh
다시 로그인 후 알맞은 USER가 입력되었는지 확인해주세요.
cat /var/log/login.txt
Lambda 함수를 만들어줍니다. < 권한도 추가해줍니다. >
- AmazonDynamoDBFullAccess
- AmazonSQSFullAccess
dynamo-db-function Code
더보기import json import boto3 from datetime import datetime import pytz def lambda_handler(event, context): # SQS 메시지 리스트에서 첫 번째 메시지의 본문 출력 message_body = event['Records'][0]['body'] # DynamoDB 연결 dynamodb = boto3.resource('dynamodb') # DynamoDB 테이블 선택 (테이블 이름) table = dynamodb.Table('skills-table') # 한국 시간 가져오기 (정렬 키 값으로 사용) KST = pytz.timezone('Asia/Seoul') current_time = datetime.now(KST).isoformat() # DynamoDB에 데이터 삽입 response = table.put_item( Item={ 'test': f"{current_time}", # 파티션 키에 현재시간 설정 'sort_key': "USER_NAME", # 정렬 키 <원하는 값 사용> 'USER': message_body # CloudWatch LogGroup Data } ) print("Successfully inserted data into DynamoDB:", response) return response
'Aws' 카테고리의 다른 글
MySQL 명령어 정리 (0) 2024.12.27 Eks Velero 백업 & 복원 하기 (0) 2024.12.27 EC2에 접속 시 로그 DB에 저장 (CloudWatch, DynamoDB) (0) 2024.12.27 CloudWatch LogGroup 로그 Lambda에서 읽기 (0) 2024.12.27 Lambda에서 Lambda 호출 (0) 2024.12.27 다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)