EC2
🐤 EC2란?
Elastic Compute Cloud의 줄임말.
인스턴스를 키고 끌 수 있고 켜진 만큼만 비용을 지불한다.
지불 방법은 아래와 같다.
🐤 EC2 지불방법
1. On-demand:
-
오랜시간동안 선불을 내지 않고 최소한의 비용을 지불하여 EC2 인스턴스를 사용하고 싶을때, 특히 앱/프로그램 개발시 최초로 EC2 인스턴스에 deploy할 때 매우 유용하다.
-
사용하는 만큼 돈을 내기 때문에 개발시간이나 종료기간이 정확하지 않을 때 많이 사용한다.
2. Reserved:
- 안정된, 예상 가능한 workload시 Reserved 사용 권장.
- 선불로 인한 컴퓨팅 비용 대폭 감소
3. Spot:
- 단순히 비용 절감 시 유용함
- 인스턴스의 시작/끝시점에 구애받지 않을 경우 권장.
🐤 EBS란?
Elastic Block Storage의 약자
- 저장공간이 생선되어지며 EC2 인스턴스에 부착된다.
- 디스크 볼륨 위에 File System이 생성된다.
- EBS는 특정 Availability Zone이 생성된다.
Avialability Zone (AZ) : 일종의 Disaster Recovery
EC2를 사용하기 위해 EBS라는 디스크 볼륨을 요구한다.
🐤 EBS 볼륨 타입
SSD군
볼륨 타입 | 설명 |
---|
General Purpoose SSD(GP2) | 최대 10K IOPS를 지원하며 1GB당 3IOPS 속도가 나옴. |
Provisioned OOPS SSD(IO1) | 극도의 I/O률을 요구하는 환경에서 주로 사용됨. 10K 이상의 IOPS를 지원함. |
Magnetic/HDD군
볼륨 타입 | 설명 |
---|
Throughput Optimized HDD(ST1) | 빅데이터 Datawarehouse, Log 프로세싱시 주로 사용됨.(boot volume으로는 사용할 수 없음.) |
CDD HDD(SC1) | 파일 서버와 같이 드문 volume 접근시 주로 사용. 역시 boot volume 으로는 사용할 수 없으나 비용은 매우 저렴함 |
Magnetic(Sandard) | 디스크 1GB당 가장 싼 비용을 자랑함. Boot Volume으로 유일하게 사용 가능함. |
🐤 ELB란?
Elastic Load Balancers의 약자
- 수많은 서버의 흐름을 균형있게 흘러보내는데 중추적인 역할을 한다.
- 하나의 서버로 Traffic이 몰리는 병목현상(bottleneck)을 방지한다.
- Traffic의 흐름을 Unhealty instance -> healty instance
🐤 ELB 종류
1. Application Load Balancer
- OSI Layer7에서 작동된다.
- HTTP, HTTPS와 같은 traffic load balancing에 가장 적합하다.
- 고급 request 라우팅 설정을 통하여 특정 서버로 request 보낼 수 있다.
2. Network Load Balancer
- OSI Layer4에서 작동된다.
- 매우 빠른속도를 자랑하며 Production 환경에서 종종 쓰인다.
- 극도의 Performance가 요구되는 TCP traffic에서 적합하다.
- 초당 수백만개의 request를 아주 미세한 delay로 처리할 수 있다.
3. Classic Load Balancer
- 현재 Lagacy로 간주된다.
- 시험에 자주 출제된다.
- Layer7, 4의 라우팅 기능 모두 지원.
504 ERROR: Load Balancer Error
X-Forwarded-For 헤더 : public IP adress를 알 수 있음.
🐤 Route 53
AWS에서 제공하는 DNS 서비스
RDS
🐤 RDS란?
- Relational DB Service(관계형 데이터베이스)의 약자이다.
- 종류 : Microsoft SQL, Oracle, MySQL, Postgre, Aurora, MariaDB
🐤 Data Warehousing
- Business Intelligence
- 리포트 작성, 데이터 분석시 사용
🐤 OLTP VS OLAP
- OLTP: INSERT와 같이 종종 사용되어지는, 혹은 규모가 작은 데이터를 불러올 때 사용되는 SQL쿼리가 유용
- OLAP: 매우 큰 데이터를 불러올 때 사용. 주로 덩치가 큰 SELECT 쿼리가 사용됨
🐤 Automated Backups(AB)
- Retention Period(1-35) 안의 어떤 시간으로 돌아가게 할 수 있음
- AB는 그날 생성된 스냅샷과 Transaction logs(TL)을 참고함
- 디폴트로 AB기능이 설정되어 있으며 백업 정보는 S3에 저장
- AB동안 약간의 I/O suspension이 존재할 수 있음 -> Latency
🐤 DB Snapshots
데이터베이스 스냅샷
1. 사용자에 의해 실행된다.
2. 원본 RDS INSTANCE를 삭제해도 스냅샷은 존재함
🐤 Multi AZ
- 원래 존재하는 RDS DB에 무언가 변화가 생길때 다른 Avilability Zone에 똑같은 복제본이 만들어 짐 = Synchronize
- AWS에 의해서 자동으로 관리가 이루어짐
- 원본 RDS DB에 문제가 생길 시 자동으로 다른 AZ의 복제본이 사용됨
성능 개선을 위해서 사용되지는 않음.
따라서 성능 개선을 기대하기 위해서는 Read Replica가 사용되어져야 함!
🐤 Read Replica
- Production DB의 읽기 전용 복제본이 생성됨
- 주로 Read-Heavy DB 작업시 효율성의 극대화를 위해 사용됨 (Scailing)
- Disaster Recovery 용도가 아님!
- 5개의 Read Replica DB 허용
- 각각의 Read Replica는 고유의 Endpoint가 존재한다
🐤 Elastic Cache
느낀 점
AWS의 DNS, EC2, RDS 서비스를 직접 실습해보며 AWS에 대한 막연한 두려움이 조금은 풀리는 느낌이 들었다.
또한 이론을 공부하면서 클라우드를 공부하기 위해선 컴퓨터 동작 원리와 네트워크에 대한 지식이 더욱 필요하겠다는 생각이 들었다.
오늘도 클클덕분에 클라우드 공부를 할 수 있어 감사하다🙏