현재 DevOps팀에서 제공하는 정적 웹 호스팅의 인프라 아키텍처 형태는 CDN (AWS Cloudfront) + S3 이다.
해당 인프라 형태에 대한 자세한 레퍼런스는 다음의 AWS 링크에 있으니 참고하셔도 좋습니다.
https://aws.amazon.com/ko/blogs/korea/amazon-s3-amazon-cloudfront-a-match-made-in-the-cloud/
작업 명세
현재 개발팀에 인프라를 제공할 때에 필요한 작업은 크게 3가지로 분류된다.
- Cloudfront 구축 (with Terraform)
- S3 구축 (with Terraform)
- Bitbucket Pipeline 설정 (as Repository Admin)
Terraform 으로 작업하는 AWS 리소스에 대해서는 현재 DevOps팀 terraform repository에 소스 코드 및 INFRASTRUCTURE 코드가 있으니 참고하여 작성한다.
유의점
- Cloudfront 구축 당시의 Terraform Version은 1.0.11이며, 별도의 provider Option이 필요하다. (aws/hashcorp 의 버전 조정)
- S3 버킷 구축 당시의 Terraform Version은 0.12.31 이며, 구축한 후 console 상에서 최하단 Static website hosting에 대한 설정이 필요하다! (이 부분은 Terraform 상에서 추가될 필요가 있어보임)
Bitbucket Pipeline 설정의 경우 다음 Step으로 이루어진다.
- 해당 Repository에 대한 Admin 권한 획득
- bitbucket-pipelines.yml 파일 작성
- Bitbucket yml 파일의 경우 직접 작성하여 main 브랜치에 Pull Request를 날리는 경우도 있으나, 개발팀에서 직접 작성완료해 둔 경우도 있다.
- Repository Settings → Pipeline → Deployments → 환경 별 Variables 주입시키기 (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_DEFAULT_REGION, DISTRIBUTION_ID, S3_BUCKET 등)