CRA app deployment via Terraform AWS S3, CloudFront, CodePipeline, CodeBuild
- NodeJS 16
- Terraform
-
- Remove any existing Terraform binary (/usr/bin/terraform and/or /usr/local/bin/terraform)
-
- Install m1-terraform-provider-helper
- 2.1.
brew install kreuzwerker/taps/m1-terraform-provider-helper
-
- Install Terraform
- 3.1.
brew tap hashicorp/tap
- 3.2.
brew install hashicorp/tap/terraform
-
- Install the hashicorp/template version v2.2.0
- 4.1.
m1-terraform-provider-helper activate
- 4.2.
m1-terraform-provider-helper install hashicorp/template -v v2.2.0
➜ ~ terraform --version
Terraform v1.3.1
on darwin_arm64
+ provider registry.terraform.io/hashicorp/aws v4.33.0
+ provider registry.terraform.io/hashicorp/random v3.4.3
+ provider registry.terraform.io/hashicorp/template v2.2.0
- Create React App
npx create-react-app terraform-react-s3-cloudfront-pipeline --template=typescript
- Change your App name
terraform/main.tf
application_name = "{your app name}"
environment = "{app environment name}"
- Change your repository info
terraform/main.tf
repository_name = "{your repository}"
branch_name = "{your deploy branch}"
- Change your domain
terraform/main.tf
certificate_domain_name = "{your ACM name}"
should beus-east-1
regioncloudfront_domain_name = "{your Domain name}"
-
cd terraform
-
terraform init
-
terraform apply
-
Check outputs
GitHub 리포 연결을 위해서는 콘솔에서 직접 연결해야 함. CodePipeline 에서 Setting
terraform apply
이후
CodePipeline > Settings > Connections
Status = Pending 인 커넥션 선택 후 Update pending connection
으로 Github 연결