프론트엔드를 배포하는데 있어서 큰 컴퓨팅 성능이 필요하지 않습니다. 단지 우리가 만들어둔 html, css, js등을 사용자에게 넘겨줄뿐이죠.
AWS에는 클라우드 스토리지 즉, 원격으로 사용할 수 있는 저장소를 제공합니다. 우리는 이 저장소에 만들어둔 프로젝트를 저장하고 페이지를 띄우는 것까지 해보도록할게요.
- S3는 스토리지 서비스입니다. 가벼운 서비스라면
버킷 생성하기
- 아마존 홈페이지 검색탭에서 s3검색 후 클릭

- 버킷만들기를 선택합니다.

- 버킷 이름을 입력하고 리전을 선택하겠습니다.

버킷이름에는 중요한 정보등을 포함하지 않도록 작성해주세요. 나중에 버킷안의 객체들을 참조하기위한 URL에 표시되기 때문이에요. 따라서 URL이 겹치면 안되기 때문에 누구나 쓸거같은 버킷이름을 사용하면 아래와 같이 버킷이름을 바꿔야 한다고 나옵니다.

리전은 가까운곳으로 선택해주세요. 저는 한국에 살고있으니 서울로 선택했습니다.
- 공개(퍼블릭 액세스)여부 설정
누군가 내 버킷을 마음대로 접속하지 못하도록 해주는게 좋아요. 하지만 우리의 html을 읽을 수 있게 해줘야 하기 때문에 체크해제를 해주겠습니다. 저장소에 대해 공개를 해놓는 것이기 때문에 민감한 정보는 올리지 않는게 좋습니다.

- 다른부분은 건들지 않고 하단의 버킷만들기를 클릭하겠습니다.
퍼블릭액세스 이하 전체설정

- 버킷이 생성되었습니다. 버킷이름을 클릭하여 버킷에 들어가보도록하겠습니다.


버킷에 내 파일 업로드하기
- 버킷에 접속하여 업로드 버튼을 누릅니다.
- 파일을 드래그앤 드롭으로 업로드 해주겠습니다. 폴더추가나 파일추가를 이용해도 됩니다!
권한 또한 버킷을 생성할때와 마찬가지로 프라이빗으로 되어있는지만 확인,
나머지설정은 만지지 않고 업로드 버튼을 누르겠습니다.

- 업로드 파일에 대한 권한설정
- 아래 세팅을 하지않고 업로드를 진행합니다.
- 버킷의 메인에서 권한 탭으로 들어갑니다.
- 스크롤을 내려 버킷 정책을 수정합니다.
- 편집 버튼을 누르고 아래 json을 복사해서 입력해줍니다. 그리고 {BucketName}부분을 버킷이름으로 바꿔주면 버킷이 공개설정되어 배포했을때 업로드한 파일에 접근이 가능해집니다.
아래와 같은 화면이 나오지 않는경우



{ "Version": "2012-10-17", "Statement": [ { "Sid": "Statement", "Principal": "*", "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::{BucketName}/*" ] } ] }
역시나 업로드할때는 민감한 정보는 포함되지 않게 해주세요 ㅎ

설정을 한 후에 업로드 버튼을 누르고 업로드를 완료하겠습니다.

- 닫기를 눌러 버킷의 메인으로 돌아갑니다
정적 웹 사이트 호스팅 설정
- 이제 '속성' 탭으로 들어가겠습니다.

- 정적 웹 사이트 호스팅 설정하기
버킷 속성 탭으로 넘어가면 아래와 같은 화면이 나오는데요

제일 아래로 내려보면 '정적 웹 사이트 호스팅' 설정부분이 있습니다. 편집 버튼을 눌러주겠습니다.

편집버튼을 누르고 정적 웹 사이트 호스팅을 활성화로 바꿔줍니다.

활성화를 하게되면 아래와 같은 입력창이 나오는데요.
저는 index.html로 파일을 업로드 했기때문에 index.html을 입력해주었습니다.

- 변경사항 저장을 눌러줍니다.
변경사항 저장을 누르고 다시 속성탭 → 하단 정적 웹사이트 호스팅 부분을 보면 아래와같이 나옵니다.

- 해당 주소로 들어가면 우리가 만든 페이지를 볼 수 있습니다!

무료 도메인 연결해보기
무료 도메인을 사용해 볼 예정입니다.
주의! 무료 도메인 기간이 끝나면 요금을 내고 연장이 가능하나,
가끔씩 도메인을 뺏겨 연장이 불가능한 경우가 생길수도 있음!
freenom이라는 서비스를 통해서 무료 도메인을 받겠습니다!

메인페이지에서 원하는 도메인 주소를 검색 해주세요.

여기서 바로 get it now!를 누르면 not available이 나오는데요.

하나를 골라서 다시 검색해줍니다! 저는 jejutest.tk로 해보겠습니다.
그리고 checkout버튼을 눌러줄게요

아래와 같은 페이지가 나오는데 여기서 기간을 먼저 설정해 주겠습니다. 저는 3개월로 설정을 해두겠습니다!

그리고 Forward this domain버튼을 클릭하고 나오는 주소에 aws에 호스팅한 주소를 입력해줍니다.

주소를 입력 하고 Continue버튼을 누른 뒤 기다리고(오래 걸릴 수 있습니다!)
아래와 같은 화면이 나오면 이메일을 입력합니다.

몇 분만 기다리면 인증메일이 옵니다!


입력을 채운후(여기서는 이름, 주소, 도시, 국가 만 입력했습니다.) 제일 아래 체크박스를 체크한 다음 Complete Order버튼을 눌러줍니다.
아래와 같은 화면이 나오며 만든 주소로 접속하면 aws에서 호스팅한 페이지로 접속 가능하게됩니다!


끝!