1. 강의 내용
학습 범위
- 10. Route 53
- 11. 클래식 솔루션 아키텍처 토론
- 12. Amazon S3 소개
- 13. 고급 Amazon S3
- 14. 아마존 S3 보안
2. 강의 정리
1) DNS (Domain Name System)
: 도메인 이름을 IP 주소로 변환해주는 시스템입니다. (www.google.com → 123.456.78.90)
DNS 관련 용어
- Domain Registrar (!= DNS Service)
- 도메인을 등록하고 관리하는 서비스 (ex. Amazon Route 53, 가비아, 카페 24)
- DNS Records
- DNS 서버에 정보가 저장되고 서비스 되는 단위
- A : 도메인 이름을 IPv4 주소로 변환
- AAAA : 도메인 이름을 IPv6 주소로 변환
- CNAME : 도메인을 다른 도메인에 연결
- 다른 도메인은 A 또는 AAAA 레코드를 가진 도메인 이름이어야 한다.
- 최상위 도메인에는 CNAME 레코드를 만들 수 없다.
- `google.com`는 불가능하며 `www.google.com`과 같은 서브도메인에서만 CNAME 레코드를 만들 수 있다.
- DNS 규약에 따라 최상위 도메인에는 반드시 A 또는 NS 레코드가 필요하다.
이 때 CNAME 레코드를 생성하게 되면 충돌할 수 있기 때문에, 이를 방지하기 위해 사용할 수 없게 설정되었다.
(Route 53이 아닌 다른 DNS 서비스에서 'Alias 레코드'를 사용하지 못할 시, A/AAAA 레코드를 사용하여 다른 서비스와의 연결을 지원할 수 있다.)
- NS : 해당 도메인을 관리하고 있는, 책임 DNS 서버 정보를 지정함
- 도메인 이름에 대한 DNS 쿼리를 처리
- 일반적으로 여러 개의 NS 레코드가 설정될 수 있음
- 주로 도메인의 네임 서버 변경 시 사용된다.
- 도메인을 다른 DNS 서비스로 이전할 때, 새로운 네임 서버의 도메인 이름을 NS 레코드로 설정하여 새로운 서버로 매핑한다.
- DNS 서버에 정보가 저장되고 서비스 되는 단위
2) Amazon Route 53
: AWS의 DNS 웹 서비스
특징
- 100% 가용성을 제공하는 서비스
- AWS의 다른 서비스와 잘 통합되어 있다.
- ELB, ColudFront와 같은 서비스를 Route 53 레코드에 쉽게 연결 가능
- 주기적으로 Health Check를 하여 서비스의 상태를 점검하고, 문제가 발생한 경우 트래픽을 다른 리소스로 라우팅할 수 있다.
2-1) Hosted Zone
- 도메인을 구입한 후, 해당 도메인 이름에 대한 DNS 정보를 관리하는 공간
- 도메인 네임 서버 설정, 레코드 등록, TTL 설정 등을 관리
- Public Hosted Zone
- 공개적으로 인터넷에 접근 가능한 도메인에 대한 DNS 정보를 관리하는 공간
- Hosted Zone에 포함된 DNS 레코드는 모든 인터넷 사용자에게 공개적으로 사용이 된다.
- Private Hosted Zone
- AWS 내부에서만 접근 가능한 서비스에 대한 DNS 정보를 관리하는 공간
- Hosted Zone에 포함된 DNS 레코드는 외부에서 사용할 수 없으며, VPC 내에서만 사용될 수 있다.
2-2) Record TTL (Time To Live)
- 응답 DNS 쿼리 결과가 캐시되는 시간을 나타내는 변수
- 로컬 DNS 서버가 책임 DNS 서버(Route 53)에 질의하는 비용을 줄이는데 도움이 된다.
- Alias 레코드를 제외한 모든 DNS 레코드에 대해 필수적으로 설정을 해야 한다.
2-3) Alias Record
- 일반적인 DNS 레코드의 "도메인 → IP 주소" 가 아닌 "도메인 → AWS 서비스 엔드포인트" 로 매핑되는 레코드
- AWS Route 53에서만 제공하는 고유한 DNS 레코드 유형으로, 표준 DNS 레코드가 아니다.
- AWS 리소스의 엔드포인트가 변경되더라도 자동으로 업데이트 되어, 수동으로 레코드를 수정할 필요가 없다.
- CNAME과 달리, 최상위 노드에도 사용할 수 있다.
- `google.com`과 같은 루트 도메인에도 Alias 레코드 사용 가능
- AWS 리소스에 대한 Alias 레코드는 항상 A/AAAA 레코드로 설정되야 한다.
- AWS에서 자동으로 TTL을 관리하여, 수동으로 TTL을 설정하는 것은 불가능하다.
- 비용 무료
Alias 레코드를 설정할 수 있는 AWS 리소스 | Alias 레코드를 설정할 수 없는 리소스 |
Elastic Load Balancers (ELB) | EC2 인스턴스의 퍼블릭 DNS 이름에는 Alias 레코드 설정 불가 |
CloudFront Distributions | |
Amazone API Gateway | |
Elastic Beanstalk | |
S3 Website (S3 Bucket x) | |
VPC Interface Endpoints | |
Global Accelerator | |
Route 53 Record (same Hosted Zone) |
2-4) Health Check
- 지정된 리소스의 가용성을 모니터링 하고 문제가 발생할 경우, 자동으로 조치를 취하도록 하는 기능
- HTTP 헬스 체크는 Public 리소스에만 사용된다.
1. Endpoint 모니터링
- 약 15개의 Global Health Checker가 엔드포인트의 상태를 확인한다.
- 지원하는 프로토콜 : HTTP, HTTPS, TCP
- 18% 이상의 Health Checker가 정상으로 보고하면, Route 53은 Healthy라고 간주
- 헬스 체크가 통과하려면 2xx / 3xx 상태 코드를 반환해야 한다.
- 응답에서 첫 5120 byte의 내용에 기반하여 통과, 실프를 설정할 수 있음
- Router / 방화벽을 설정하여, Route 53 Health Checker로부터의 요청을 허용해야 한다.
2. 계산된 Health Check
- 여러 헬스 체크의 결과를 하나의 헬스 체크로 만들 수 있다.
- 논리 연산자 OR, AND, NOT 사용 가능
- 사용 예시
- 웹사이트의 백엔드 서비스의 유지 보수 작업을 진행할 때, OR 연산자를 사용하여 백엔드 서비스가 실패하더라도, 다른 서비스가 정상이라면 전체 시스템이 비정상 상태가 되지 않도록 할 수 있음
- 웹사이트의 백엔드 서비스의 유지 보수 작업을 진행할 때, OR 연산자를 사용하여 백엔드 서비스가 실패하더라도, 다른 서비스가 정상이라면 전체 시스템이 비정상 상태가 되지 않도록 할 수 있음
3. Private Hosted Zone에서의 Health Check
- Route 53 Health Chekcers는 VPC 외부에 존재
- VPC 내의 비공개 엔드포인트나 온프레미스 리소스는 직접 접근 불가
- CloudWatch Metric을 생성하고, CloudWatch 알람을 설정한 후 해당 알람을 확인하는 헬스 체크를 생성할 수 있다.
2-5) Routing Policies
1. Simple (단순)
- 단일 리소스로 트래픽 라우팅
- 1개의 레코드 내에서, 여러 IP 값을 지정할 수 있음
- Alias 레코드 사용 시에 하나의 AWS 리소스만 지정 가능함
- Health Check 불가
- 비정상적인 IP도 그대로 반환될 수 있음
2. Weighted (가중치)
- 각 리소스에 대한 라우팅 비율을 설정하여 트래픽 제어가 가능함
- 각 DNS 레코드들은 동일한 도메인 이름과 레코드 유형을 가져야 함
- 가중치 합이 100일 필요는 없음
- 특정 레코드 가중치 0 : 트래픽 X
- 모든 레코드 가중치 0 : 모든 레코드가 동일한 가중치를 가짐
- Health Check 가능
3. Failover (장애)
- Primary 리소스가 장애 상태일 때, Secondary 리소스로 트래픽을 자동으로 전환하는 정책
- TTL 값이 클 경우, 장애가 발생한 후에도 Primary 리소스 IP로 연결을 시도함
- Healtch Check 필수
4. Latency (지연시간)
- 지연 시간이 가장 짧은 리소스로 트래픽을 라우팅
5. Gelocation (지리적)
- 사용자의 실제 위치를 기준으로 트래픽을 라우팅
- 'Default' 레코드를 설정하여, 매칭되지 않는 경우 기본 리소스로 라우팅이 가능함
6. Geoproximity (지리 근접)
- Gelocation + bias(편향값)
- '실제 위치'와 '편향값'을 사용해 특정 위치를 기반으로 한 리소스에 더 많은 트래픽을 라우팅 할 수 있도록 함
- 해당 정책을 사용하기 위해서 AWS Route 53 Traffic Flow 설정 필요
7. IP-based
- 클라이언트의 IP 주소를 기반으로 트래픽 라우팅
- 특정 사용자의 CIDR에 따라, 특정 엔드포인트 제공이 가능함
8. Multi-Value (다중 값)
- 1개의 레코드 내에서, 여러 IP 값을 지정할 수 있음 (Simple과 동일)
- Health Check 지원 가능
- 정상적인 리소스만 반환
ex. 5개의 IP 중 2개가 다운되면, 나머지 3개의 IP만 응답으로 반환
- 정상적인 리소스만 반환
3) Elastic Beanstalk
: AWS에서 애플리케이션을 쉽고 빠르게 배포하고 관리할 수 있도록 지원하는 서비스
사용자는 애플리케이션 코드만 업로드하면 AWS가 자동으로 인프라(EC2, ELB, RDS, ASG..)를 프로비저닝 하고 관리해준다.
cf. 프로비저닝이란? 사용자 요구에 맞게, 필요한 리소스를 생성하여 제공하는 것
구성요소
- Application
- 배포하려는 소프트웨어와 관련된 모든 환경, 버전, 설정을 포함하는 컨테이너 개념이다.
- Application Version
- 배포하려는 애플리케이션 코드의 특정 버전을 나타낸다.
- 동일한 애플리케이션에 대해 여러 버전을 유지하고, 필요에 따라 특정 버전을 환경에 배포할 수 있다.
- Envionment
- 애플리케이션 버전이 실제로 실행되는 인프라 집합이다.
- 하나의 환경은 EC2, ELB, RDS, ASG 와 같은 인프라를 포함하고 있다.
- 하나의 환경에서 단 하나의 애플리케이션 버전만 실행 가능하다.
- 여러 환경(prod / dev / test) 관리 가능
환경 계층
- Web Server Environment (웹 서버 환경)
- HTTP 요청을 처리하는 일반적인 웹 애플리케이션 실행
- Worker Environment (작업자 환경)
- 백그라운드 작업 수행
- SQS 메시지 수신하여 처리하는 애플리케이션 실행
'DevOps > AWS' 카테고리의 다른 글
AWS SAA 4주차 (2) (0) | 2025.03.15 |
---|---|
AWS SAA 4주차 (1) (0) | 2025.03.14 |
AWS SAA 2주차 (0) | 2025.03.01 |
AWS SAA 1주차 (0) | 2025.02.22 |
Linux에서의 swap 메모리 설정 (0) | 2024.07.23 |