웹 브라우저에 Url을 입력하면 일어나는 일 - 인프라
웹 브라우저에 naver.com을 입력하면 일어나는 일
주소 = URL + URI
- URI: 식별자
- URL: 위치지정자 naver.com
- DNS
- URL을 입력했을 때 Naver의 IP를 알아야하기 때문에 DNS에게 질의를 한다
- DNS는 분산형 DB
- 리스폰스가 오면 IP 주소를 획득
- hosts 파일: hosts 파일을 뭐라고 썼는지 먼저 찾음
- DNS Cache: 캐쉬 결과를 보고 DNS에 안 물어봄
- 질의: PC 설정에 따라 DNS에 질의
- 공유기를 쓴다면 공유기가 DNS에 질의를 한다. 사설 IP 192.168.0.1 응답을 받는다
- ISP에서 전달해준 DNS 설정을 쓰게 되어있음
- DNS에 직접 질의
- IP 주소 획득
- PC에서 Naver 서버(IP 주소)로 TCP 통신을 한다
- TCP 연결
- HTTP는 TCP 연결을 기반으로 하기 때문에 TCP 연결을 한다
- HTTP 리퀘스트
- HTTP Req -> Response
- Response로 돌아옴
추가적
부하 분산 구조
- 웹 서버가 하나가 아니라 여러개로 중복시켜놓는다.
- 여러 IP주소가 한 개의 호스트 이름에 대응한다.
- 대량 트래픽으로 인한 서비스 부하를 피하기 위한 구조
구글이나 네이버정도 되는 회사는 GSLB나 CDN 서비스를 한다
커맨드창
이름을 봤을 때 (Akamai) CDN을 쓰고 있다고 알 수 있다
whois.nic.or.kr 여기에 address인 223.130.200.107를 넣어보고 정보 볼 수 있음
CDN을 사용하는 이유:
- GSLB - DNS, System (DNS)
Health check를 위해
서울 2. 도쿄 3.미국 4.부산
- 서울이 디도스를 당해서 서울 서버가 맛이 갔다
- 누가 접속하면 IP주소를 부산걸로 알려줌
유저가 서울 서버에 로그인을 한 상태에서 서울 서버가 다운되고 자기도 모르게 부산 서버로 접속이 되었다
- 로그인 세션은 유지가 될까?
- 유지가 되게 하려면 어떻게 설계해야할까?
- Fail over와 부하분산을 어떻게 해결할 것인가?
장애 대응 어떻게 할 것인가
도쿄는 지진나면 자연재해에 의해서 DR(Disaster Response)
보안
- DNS라는 걸 속여먹는 공격도 있다
- DDoS에 공격받아 서버가 다운될 경우
도커 + 쿠버네틱스
- 무중단 배포? 데브 옵스?
- 서비스가 중지되지 않고 버전업하기
- 잘하면 장애대응까지 됨