AWS
2023 AWS 웹 호스팅하기 (Route53, S3, ACM, CloudFront)
sendkite
2023. 5. 31. 00:50
AWS를 활용해서 간단한 웹 페이지 배포했다. https://sendkite.net
사용한 기술의 개념을 정리한다.
Route53이란?
- AWS에서 제공하는 관리형 DNS 서비스
- 도메인 네임 등록 (등록 대행소 | ex. ICANN (루트네임서버), 등록소 (Route 53, 가비아))
- 호스팅 영역 생성 제공
- Second Level Domain(SLD) 서버 역할
- 레코드 작성 기능 제공
- DNS 레코드? 도메인 요청 처리 방법
- A레코드 → IPv4로 정의
- AAAA레코드 →IPv6로 정의
- CNAME : 도메인의 별칭 식별
- NS : 도메인의 네임 서버를 식별
- DNS 레코드? 도메인 요청 처리 방법
DNS란?
- Domain Name System
- 통신을 위한 주소 체계(IP)를 문자 형태로 매핑하여 연결
- 웹서버 도메인 구매 + DNS 서버 등록하여 동작 (Route53나, 가비아 같은 등록소에 등록할 수 있다.)
- 규약: UDP 53 포트로 DNS 서버 요청 - 응답 (그래서 Route53이 AWS 서비스 이름이다.)
- 도메인 구조
- Sub Domain + Second Level Domain(SLD) + Top level domain(TLD) + root domain
- SLD 네임 서버 > 최종 정보를 가지고 있는 서버
- TLD 네임 서버
- 루트네임 서버
- DNS 서버 > DNS 해석기 → 도메인 주소를 루트 네임 서버에게 요청
- TLD 네임 서버에 요청 → SLD 네임 서버 요청 → IP 주소 리턴
- 캐싱을 사용하여 DNS 서버 자체로 응답 가능 (TTL 동안 유지)
S3란?
AWS에서 제공하는 객체 스토리지이다. Map과 같은 형태로 데이터(object)를 저장하고 관리할 수 있다.
Bucket에 Object를 store and protect 하기 때문에 객체 스토리지라고 표현.
IAM이나 버킷 정책을 설정하여 손 쉽게 접근을 제어할 수 있다.
Amazon S3 as a basic data map between "bucket + key + version" and the "object" itself.
- Bucket : 객체를 담을 수 있는 컨테이너. (저장소, 한 계정에 100개까지 생성할 수 있다.)
- Object : 파일 Data 그리고 파일을 상세하는 모든 Metadata로 구성.
- 저장된 객체는 Key, Version Id로 식별할 수 있다.
- Key : 버킷에 저장된 모든 Object는 key를 식별자로 가진다.
- Version Id : Object의 versioning을 할 수 있다. (깃 처럼. Version Id는 version 식별)
- PreSigned Url? URL에서 식별된 객체에 대한 액세스를 부여
ACM (AWS Certificate Manager)이란?
- ACM은 SSL 인증서를 발급해주는 서비스 (HTTP를 HTTPS로 만드는 서명)
- 주의할 점은 CloudFront를 사용하려면 us-east-1(미국 동부 버지니아 북부) 리전에서 SSL 인증서를 요청해야 한다.
- SSL? TLS?
- SSL (Secure Sockets Layer)
- 1990년 중반 netscape에서 개발된 보안 방법
- 통신할때 비대칭키 암호화 방식으로 통신에 보안 획득
- TLS (Transport Layer Security
- SSL의 업그레이드 버전
- SSL (Secure Sockets Layer)
CloudFront란?
- AWS에서 제공하는 CDN 서비스이다. (캐시 서버)
- 컨텐츠를 최적화 하여 보다 빠르게 유저에게 제공할 수 있다.
- HTTPS 통신을 지원한다.
- 주요 용어 정리
Origin | 온프레미스 서버, EC2, ELB, S3 | Origin 서버 | |
Distribution | CloudFront의 CDN 구분 단위 | • 도메인 distribution → 도메인만을 위한 CDN |
|
TTL(Time To Live) | 캐싱된 item이 살아있는 시간. 캐시 유효 시간 | TTL [sec] 이후에 캐싱에서 삭제 | |
invalidate | TTL 지나기 전에 강제로 캐시 삭제 | 한달에 1000건 무료. 추가는 1건당 5원. | |
cache key | 어떤 기준으로 컨텐츠 캐싱할 것인지 결정 | url 기준, header, cookie, 쿼리스트링 | cloudFront 성능의 핵심 |
policy (정책) | cloudFront 동작 방법을 정의 | 어떻게 캐싱 어떤 내용을 origin 어떤 header를 허용할지 등을 결정 |
Reference
SSL 관련 설명 : https://www.youtube.com/watch?v=jyZ7TQaFy_o
S3 접근 제어: https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/userguide/WebsiteAccessPermissionsReqd.html
반응형