8월 2일 TIL

·2023년 8월 2일
0

AWS 강의 정리 - 2

보안규칙
· 여러 인스턴스에 할당이 가능하다
· time out 에러 → 높은 확률로 인바운드 보안규칙 이슈
· connention refuse 에러 → EC2 내부의 이슈
· 모든 인바운드는 디폴트로 막혀있기 때문에 열어주어야 한다.
· 모든 아웃바운드는 디폴트로 열려있다.

포트번호 (대표적인)
· 22 : ssh(secure shell)로 인스턴스에 원격 접속 - 기본
· 21 : FTP 파일전송 프로토콜 - 파일 다운로드 프로그램 등으로 무언가를 받을 경우 사용
· 80 : http 웹 접속 - 예전엔 많이 사용했었음
· 443 : https 안전한 http 접속, 현재의 스탠다드
· 개발을 할 경우 보통 80과 443을 다 열어놓고 사용함

EBS(Elastic Block Store)
· EC2 인스턴스를 백업하기 위한 Elastic Block Store
· Elastic Beamstalk인지 잘 확인해야함 ! ← 얘도 EBS임.
· EC2가 서버의 하나의 인스턴스였다면 EBS는 EC2에 꽂아서 백업할 수 있는 외장 메모리
· 인스턴스를 terminate 상태로 만들어도 EBS로 백업해 두었다면 EBS에 데이터 유지 가능
· 하나의 인스턴스에는 여러 개의 EBS 장착 가능
· 하나의 AZ 안에서만 뺏다 꽂았다 할 수 있다. Region 단위로는 불가능
· 보관할 때는 EBS Snapshot을 사용한다. → 복원 시간은 오래 걸리지만 보관료가 저렴해진다.
· EBS Snapshot은 EBS와 달리 다른 Region으로 보내는 것이 가능

AMI(Amozon Machine Image)
· EC2 인스턴스 처음 생성 시 시작을 위해 사용
· 운영체제&어플리케이션 라이브러리 등 포함
· 미리 구성된 환경을 사용하여 더 쉽게 설정 가능 / 공백의 rinux 환경이 아닌 어느 정도 갖춰진 환경
· Amozon에서 제공하는 것 뿐만이 아닌 개발자가 직접 생성 후 사용 및 공유 가능
· AMI = 설치 CD
· EBS Snapshot을 사용하여 생성된다.

확장성
· 수평적 확장 : 인스턴스 or 서버 or DB가 있을 때 여러 개로 늘리는 것
· 수직적 확장 : 인스턴스는 그대로 한 개인데 성능을 높이는 것

고가용성
· 하나의 데이터센터에서 고장이나 문제가 생겨도 서비스가 중단되지 않고 다른 데이터 센터에서 서비스를 이어나간다.
· 안정적인 서버 유지를 위해 매우 중요!

ELB(Elastic Load Balancer)
· user들의 요청을 받아서 ec2 서버들에게 요청을 분산시켜 나눈다. / 서버 부하 방지 (EC2와 연동)
· 단일 Access 포인트 공개 → 예를 들어 naver.com 이라는 하나의 Access 포인트를 공개해서 요청을 받는다. (주소 DNS와 관계가 있기 때문에 Route 53과 연동)
· 어느 인스턴스가 살아있는지 체크 → Health check
· HTTPS 연결 제공 → 웹사이트 DNS에 HTTPS 인증을 달아서 HTTPS로 바꾸는 기능 보유 (ACM과 연동)
· 고가용성 제공
· 공개 트래픽과 내부 트래픽 분리 : 보안성 ↑
· 종류
- Classic Load Balancer : deprecated / 예전 버전, 지원은 하지만이제 사용 x
- Application Load Balancer : 실습 시 사용, 많이 사용함/ URL, Query String 등을 기준으로 컨텐츠의 요청을 보냄
- Network Load Balancer : 굉장히 많은 Throttle이 있을 때 low latency로 제공해야 할 때 사용
- Gateway Load Balancer : 다른 방화벽이랑 third party의 어플리케이션들을 가져다가 사용할 때 사용

SSL(Secure Sockets Layer)
· 인터넷 상에서 정보를 안전하게 전송하기 위한 프로토콜
· 클라이언트와 서버 사이에 안전한 접속
· 전송되는 데이터 암호화 → 정보의 안전성 보장

TLS(Transport Layer Security)
· SSL이 보완된 기술
· 원래는 SSL이 아니라 TLS인데 아직까지 SSL이라 불림
· 적용된 통신 방식 : HTTPS
· HTTP는 SSL이 적용되어 있지 않음 → 사용자의 통신을 감청하거나 조작하는 것이 가능함

위의 보안에 대한 설명이 그림으로 이루어져 이해가 쉬운 사이트 click!

RDS(Relational Database Service)
· sql을 쿼리언어로 사용하는 관계형DB를 위한 서비스
· EC2에서도 포트를 이용해서 DB로 사용할 수 있다.
· RDS가 EC2보다 더 좋은 이유 :
- DB를 위한 인프라 자동 구축(provisioning) & 업데이트
- 지속적 백업, 복구 기능 지원 = DB가 날아가는건 절대 안됨!
- 모니터 대시보드 지원 - DB에 트래픽이 얼마나 있는지 등 확인 가능
- read replicas 지원 (성능향상) / 아래에 설명 나옴
- Disaster Recovery(재해 복구)를 위한 multi AZ지원 (고가용성) / 아래에 설명 나옴
- 수평/수직 확장성 지원
- EBS 백업 지원
단점 : SSH로 접속 불가능 - 터미널 접속 불가능, 서비스 중간에 RDS로 옮기는 것은 힘들 수 있음

RDS 지원 기능
· Storage Auto Scaling
- DB 용량 한계치 도달 시 자동으로 용량 늘려줌 / 수직 확장성
- 사용을 위해 Maximum Storage Threshold(최대치)를 지정해야 함!
- 예측 불가능한 트래픽이 있을 경우 유용함 (예를 들어 이벤트로 많은 글이 올라오는 경우)

· Read Replicas

- 글 작성시 서버를 통해서 RDS에 글을 작성하고 글을 읽을 때는 RDS에서 글을 읽어간다.
- 빨간색 write 화살표보다 초록색 read 화살표가 더 크다 → 실제로 서비스에서 write보다 read 양이 압도적으로 많다.
→ 그렇기 때문에 Read Replicas 기술 지원 : RDS 본 DB에 데이터 등이 쌓이게 되면 비동기적으로 복제 DB를 만든다. 그것이 Read Replicas 즉, read용 복제품이다. 이렇게하면 read가 한 쪽으로 몰리는 것을 막을 수 있다.
- 오직 SELECT문만 가능하다. / INSERT, UPDATE, DELETE는 불가능!

· Multi AZ
- RDS로 write read를 하고 있다가 다른 AZ로 그걸 그대로 옮기는 것.
→ RDS가 손실되어도 Multi AZ가 가지고 있음
- 특징 : 가용성↑(고가용성을 위한 기능), 확장성이랑은 크게 상관 없음(Multi AZ가 있어도 성능은 동일함), 수동 설정 필요없이 아마존이 해준다. Read Replicas도 Multi AZ로 쓰일 수 있다. (Read Replicas를 RDS로 승격!)

Domain Name System
· 간단히 말하자면 주소록
· 전화번호에도 구조가 있는 것처럼 DNS url에도 구조가 있다. (DNS 계층 구조)

출처 : https://codesweetly.com/dns-hierarchy
- "" : 처음에 시작하면 Root level(전체)
- .com : Top level Domain
- naver : Domain name / 이미지 속 codesweetly
- www : Subdomain / 없을 수도 있고 다른 내용으로 바뀔 수 있음. 예를 들어 모바일은 m.naver.com

IPv4 vs IPv6
· 두개 다 인터넷 프로토콜 주소 체계이다.
· IPv4 : 32비트로 구성, 최대 약 43억개의 IP 주소 사용, 인터넷 사용자 증가로 IPv4 주소 부족 문제 발생
· IPv6 : IPv4 문제 해결 위해 등장, 128비트로 구성, 약 340경개의 IP주소 사용, 보안성과 기능면에서도 개선

레코드 타입
· 예를 들면 전화번호부에서 전화번호 종류
· A 레코드 : 호스트네임(도메인 네임)과 IPv4 주소 연결
· AAAA 레코드 : 호스트네임(도메인 네임)과 IPv6 주소 연결
· CNAME 레코드 : 호스트네임(도메인 네임)을 다른 호스트네임과 연결/ 다른 호스트 네임은 A or AAAA 레코드가 있어야 함
· 호스트존(주소록)의 네임서버를 지정
+ 호스트존 : public = 도메인 네임 IP 주소 / private = 사설망 내부에서 사용
+ SOA레코드 = 메타 데이터 담고 있음 / NS레코드 = 네임서버 정보를 담고 있음(보통 백업을 위해 4개가 등록됨)

CNAME과 Alias
· DNS 레코드의 유형
· 호스트 이름을 다른 호스트 이름에 매핑하는데 사용
· CNAME
- 호스트 이름을 다른 호스트 이름으로 매핑
- 이전에 정의된 호스트 이름의 모든 레코드를 복사하여 새호스트 이름에 할당
- 호스트 이름 변경되었거나 호스트 이름이 서로 다른 IP 주소를 가리키도록 사용
- 루트 도메인이 아닌 경우에만 적용
· Alias
- 호스트 이름을 분산 된 웹사이트와 같은 AWS 리소스에 매핑 → AWS 리소스에 대한 DNS 레코드를 만들 수 있음
- Amazon Route 53에서만 지원

TTL(Time to Live)
· 캐싱을 얼마나 오래 할 것인가?
· DNS 레코드가 캐싱될 수 있는 최대 시간을 나타낸 값
· TTL 높을수록 DNS 캐싱 시간이 길어짐 → 캐싱 효율성 ↓
· 일반적으로 몇 분에서 몇 시간까지로 설정

profile
코린한별

1개의 댓글

comment-user-thumbnail
2023년 8월 2일

공감하며 읽었습니다. 좋은 글 감사드립니다.

답글 달기