IP 주소는 숫자와 온점으로 이루어져있어 기억하기에는 너무 불편하다! 그래서 IP에 기억하기 쉽도록 문자로 이루어진 이름을 붙여주는데 그게 바로 도메인이다.
ex. 127.0.0.1 -> localhost
도메인 이름은 계층 시스템을 이용해서 이름이 중복되지 않는 시스템이다. 요소는 좁은 범위에서 더 넓은 범위로 나열된다.
https://velog.io -> 범위 : velog < io
도메인 이름으로부터 IP 주소를 결정하는 것을 이름 결정이라고하고, 이름을 결정하는 시스템을 제공하는 것이 DNS이다.
DNS는 도메인 계층에 맞춰 분해해서 도메인마다 도메인을 관리하는 DNS 서버가 제공된다.
놀랍게도 어떤 DNS에 질의를 해도, 전 세계의 모든 도메인 이름을 IP 주소로 변환할 수 있다. 이는 아래의 규칙을 따르기 때문에 가능하다.
- DNS 서버가 관리하는 도메인이면, 존재하는 IP 주소를 바로 반환한다.
- DNS 서버가 관리하는 도메인의 서브 도메인이면, 서브 도메인을 관리하는 DNS 서버에 질의한다.
- 그 이외의 도메인이라면 자신이 소속된 상위 DNS 서버에 질의한다.
++ 도메인 이름과 IP 주소는 반드시 1:1 관계는 아닐 수 있다.
++ 하나의 도메인에 여러개의 IP가 적용되는 경우 : 넷플릭스 ping?을 쳐보면 항상 다른 IP가 나온다. (부하분산??)
HTTPS를 적용하기 위해서는 웹 사이트에 SSL 서버 인증서를 적용해야한다.
SSL 서버 인증서란...!
SSL 서버 인증서는 클라이언트와 웹 서버간의 통신을 제 3자가 보증해주는 전자문서다.
클라이언트가 서버에 접속한 직후에 서버는 클라이언트에게 SSL 인증서를 전달하고, 클라이언트는 신뢰할 수 있는 인증서인지 검증한 뒤 서버와 통신을 진행한다.
적용하기 전에 SSL 서버 인증서를 발급받아야하는데 누구한테서 발급을 받냐! 하면 바로 CA(Certificated Authority), 즉, 인증기관으로 부터 발급을 받아야한다.
그런데 AWS또한 SSL 서버 인증서를 발행할 수 있는 인증 기관의 기능을 가져서, SSL 서버 인증서를 무료로 발급받을 수 있다. SSL 인증서 발급은 AWS의 ACM(AWS Certificate Manage)에서 가능하다!
Route 53은 아래의 두 가지 기능을 수행한다.
1. 도메인 이름 등록
2. DNS 서버
도메인 이름 등록
이란 상위 도메인을 관리하는 조직에 자신의 도메인을 등록해달라고 요청을 하는 것이다.
아마도, 가비아, 고대디, cafe 24등의 사이트에서 도메인을 구매하면 해당 조직이 상위 기관에 도메인을 등록해주는 것 같다. 물론 AWS도 이 기능을 가지고 있기에 AWS에서도 도메인을 구매할 수 있다.
AWS에서 도메인을 구매하면, 자동으로 취득한 도메인을 관리하는 퍼블릭 DNS가 생성된다. 이 퍼블릭 DNS에 외부로부터 접근 가능한 AWS 리소스(ex. EC2)를 등록하면 된다.
++ 가비아 등의 외부 서비스에서 취득한 도메인을 Route53의 퍼블릭 DNS가 관리하게 하기 위해서는 외부 서비스에서 AWS로 도메인 관리를 이관해야한다.
가비아와 같은 외부서비스에서 네임서버 관리에서 네임서버를 AWS의 네임서버로 변경하는 과정이 필요하다.
DNS 서버
레코드를 설정해, 해당 도메인에 대해서 특정 리소스의 IP 혹은 로드밸런서와 연결하여 EC2 혹은 특정 EC2 타겟그룹으로 라우팅 시킬 수 있다.
서브 도메인 설정도 레코드 생성시 레코드 이름에서 설정 할 수 있다.