AWS(Amazon Web Services)는 현대 개발 환경에서 필수적인 클라우드 플랫폼입니다. 서비스가 방대하다 보니 어디서부터 배워야 할지 고민될 때가 많죠. 특히 제한된 시간 안에 실무에서 곧바로 사용할 수 있는 기술을 배우는 것은 쉽지 않은 일입니다. 오늘은 AWS의 여러 서비스 중에서, 프론트엔드 개발자가 클라이언트를 배포하는 데 꼭 필요한 핵심 부분만 다뤄보려고 합니다. 이 글을 통해 S3와 CloudFront를 활용하여 빠르고 안정적인 배포를 어떻게 자동화할 수 있는지 설명해 드릴게요.
AWS에는 200개가 넘는 서비스가 있지만, 우리가 실무에서 가장 중요하게 활용할 서비스는 바로 S3와 CloudFront입니다. 이 두 서비스는 클라이언트를 배포하고 전 세계적으로 빠르게 사용자에게 전달하는 데 최적화된 도구입니다.
이 두 가지를 조합하면 단순하면서도 강력한 클라이언트 배포 시스템을 구성할 수 있습니다. 이제 이 배포 과정을 더욱 효율적으로 만들어줄 자동화 방법을 살펴볼까요?
배포 과정은 매번 수동으로 하기에는 번거롭고 실수가 발생할 여지도 많습니다. 이런 반복적인 작업을 자동화하기 위해 GitHub Actions를 사용할 수 있습니다. GitHub Actions를 통해 코드를 커밋할 때마다 S3에 자동으로 업로드되고, CloudFront를 통해 배포가 갱신되도록 구성할 수 있습니다.
GitHub Actions와 같은 CI/CD 도구를 사용하면 배포 자동화가 매우 쉬워지며, 코드 품질과 배포 속도를 동시에 높일 수 있습니다. 실무에서 이렇게 자동화된 배포를 통해 개발자들이 개발에만 집중할 수 있는 환경을 구축하는 것이 목표입니다.
배포를 위해 다음과 같은 간단한 과정을 거칩니다:
S3 버킷 생성 및 정적 웹 호스팅 설정
CloudFront 배포 생성
배포 자동화
이렇게 하면 실무에서 매우 중요한 반복 배포 작업이 자동화되고, 안정적인 배포 환경을 갖출 수 있습니다. GitHub Actions의 워크플로우 파일을 작성하여 이런 과정을 간단하게 구성할 수 있습니다.
name: Deploy To S3 And Invalidate CloudFront
on:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: GitHub Repository 가져오기
uses: actions/checkout@v3
- name: 의존성 설치
run: npm install
- name: 빌드하기
run: npm run build
- name: AWS 인증 설정
uses: aws-actions/configure-aws-credentials@v1
with:
aws-region: ap-northeast-2
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
- name: S3 기존 파일들 전체 삭제
run: |
aws s3 rm --recursive s3://your-bucket-name
- name: 빌드된 파일 S3에 업로드
run: |
aws s3 sync ./build s3://your-bucket-name
- name: CloudFront 무효화
run: |
aws cloudfront create-invalidation --distribution-id YOUR_DISTRIBUTION_ID --paths "/*"
위와 같이 설정하면 코드가 푸시될 때마다 자동으로 빌드, 업로드, 그리고 배포가 갱신됩니다. 이를 통해 개발자는 배포 작업에 신경 쓰지 않고 코드 작성에만 집중할 수 있습니다.
AWS는 배워야 할 것이 매우 많은 방대한 서비스입니다. 그렇기 때문에, 모든 서비스를 한 번에 배우려고 하면 오히려 혼란스러워질 수 있습니다. 다음과 같은 팁을 통해 학습을 효과적으로 진행할 수 있습니다.
AWS는 현대 개발에서 매우 중요한 플랫폼이지만, 모든 것을 배우기에는 너무 방대합니다. 따라서 실무에 즉시 활용할 수 있는 부분에 집중하여 학습하는 것이 중요합니다. S3와 CloudFront를 사용한 클라이언트 배포와 GitHub Actions를 통한 배포 자동화는 실무에서 매우 유용한 기술이며, 이를 통해 클라이언트 배포의 효율성을 크게 높일 수 있습니다.
AWS 학습은 한 번에 끝내는 것이 아니라 필요할 때마다 확장해 나가는 방식으로 진행하는 것이 효과적입니다. 처음에는 간단하게 클라이언트 배포를 시작해 보고, 차차 서버리스 컴퓨팅이나 데이터베이스 관리 등으로 확장해 나가보세요. 이렇게 점진적으로 학습하며 AWS를 익혀 나가는 것이 성공적인 AWS 학습의 열쇠입니다.
참고 자료: