Skip to content

chali5124/imager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

imager

AWS CDN 기반 OAC를 이용한 이미지 자동 리사이즈 딜리버리 서비스

프로젝트 구조

파일구조

.
├── app/                    # 애플리케이션 소스 코드
│   ├── generator/         # 이미지 생성 Lambda 함수
│   ├── redirector/        # 리다이렉션 처리 Lambda 함수
│   └── index.html         # 기본 HTML 파일
├── infra/                 # 인프라스트럭처 코드 (Terraform)
│   ├── builds/           # 빌드 아티팩트
│   ├── *.tf             # Terraform 설정 파일들
│   └── terraform.*.plan  # Terraform 실행 계획
└── package.json          # 프로젝트 의존성 및 스크립트

인프라스트럭처 요소

  • CloudFront: 전 세계 사용자에게 빠르게 콘텐츠를 전송(Delivery)하기 위한 CDN 서비스입니다. viewer-request 단계에서 CloudFront Function (redirector) 을 실행하여 보안 키 검증 및 동적 URL 재작성을 수행합니다.
  • S3 Object Lambda (generator): CloudFront가 오리진에서 이미지를 가져올 때, 중간에서 요청을 가로채어 실시간으로 이미지 크기를 조정(Resize)하거나 최적화하는 서버리스 함수입니다.
  • S3 (Storage): 원본 이미지가 저장되는 콘텐츠 저장소입니다. 대상 객체는 Object Lambda를 통해 가공되어 제공됩니다.
  • OAC (Origin Access Control): CloudFront에서만 S3 및 Object Lambda에 안전하게 접근할 수 있도록 보안을 강화하는 구성 모델입니다.
  • Route53: 도메인(DNS) 호스팅 및 인증서를 관리하고 적용합니다.

🚀 배포 상태 Check (Deployment Readiness)

현재 전체 앱(Lambda 소스코드 빌드 및 Terraform 설정)은 정상 배포 가능한 상태(Ready for Deployment) 임이 확인되었습니다.

  • app/redirector: 의존성 무결성 및 빌드가 성공적으로 동작합니다 (npm run build).
  • app/generator: 의존성 무결성 및 Typescript ESBuild가 성공적으로 동작합니다.
  • infra: Terraform 구성 파일이 최신 버전 프로바이더와 호환되며 문법적인 오류가 없는 상태(terraform validate 구문 체크 통과)입니다.

개발 환경 설정

# 의존성 설치
npm install

# 개발 환경 변수 설정
cp .env.example .env

빌드 및 배포

Lambda 함수 빌드

# Generator 함수 빌드
cd app/generator
npm run build

# Redirector 함수 빌드
cd app/redirector
npm run build

인프라스트럭처 배포

terraform을 사용하여 배포합니다.

# 개발 환경 배포
terraform apply -var="environment=dev"

# 프로덕션 환경 배포
terraform apply -var="environment=prod"

환경 정보

개발 환경

# prod

# dev

About

Cloudfront OAC 기반 이미지 리사이즈 및 딜리버리 서비스

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors