[AWS] AWS로 정적사이트 배포하기
Updated: Categories: DevOpsS3 + CloudFront를 사용하여 정적 사이트를 배포해보자
환경
- AWS S3
- AWS CloudFront
- AWS ECM
- Gabia
S3
-
1. S3 서비스로 이동 ->
버킷 만들기
-
2. 생성시 설정
- 토이 프로젝트용이므로 퍼블릭 액세스는 허용해주자
- 나머지 설정도 건들지 않고 바로 생성
- 3. 업로드와 권한 설정
- 이제 버킷에 파일을 업로드하면 url로 접근할 수 있음
- 추가적으로 권한을 설정해보자
- 4.
권한
->버킷 정책
탭으로 이동 후 편집 클릭
- 5.
정책생성기
를 통해 정책 생성 후 정책 작성 (그냥 public 설정임)Principal
: *Actions
: ALLARN
: 버킷 속성에서 복붙
- 6. 정적 웹 설정 :
속성
->정적 웹 사이트 호스팅
탭으로 이동, 편집 클릭인덱스 문서
: index.html로 해주자
ACM
- CloudFront에서 붙여줄 도메인은 반드시 ACM에서 미리 인증서를 발급 받아둬야함
-
난 가비아의 서브도메인에 CloudFront를 연결할 것이므로, 서브도메인의 인증서를 받아보자
-
1. ACM 서비스 이동 ->
인증서 요청
->공인 인증서 요청
선택 - 2. 도메인 이름 추가에 서브도메인을 추가
- ❓ 여기서
abcd.example.com
으로 특정 서브도메인을 지정하면 뒤에서 DNS인증이 되지 않았다.. 그냥 *로 해주자
- ❓ 여기서
- 3.
DNS 검증
선택 -> 태그는 알아서 설정 -> 검토
- 4. 이렇게 생성하면 이제 DNS 검증을 해줘야 한다.
- 아래처럼 탭을 열어서
이름
과값
을 도메인 사이트에서 CNAME으로 테스트 매핑해줘야함 (난 가비아에서 진행) 이름
에서 뒤에.example.com
이렇게 붙어있는건 지우고 넣어줘야함.
- 아래처럼 탭을 열어서
- 5. 가비아 ->
도메인관리
->DNS 정보
->DNS 관리
클릭
- 6. 아래처럼 도메인 선택 후 DNS 설정을 눌러주면…
- 7. 레코드를 추가할 수 있다!
- 타입은
CNAME
, 호스트는 AWS에서 알려준이름
, 값/위치도 AWS에서 알려준값
을 입력해주고 저장 - 이제 1분 안쪽으로 ACM에서
발급완료
가 뜰것이다!
- 타입은
CloudFront
-
1. CloudFront 서비스로 이동 ->
배포 생성
-
2.
원본 도메인
: S3 버킷 도메인 선택 (딴건 냅두자)
- 3.
기본 캐시 동작
: 사용할 기능들을 골라주면 됨- 난 HTTP 메소드는 모두 허용으로 했음
- 4. 다른 옵션은 건들지 않고 바로 생성한다
- 일단 생성해야 CloudFront 도메인이 만들어지기 때문에 도메인도 설정 X
- 5. 생성 후 가비아에서 서브도메인 레코드를 생성 후 매핑
타입
: 당연히CNAME
호스트
: 사용한 서브도메인명값/위치
: CloudFront 배포 인스턴스의배포 도메인 이름
- 6. 이제 CloudFront의 배포 인스턴스를 편집해주자
- 연결할 서브도메인명과 아까 생성했던 인증서만 추가해주고 저장
- 7. 끝!!! S3에 html을 올려놨으면
서브도메인/파일.html
으로 접속시 웹페이지가 잘 뜰것이다~