[0715] 무엇이든, 언제가는

이순간·2025년 7월 21일
5

KRAFTON JUNGLE

목록 보기
128/144

오늘 오전 11시에 AWS오피스 아워가 있어서 참여했다.
사전 신청을 받은 만큼 자세히
모든 질문에 답변을 해주셔서 그런지

우리는 11시에 도착을 했는데
12시가 넘어서 우리 세션을 시작할 수 있었다.

아키텍처를 구축함에 있어서 생긴 트러블에 대한 질문을 했고,
패들렛을 통해 자료를 드리니 상세히 답변해주셨다.

많은 도움을 받은 세션이었다.

내일이 폴리싱 1차 발표이기 때문에
우리팀은 각자 맡은 임무에 집중했다.

나는 시작템플릿과의 싸움을 시작했다.

하나의 인스턴스를 켜서
그 안에서 노는 것과는 달리

오토스케일링 그룹을 통해서
유연하게 늘어나고 줄어들기 위해서는
시작 템플릿이라는 곳에 미리 원하는 행동을 할 수 있도록 하는
코드를 넣어놔야 한다.

매번 트래픽이 몰릴 때마다
개별 인스턴스에 접속해서
필요한 것들일 일일히 설치할 수는 없으니 말이다.

하여간에 klicklab-producer-template이라는
이름의 시작 템플릿이 벌써 버전 34다...


1. Node.js 및 PM2 설치

  • Node.js 18 설치 (nodesource)
  • PM2 글로벌 설치 (최대 3회 재시도)

2. 애플리케이션 디렉토리 설정

  • /opt/klicklab-producer 생성 및 ubuntu 사용자로 소유권 변경

3. 애플리케이션 코드 자동 생성

  • package.json: Express, KafkaJS, CORS, IAM 인증 모듈 포함

  • app.js: Kafka 프로듀서 서버

    • Kafka IAM 인증 기반 연결
    • gzip 압축 + linger(20ms) + acks=1 최적화 적용
    • 식별자 우선순위 (session_id > user_id > client_id)
    • /ready, /health, /api/analytics/collect API 제공

4. 의존성 설치

  • npm install 최대 5회 재시도

5. PM2로 앱 실행 및 자동 부팅 설정

  • ubuntu 사용자로 PM2 앱 실행
  • PM2로 서비스 유지 및 시스템 부팅 시 자동 실행 설정

넣어둔 코드를 알아서 읽고
위에 적힌 작업들을 수행하게 된다.

오토스케일링 그룹의 최소 인스턴스 개수가 늘어날 수록
시작 템플릿을 새로 적용하고 새로고침을 할 때에
소요되는 시간이 늘어나는데

나는 처음엔 바보처럼 30분이면 30분을 기다렸다.

그러지 말고
그냥 프리티어 깡통 인스턴스를 생성하면서
그 아래에 사용자 코드란에 넣어보면 되는 일을 말이다.

이걸 고칠 방법은 없을 거래.
하지만 너도 알고 있잖아.
네가 도울 수는 있다는 걸.
네가 어떻게 하기엔 어마어마하게 큰일이래.
하지만 너도 본 적 있잖아.
아주 작은 것이 엄청난 변화를 만드는 걸.

그림책 『무엇이든, 언제가는』에서

profile
서툴지언정 늘 행동이 먼저이기를

0개의 댓글