본문 바로가기
AWS/기타

GitLab CI를 활용한 S3 배포 및 CloudFront + Route 53 연동 구축

by aws-evan 2025. 1. 8.
반응형

 

AWS 환경에서 웹 서비스를 배포할 때 GitLab CI/CD 파이프라인을 활용하여 자동으로 S3에 빌드 파일을 업로드하고, CloudFront 캐시를 초기화한 후 Route 53을 통해 도메인 서비스를 제공하는 방법을 소개합니다.

 

 

 

 

1. GITLAB CI YAML

  • 변수들은 GITLAB variable에 등록하여 사용(보안 관점)
# 파이프라인의 실행 단계를 정의
stages:
  - build    #
  - deploy    

# 빌드 작업 정의
build:
  stage: build                
  image: node:latest          
  cache:                     
    paths:
      - node_modules/         
  script:                    
    - npm install           
    - npm run build        
  artifacts:                
    paths:
      - dist/            

# 배포 작업 정의
deploy:
  stage: deploy           
  image: amazon/aws-cli       
  before_script:         
    - echo "s3 Access-key 적용"
    - aws configure set aws_access_key_id $aws_access_key       
    - aws configure set aws_secret_access_key $aws_secret_access  
  script:                  
    - echo "S3 sync"
    - aws s3 sync ${CI_PROJECT_DIR}/dist/ s3://${s3-buckent}/    
    - echo "캐시 초기화"
    - aws cloudfront create-invalidation --distribution-id EOXA1N216FPWD --paths "/*"  
  only:                      
    - dev                    
  dependencies:             
    - build

 

 

 

2. AWS IAM 권한 부여

  • AmazonS3FullAccess
  • CloudFrontFullAccess

 

 

 

 

3. Cloudfront 캐시 무효화처리

 

https://repost.aws/ko/knowledge-center/cloudfront-clear-cache

 

CloudFront에서 캐시된 파일 제거

오리진 서버의 파일을 업데이트했습니다. 하지만 Amazon CloudFront는 여전히 사용자에게 오래된 콘텐츠를 제공하고 있습니다.

repost.aws

  • AWS CLI를 통한 Cloudfront 캐시 초기화(모든 경로)
aws cloudfront create-invalidation --distribution-id "배포ID" --paths "/*"

 

 

 

 

4. Cloudfront 도메인으로 접속

 

 

이번 작업은 간단한 테스트를 통해 진행되었으며, 실제 환경에서는 더 복잡한 구성이 필요할 수 있습니다. 테스트는 기본적인 배포 흐름을 검증하기 위한 목적으로 수행되었습니다.

반응형

'AWS > 기타' 카테고리의 다른 글

AWS Route53 + 가비아 등록  (0) 2025.01.08
AWS 키페어 생성  (0) 2024.11.07
Ray Cluster 설치  (0) 2024.06.23
Ray Cluster 개요  (0) 2024.06.23
Mongodb Cluster 구성  (0) 2024.05.27

댓글