본문 바로가기

SK네트웍스 Family AI캠프 10기/Daily 회고

80일차. AWS - Slack

더보기

 

80일 차 회고.

 

 주말에 벽에 손목을 부딪힌 곳이 아직도 아파서 자꾸 신경 쓰여서 집에 가면 파스를 붙여야겠다.

 

 

 

 

1. AWS

 

 

1-1. Slack

 

Slack

  • 클라우드 기반의 팀 협업 도구
    • 실시간 메시지 전송
    • 파일 공유
    • 작업 관리
  • 조직이 통합된 환경에서 효율적으로 커뮤니케이션할 수 있도록 지원한다.

 

 

1-2. Slack Bot

 

Slack Bot

  • Slack 내에서 동작하는 자동화된 도우미
    • 메시지 전송
    • 알림 수신

 

 

1-3. Python

 

가상환경 생성

uv venv .venv -p 3.13
.\.venv\Scripts\activate

uv pip install -r requirements.txt
# requirements.txt

slack_sdk
python-dotenv
boto3

 

파일 구조

slackbot/
├─ .venv/
├─ lambda/
│  ├─ alarm/
│  │  ├─ app.py
│  │  └─ requirements.txt
│  ├─ test/
│  │  ├─ app.ipynb
│  │  ├─ app.py
│  │  └─ requirements.txt
├─ layer/
│  ├─ common/
│  │  ├─ constant.py
│  │  ├─ sns_slack.py
│  │  └─ utils.py
│  └─ requirements.txt
├─ .env
├─ .gitignore
├─ alarm.py
├─ buildspec-eventbridge.yml
├─ buildspec-lambda.yml
├─ buildspec-sns.yml
├─ event.py
├─ requirements.txt
├─ template-eventbridge.yml
├─ template-lambda.yml
└─ template-sns.yml

 

 

1-4. AWS CloudFormation

 

SAM(Serverless Application Model)

  • IaC(Infrastructure as Code) 기반의 서버리스 애플리케이션 구축 프레임워크
  • SAM 템플릿으로 인프라를 정의하고, CloudFormation을 통해 배포 및 관리한다.

 

CloudFormation

  • AWS 리소스를 선언적으로 모델링하고 설정한다.
  • 리소스 관리 시간을 절약하고 효율적인 운영이 가능하다.

 

Role 생성

  • AWS CloudFormation Role을 생성한다.

    • 권한을 추가한다.
      • AmazonEventBridgeFullAccess
      • AmazonS3FullAccess
      • AWSCloudFormationFullAccess
      • AWSLambda_FullAccess
      • AWSLambda_FullAccess
      • CloudWatchEventsFullAccess
      • CloudWatchFullAccess
  • Role 이름을 지정한다.

 

 

1-5. AWS Lambda

 

Lambda

  • 서버리스 FaaS(Function-as-a-Service) 솔루션
  • 인프라 관리 없이 이벤트 기반 함수를 실행할 수 있다.

 

Connection 생성

  • Connection을 생성한다.

 

Project 생성

  • 프로젝트 이름을 지정한다.

  • GitHub Repository를 연결한다.

  • Buildspec 파일 이름을 설정한다.

 

Role 권한 추가

  • AmazonS3FullAccess 권한을 추가한다.

 

Build 실행

  • Build가 성공하면 S3에 데이터가 생성된다.

 

Pipeline 생성

  • 생성 옵션을 지정한다.

  • pipeline 이름을 지정한다.

  • GitHub 레퍼지토리와 연결한다.

  • 빌드를 설정한다.

  • 배포를 설정한다.

  • Pipeline을 생성한 후 Build 단계에 들어가면, CloudFormation에 Stack이 생성되고 Events를 실시간으로 확인할 수 있다.

 

삭제

  • CloudFormation - Stack
  • Lambda - Layer
  • CloudWatch - Log group

 

 

1-6. AWS SNS

 

SNS(Simple Notification Service)

  • Publisher가 메시지를 전송하면 Subscriber에게 전달한다.
  • 비동기 메시징을 위한 완전관리형 서비스
  • 구성 요소
    • Topic
    • Publisher
    • Subscriber

 

Project 수정

 

Pipeline Release Change

  • Pipeline을 실행한 후, SNS 리소스가 생성되었는지 확인한다.

 

 

1-7. AWS EventBridge

 

EventBridge

  • AWS 리소스의 상태 변화나 예약 이벤트에 따라 작업을 실행한다.
  • 다양한 소스(AWS 서비스, 애플리케이션 등)에서 이벤트를 수집하고, 특정 AWS 서비스로 전달한다.

 

 

1-8. 리소스 정리(삭제)

 

  • CloudFormation - Stack
  • Lambda - Layer
  • CloudWatch - Log group
  • CodeBuild
    • Pipeline
    • Project
    • History
    • Connection
  • Role