
원하는 경로에 폴더를 만들고 provider 을 만들어준다. 이전에도 말했지만 테라폼에서 aws를 사용하고 싶다면 resources를 가장 먼저 설정해줘야한다.
provider configrue 관련 문서(코드)

terraform init 시작
main.tf를 만들고 resource block을 통해서 bucket을 만들어준다.
AWS bucket 관련 문서(코드)
terraform plan

terraform apply -auto-approve
버킷 생성 완료 
이제 정적 웹 호스팅을 하기 위해서 bucket configure을 해줘야한다. public access가 가능하게 해줘야하고, 정적 웹 호스팅이 가능하게 해줘야 하는데, 그러기 위해서는 먼저 몇가지 configure을 해줘야 한다.
s3 bucket ownership 관련 문서(코드)
S3 객체 소유권은 버킷에 업로드되는 객체의 소유권을 제어하고 액세스 제어 목록(ACL)을 비활성화 또는 활성화하는 데 사용할 수 있는 Amazon S3 버킷 수준 설정
s3 public access 관련 문서(코드)
Amazon S3 퍼블릭 액세스 차단 기능은 액세스 포인트, 버킷 및 계정에 대한 설정을 제공하여 Amazon S3 리소스에 대한 퍼블릭 액세스를 관리할 수 있게 해줌
s3 bucket acl 관련 문서(코드)
버킷 ACL은 사용자의 버킷에 대해 특정 작업을 수행할 수 있는 권한을 Amazon CloudFront와 같은 AWS 서비스에 부여하는 데 사용할 수 있음.


설정을 완료한뒤에 이제 terraform plan-> terraform apply -auto-approve

이제 public access가 가능하다. 이제 정적 호스팅 웹호스팅을 가능하게 해보자.
bucket web site coniguration 관련 문서(코드)
를 하기 전에 위 configuration에 사용할 index.html, error.html을 만들어야 하는데 난 전에 만들어놓았던 포트폴리오 페이지를 사용할 예정
aws s3 object 관련 문서(코드)
aws_s3_object는 S3 객체 자원을 제공해준다. 이걸 이용해서 s3객체를 올려주자.
aws_s3_object를 이용해서 index.html, error.html, profile image, 그리고 폴더안에 든 사진을 올려주었다.
참고로 폴더를 올릴때에는 fileset function을 사용했다. for_each와 결합해서 사용하면 aws_s3_bucket_object에 모든 파일을 올릴 수 있다.
여기서 포인트는 key값을 해당하는 경로로 만들어줘야 폴더안으로 파일들이 올려진다.
이제 웹사이트 호스팅을 활성화 해주자.


엔드포인트 클릭

간단한 사이트 배포 완료!!!

