[AWS]: S3과 Route53
약 3주 동안 틈틈히 만들었던 m.c.c homepage를 드디어 배포를 했다. 첫 배포라 이것 저것 찾아보다가 S3와 Route53을 이용해서 배포를 하기로 결정했다.(front-end가 배포하는 경우 가장 많이 사용하는 방법)
도메인 주소는 예전이 가비아에서 사놓은게 있어서 aws에서 따로 구매는 안했다.
S3(Simple Storage Service)
모든 종류의 데이터를 객체 형태로 무한정으로 저장할 수 있고(저장에 초점이 맞춰진다), 저장 및 검색에 사용되는 고유한 key를 제공한다.
-> SSL을 통해 데이터 전송과 암호화 하므로 보안도 우수
가장 큰 특징은 버킷이라는 공간에 정적인 컨텐츠를 저장한다. 뿐만 아니라 S3에서는 '정적 웹 사이트 호스팅' 기능도 제공한다.
작성한 코드들을 버킷에 넣으면 S3로 정적 웹 사이트 호스팅이 가능하다는 것이다.
💡 S3 선택 이유
aws에 대해 무지할 때 유일하게 알고있던 서비스는 EC2였다. (예전에 팀플할 때 백엔드가 EC2를 통해 배포를 했다고 들었다.) 그래서 무작정 '나도 EC2로 해야하나?' 생각하고 구글링을 해보니, EC2는 주로 어플리케이션을 호스팅할 때 사용하거나 규모가 있는 서버가 필요할 때 사용한다고 한다. (프론트 서버에서 로직을 돌려야하는 경우)
내가 만든 홈페이지는 서버에서 로직을 돌리는 것이 아니라, 그저 정적인 파일들만 전달해주면 되기때문에 굳이 거대한 EC2를 사용할 이유가 없었다.(인스턴스를 구매해야되기 때문에 비용도 더 나옴)
=> S3로 정적 웹 사이트 호스팅을 하자고 판단했다.
S3와 Route53
S3는 파일이 업로드 됐을 때 그 사실을 다른 서비스에 알려서, 서비스를 트리거 할 수 있다. 즉, S3와 연계된 서비스를 사용하는데 유용하다는 장점이 있다. 그래서 Route53과도 궁합이 좋을것이다.
Route53
Route53은 가용성과 확장성이 뛰어난 클라우드 DNS(Domain Name System) 웹 서비스이다. 도메인 구입부터 네임서버 등록까지 dns에 필요한 모든 기능이 있고, 추가로 모니터링 기능까지 제공한다. 또한 동적으로 사용자에게 노출된 DNS 레코드 타입과 값을 조정할 수 이있다.
나는 가비아에서 따로 구입한 도메인이 있었기 때문에 Route53에서 도메인을 구입하지 않았다.
💡 Route53을 사용한 이유
가장 큰 이유는 aws 내에서 도매인을 관리하는게 사용량 체크과 S3와의 연동이 가장 매끄러울 것이라고 생각했다. S3 자체만으로는 HTTPS를 지원하지 않지만, Route53과 같이 사용하면 ACM(Aws Certificate Manager)로 커스텀 도메인에 HTTPS도 적용 가능하다고 해서 선택했다.
호스팅 영역을 생성할 때 호스트 영역 유형이 두가지가 있다.
퍼블릭 호스팅 영역: 인터넷에서 트래픽을 라우팅하고자 하는 방법을 지정하는 레코드를 포함한다. 즉, 우리가 브라우저에 도메인으로 접속해서 사용하는 일반적인 도메인을 말한다.
프라이빗 호스팅 영역: Amazon VPC에서 트래픽을 라우팅하고자 하는 방법을 지정하는 레코드를 포함한다. 즉, 지정한 VPC에서 요청한 DNS 쿼리 응다블 반환하는 일종의 컨테이너하고 보면 된다. VPC 내 AWS 서비스들의 사설 IP 대신 도메인으로 이용하고자 할 때 사용하는 영역이다.