• 프로필사진
    Home
  • Portfolio
  • github [#ffffff] Created with Sketch.
    Github
  • linkedin
    Linkedin
  • Setting
  • Posting
    • 분류 전체보기 (105)
      • Aws (96)
      • Backend (3)
      • Extension (1)
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
      등록된 댓글이 없습니다.
    • 최근 공지
        등록된 공지가 없습니다.
      # Home
      # 공지사항
      #
      # 태그
      # 검색결과
      # 방명록
      • 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일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
      목차
      표시할 목차가 없습니다.
      • EC2 Setting
      • Lambda 함수를 만들어줍니다. < 권한도 추가해줍니다. >
      • dynamo-db-function Code
      • 안녕하세요
      • 감사해요
      • 잘있어요

      티스토리툴바

      개인정보

      • 티스토리 홈
      • 포럼
      • 로그인

      단축키

      내 블로그

      내 블로그 - 관리자 홈 전환
      Q
      Q
      새 글 쓰기
      W
      W

      블로그 게시글

      글 수정 (권한 있는 경우)
      E
      E
      댓글 영역으로 이동
      C
      C

      모든 영역

      이 페이지의 URL 복사
      S
      S
      맨 위로 이동
      T
      T
      티스토리 홈 이동
      H
      H
      단축키 안내
      Shift + /
      ⇧ + /

      * 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.