Skip to main content
Sonamu ν”„λ‘œμ νŠΈμ—μ„œ μ™ΈλΆ€ μ„œλΉ„μŠ€ (AWS S3, OpenAI λ“±)λ₯Ό μ‚¬μš©ν•  λ•Œ API ν‚€λ₯Ό ν™˜κ²½λ³€μˆ˜λ‘œ κ΄€λ¦¬ν•©λ‹ˆλ‹€. μ½”λ“œμ— ν•˜λ“œμ½”λ”©ν•˜μ§€ μ•Šκ³  μ•ˆμ „ν•˜κ²Œ λ³΄κ΄€ν•˜λŠ” 방법을 μ„€λͺ…ν•©λ‹ˆλ‹€.
API ν‚€λŠ” μ ˆλŒ€ Git에 μ»€λ°‹ν•˜λ©΄ μ•ˆ λ©λ‹ˆλ‹€! 유좜되면 μ¦‰μ‹œ ν‚€λ₯Ό λ¬΄νš¨ν™”ν•˜κ³  μž¬λ°œκΈ‰λ°›μœΌμ„Έμš”.

μ£Όμš” API ν‚€

Sonamuμ—μ„œ 자주 μ‚¬μš©ν•˜λŠ” μ™ΈλΆ€ μ„œλΉ„μŠ€ API ν‚€μž…λ‹ˆλ‹€.

AWS (S3 μŠ€ν† λ¦¬μ§€)

.env
sonamu.config.ts:

OpenAI

.env
μ‚¬μš© μ˜ˆμ‹œ:

선택적 μ™ΈλΆ€ μ„œλΉ„μŠ€ 톡합

SonamuλŠ” λ‹€μ–‘ν•œ μ™ΈλΆ€ μ„œλΉ„μŠ€λ₯Ό 톡합할 수 μžˆμŠ΅λ‹ˆλ‹€. μ•„λž˜λŠ” 자주 μ‚¬μš©λ˜λŠ” μ„œλΉ„μŠ€λ“€μ˜ ν™˜κ²½λ³€μˆ˜ μ˜ˆμ‹œμž…λ‹ˆλ‹€.
이 μ„œλΉ„μŠ€λ“€μ€ Sonamu κΈ°λ³Έ ꡬ성이 μ•„λ‹™λ‹ˆλ‹€. ν”„λ‘œμ νŠΈμ— ν•„μš”ν•œ κ²½μš°μ—λ§Œ μΆ”κ°€ν•˜μ„Έμš”.

ν™˜κ²½λ³„ ν‚€ 관리

μ ˆλŒ€ ν”„λ‘œλ•μ…˜ ν‚€λ₯Ό 개발 ν™˜κ²½μ— μ‚¬μš©ν•˜μ§€ λ§ˆμ„Έμš”! 각 ν™˜κ²½λ§ˆλ‹€ λ³„λ„μ˜ ν‚€λ₯Ό μ‚¬μš©ν•΄μ•Ό ν•©λ‹ˆλ‹€.
.env.development
νŠΉμ§•:
  • ν…ŒμŠ€νŠΈ λͺ¨λ“œ ν‚€ μ‚¬μš©
  • μš”κΈˆ λΆ€κ³Ό μ—†κ±°λ‚˜ μ΅œμ†Œν™”
  • μ œν•œλœ κΆŒν•œ

AWS IAM μ‚¬μš©μž 생성

IAM μ½˜μ†” 접속

AWS IAM Console 접속

μ‚¬μš©μž 생성

  1. Users β†’ Add users 2. μ‚¬μš©μž 이름: sonamu-s3-user 3. Access type: Programmatic access 선택

κΆŒν•œ μ„€μ •

Option 1: κΈ°μ‘΄ μ •μ±… μ—°κ²°
Option 2: μ»€μŠ€ν…€ μ •μ±… (ꢌμž₯)
sonamu-s3-policy.json
νŠΉμ • 버킷과 μž‘μ—…λ§Œ ν—ˆμš©ν•˜μ—¬ λ³΄μ•ˆμ„ κ°•ν™”ν•˜μ„Έμš”.

μ•‘μ„ΈμŠ€ ν‚€ λ°œκΈ‰

μ‚¬μš©μž 생성 μ™„λ£Œ ν›„:
  • Access key ID: your-aws-access-key-id
  • Secret access key: your-aws-secret-access-key
Secret access keyλŠ” ν•œ 번만 ν‘œμ‹œλ©λ‹ˆλ‹€! μ¦‰μ‹œ μ•ˆμ „ν•œ 곳에 μ €μž₯ν•˜μ„Έμš”.

.env νŒŒμΌμ— μΆ”κ°€

OpenAI API ν‚€ λ°œκΈ‰

OpenAI ν”Œλž«νΌ 접속

OpenAI API Platform 둜그인

API ν‚€ 생성

  1. API keys β†’ Create new secret key 2. 이름: sonamu-production 3. κΆŒν•œ: All λ˜λŠ” Restricted (ꢌμž₯)

μ‚¬μš© ν•œλ„ μ„€μ •

Settings β†’ Billing β†’ Usage limits μ„€μ •
μ‚¬μš© ν•œλ„λ₯Ό μ„€μ •ν•˜μ§€ μ•ŠμœΌλ©΄ μ˜ˆμƒμΉ˜ λͺ»ν•œ μš”κΈˆμ΄ 청ꡬ될 수 μžˆμŠ΅λ‹ˆλ‹€!

ν‚€ μ €μž₯

λ°œκΈ‰ μ¦‰μ‹œ μ•ˆμ „ν•œ 곳에 μ €μž₯ (λ‹€μ‹œ 확인 λΆˆκ°€)

λ³΄μ•ˆ λͺ¨λ²” 사둀

정기적인 ν‚€ ꡐ체

ꢌμž₯ μ£ΌκΈ°:
  • ν”„λ‘œλ•μ…˜: 3κ°œμ›”λ§ˆλ‹€
  • μŠ€ν…Œμ΄μ§•: 6κ°œμ›”λ§ˆλ‹€
  • 개발: 1λ…„λ§ˆλ‹€ λ˜λŠ” ν•„μš” μ‹œ

λ‘œν…Œμ΄μ…˜ 절차

1

μƒˆ ν‚€ 생성

κΈ°μ‘΄ ν‚€λ₯Ό μœ μ§€ν•œ 채 μƒˆ ν‚€λ₯Ό μƒμ„±ν•©λ‹ˆλ‹€.
2

μƒˆ ν‚€ 배포

3

λͺ¨λ‹ˆν„°λ§

24μ‹œκ°„ λ™μ•ˆ 였λ₯˜ 없이 μž‘λ™ν•˜λŠ”μ§€ 확인
4

이전 ν‚€ μ‚­μ œ

λ¬Έμ œμ—†μœΌλ©΄ 이전 ν‚€ λΉ„ν™œμ„±ν™”/μ‚­μ œ
ν‚€ λ‘œν…Œμ΄μ…˜ μ‹œ λ‹€μš΄νƒ€μž„ 없이 μ§„ν–‰ν•˜λ €λ©΄ μƒˆ 킀와 이전 ν‚€λ₯Ό λ™μ‹œμ— μœ μ§€ν•˜λŠ” 블루-κ·Έλ¦° 방식을 μ‚¬μš©ν•˜μ„Έμš”.

IAM μ •μ±… μ΅œμ†Œν™”

읽기 μ „μš© ν‚€ 뢄리

μ¦‰μ‹œ 쑰치 사항

ν‚€ μ¦‰μ‹œ λ¬΄νš¨ν™”

μƒˆ ν‚€ λ°œκΈ‰ 및 배포

μƒˆ ν‚€λ₯Ό μ¦‰μ‹œ λ°œκΈ‰ν•˜κ³  ν”„λ‘œλ•μ…˜μ— 배포

μ‚¬μš© λ‚΄μ—­ 확인

Git 이λ ₯ 정리

Git 이λ ₯ μ •λ¦¬λŠ” ν˜‘μ—… 쀑인 νŒ€μ— 영ν–₯을 μ€λ‹ˆλ‹€. νŒ€μ›λ“€κ³Ό 쑰율 ν›„ μ§„ν–‰ν•˜μ„Έμš”.

유좜 감지 도ꡬ

개발 ν™˜κ²½

ν”„λ‘œλ•μ…˜ ν™˜κ²½

AWS Systems Manager Parameter Store:
HashiCorp Vault:

ν‚€ μ‚¬μš© λͺ¨λ‹ˆν„°λ§

AWS CloudWatch

OpenAI μ‚¬μš©λŸ‰ μ•Œλ¦Ό

ν…ŒμŠ€νŠΈ ν™˜κ²½ ν‚€ 관리

ν…ŒμŠ€νŠΈμ—μ„œλŠ” μ‹€μ œ APIλ₯Ό ν˜ΈμΆœν•˜μ§€ μ•Šλ„λ‘ Mock을 μ‚¬μš©ν•˜μ„Έμš”. ν…ŒμŠ€νŠΈ λΉ„μš©μ„ μ ˆκ°ν•˜κ³  속도λ₯Ό 높일 수 μžˆμŠ΅λ‹ˆλ‹€.

문제 ν•΄κ²°

증상:
원인:
  1. 잘λͺ»λœ Access Key ID
  2. ν‚€κ°€ μ‚­μ œλ˜μ—ˆκ±°λ‚˜ λΉ„ν™œμ„±ν™”λ¨
  3. 타이핑 였λ₯˜ (곡백, μ€„λ°”κΏˆ)
ν•΄κ²°:
증상:
원인:
  • API μš”μ²­ ν•œλ„ 초과 (RPM, TPM)
ν•΄κ²°:
증상:
원인:
  • IAM 정책에 ν•„μš”ν•œ κΆŒν•œ μ—†μŒ
  • 버킷 μ •μ±…μœΌλ‘œ 차단됨
ν•΄κ²°:

λ‹€μŒ 단계

.env μ„€μ •

ν™˜κ²½λ³€μˆ˜ κΈ°λ³Έ 섀정을 ν•™μŠ΅ν•˜μ„Έμš”

λ°μ΄ν„°λ² μ΄μŠ€ 인증

DB μ—°κ²° 정보λ₯Ό μ•ˆμ „ν•˜κ²Œ κ΄€λ¦¬ν•˜μ„Έμš”

μŠ€ν† λ¦¬μ§€ μ„€μ •

S3 μŠ€ν† λ¦¬μ§€λ₯Ό μ„€μ •ν•˜μ„Έμš”

μ„Έμ…˜ μ„€μ •

μ„Έμ…˜ 및 λ³΄μ•ˆ 섀정을 ν™•μΈν•˜μ„Έμš”