2024.08.18 - [DevOps/AWS] - [AWS] EC2에 스프링 프로젝트 띄우기
지난 포스팅까지 EC2에 스프링 프로젝트를 띄우고, 인터넷에서 Public IP 주소로 접근해서 나의 Rest API가 잘 작동하는지 테스트했다. 그렇다면 www.(호스트 이름)naver.com(도메인이름)같은 도메인 주소로 접근할려면 어떤 설정이 필요할까?
인터넷상의 모든 컴퓨팅 기기들은 고유한 IP 주소를 통해 통신한다.
위 개념에서 사람은 IP 주소 대신 호스트이름 + 도메인 이름 -> FQDN(Full Qualified Domain Name)을 사용한다.
왜? 사람한테 편하니까!
- 호스트이름 <-> IP 주소 매핑
- 초기에는 각 서버에 HOSTS.TXT(/etc/hosts) 라는 파일을 두고 관리를 했었다 -> 시간이 지날수록 네트워크로 연결되는 컴퓨터가 너무 많아짐
- 그래서 나온것이 DNS Server (IP주소, 호스트이름, 별칭)이다. HOSTS.TXT에서 DNS Server로 질의를 보내는 방식이다.
DNS(Domain Name System)
- 클라이언트/서버 모델
- 분산/계층 모델
- ICANN(국제 인터넷 주소 관리 기구) -> 도메인 이름 유일성 만족시키게 관리
순서대로 계층적 관리 root(.) -> TLD(.com) -> SLD(naver) -> www
- 자신보다 한단계 밑에있는 도메인만 관리한다.
도메인 등록은 어떻게?
도메인 등록처에 중복되지 않는 도메인이름을 요청하면된다.
ex. aws, gabia 등 제공업체를 이용하자
도메인 접속 흐름도
사실 모든 HOST는 로컬 DNS서버가 등록되어있다.
- 도메인으로 접속 요청 -> Local DNS 서버
- 도메인에 해당하는 IP주소를 캐시로 요청한다.
- 캐시에 정보 없으면 Local DNS 서버(Client) -> 전세계 13곳(A~N) Root 서버(Server)에 질의
- TLD 질의
- SLD 질의
- 실제 IP 주소로 접속 요청
Amazon Route 53
- 가용성과 확장성이 뛰어난 도메인 이름 시스템(DNS) 웹 서비스
- 사용자 요청을 AWS 또는 온프레미스에서 실행되는 인터넷 어플리케이션에 연결
- 주요기능
- 도메인 등록
- 상태 확인 및 모니터링
- DNS 장애 조치
- 다양한 라우팅 정책
- VPC 용 Private DNS
위의 도메인 접속 흐름도에서 캐시에 정보가 없다면 Root 서버에 질의 한다고 했는데, 마지막 SLD질의 이후 IP주소를 확인 하기 위해 Route 53에서는 레코드라는 것이 존재한다.
- Key-Value 형식으로 도메인의 IP주소 저장
도메인으로 나의 서버를 접속할수 있게 만들기위해서 간단하게 정리하자면
- 도메인 신청
- Route53 만들기
- 레코드 파일 만들기
- 레코드에 매핑정보 기록
Amazon Route 53 레코드 유형
- NS(Name Server) : 도메인 네임서버의 이름을 나열. Route 53 만들면 기본 4개의 DNS서버가 레코드 정보를 관리 - 자동생성
- SOA(Start Of Authority) : 레코드 및 Route 53 동작을 결정하는 기본 정보를 나열 - 자동생성
- A(Address) : 특정 FQDN의 IP 주소 나열 - 따로 설정(IP가 자주 변동되면 안되기 때문에 EC2에 탄력적 IP 설정)
도메인 구매
AWS에서도 도메인을 등록할수있지만, 가비아에서 등록하도록 한다.
> 원하는 도메인 이름 검색
각각 TLD 마다 요금이 다르게 측정된다.
(연습이니까 저렴한걸로 구매..)
결제는 사이트 절차에 따라서 하면된다.
> Route 53 -> 호스팅 영역에서 구매한 도메인 등록할수 있음
> 등록된 도메인에서 도메인을 구매할수도 있음(나는 가비아에서 구매했으므로 패스)
> 호스팅 영역 생성 클릭
> 가비아에서 등록한 도메인 이름과 똑같이 입력
> 퍼블릭 호스팅 영역 선택
> 호스팅 영역 생성 클릭
> 자동생성된 NS 4개 -> 가비아에 등록
> 가비아 -> DNS 관리툴 -> 만든 도메인 클릭 -> 전체 도메인 -> 네임서버 -> 설정 -> 1차 ~ 4차 까지 NS 등록 (단 맨 뒤 '.' 제외)
> 소유자 인증 클릭
> 적용
> EC2 -> 탄력적 IP -> 탄력적 IP주소 할당 클릭
> 기존에 만든 EC2와 주소 연결
> EC2의 IP주소 고정
> 레코드 생성 클릭
> 호스트 이름 설정
> 레코드 유형 - A 설정
> 값에 - 탄력적 IP 주소 설정
> 레코드 생성
>> 도메인 이름으로 접속 가능!
** 동일한 IP 주소로 여러개의 이름을 등록하는것도 가능하다.
'DevOps > AWS' 카테고리의 다른 글
도커 + EC2 + Nginx +Github Actions를 이용한 다중 컨테이너 배포하기 (2) | 2024.09.14 |
---|---|
[AWS] AWS 리소스 삭제하기! (0) | 2024.09.04 |
[AWS] EC2에 스프링 프로젝트 띄우기 (0) | 2024.08.18 |
[AWS] Amazon RDS 사용해보기 (0) | 2024.08.17 |
[AWS] Amazon EC2 원격 로그인 (0) | 2024.08.16 |