[AWS] AWS구조, 가상화
AWS 소개
전세계적으로 분포한 데이터센터(서버 모음)에서 200개가 넘는 완벽한 기능의 서비스를 제공하는 세계적으로 가장 포괄적이며 널리 채택되고있는 클라우드 플랫폼
현황
클라우드 서비스 1위 ⇒ 많은 레퍼런스로 자료가 많다.
스타트업, 엔터프라이즈 기업들이 사용하고있다.
매년 새로운 서비스 런칭 및 지속적인 성장이 가능하다.
구조
서비스 분포
aws에는 속하지만 리전마다 있는 것이 아닌 서비스가 있고,
리전마다 존재하는 서비스가 있으며
리전의 가용영역마다 존재하는 서비스가 있을 수 있다.
리전
리전은 전세계에 분포해있으며, AWS서비스가 제공되는 서버의 물리적 위치이다.
전세계적으로 흩어져있다.
각 리전마다 고유의 코드가 부여된다.
리전마다 사용가능한 서비스가 다르다.
us-east-1은 가장 첫번째로 서비스가 생성되는 곳이다.
리전 선택시 고려사항
- 지연속도(물리적 위치이기때문)
- 법률(데이터나 서비스관련)
- 사용가능한 AWS 서비스(리전마다 서비스가 다르다)
가용영역(Availability Zone)
리전의 하부단위로서, 하나의 리전은 반드시 2개 이상의 가용영역으로 구성된다
하나 이상의 데이터센터(물리적 서버 건물)로 구성된다.
리전간의 연결은 매우 빠른 전용 네트워크로 연결되며, 반드시 물리적으로 일정 거리 이상 떨어져있다.
- 재해에 대한 대비 및 보안상의 이유로
- 다만, 모든 AZ는 100KM이내의 거리에 위치한다.
각 계정별로 AZ코드와 실제위치는 다르다.
A유저의 test-1 AZ가 B유저의 test-1 AZ와 같을수도, 다를수도 있다는 것.
이런식으로 유저마다 AZ 코드와 실제 데이터센터 매핑을 다르게한다.
보안 및 한 AZ로 몰림을 방지하기위함이다.
엣지로케이션
aws의 CloudFront와 같은 CDN을 빠르게 서비스(캐싱)하기위한 거점이다.
전 세계에 흩어져 있어 전세계를 대상으로하는 서비스에 캐싱을 원활하게한다.
각 파란 점이 엣지로케이션이다.
한국의 엣지로케이션과 다른 나라의 엣지로케이션이 있는데, 각 국의 엣지로케이션에 파일을 캐싱해놓으면 해당 국가의 사람들은 빠르게 데이터에 접근이 가능하다.
글로벌서비스, 리전서비스
글로벌 서비스
전 세계의 모든 인프라가 데이터, 서비스를 공유한다.
- CloudFront(CDN)
- IAM
- Route53(DNS)
- WAF(방화벽)
지역 서비스
특정 리전을 기반으로 데이터 및 서비스를 제공한다.
- 대부분의 서비스
- S3
- S3의 경우, 전 세계에서 동일하게 사용할 수 있으나, 데이터 자체는 리전에 종속되어 리전서비스가된다.
ARN(Amazon Resource Name)
AWS의 모든 리소스의 고유 아이디를 의미한다.
형식:
- “arn:[partition]:[service]:[account_id]:[resource_type]/resource_name/(qualifier)”
- 예시:
- arn:aws:s3:::test_bucket/text.txt
- arn:aws:dynamodb:ap-northeast-2:123456789012:table/mytable
- arn:aws:dynamodb:ap-northeast-2:123456789012:table/*
- 맨 끝에 와일드카드(*)를 사용해 다수의 리소스를 지정가능하다.
가상화
단일 컴퓨터의 하드웨어 요소를 일반적으로 가상 머신이라고하는 다수의 가상 컴퓨터로 분할할 수 있도록 해주는 기술이다.
- 가상화 전에는 다수의 컴퓨터로 각각의 서버를 운영함으로서 유휴상태인 자원이 많았다면,
- 가상화 후에는 자원을 효율적으로 관리할 수 있다.
기본용어 짚고가기
고전 운영체제
- 운영체제 : 시스템의 하드웨어 자원, 소프트웨어 자원을 효율적으로 운영하고 관리하는 시스템이다.
- 특권명령(privileged instruction) : 시스템요소(하드웨어)와 직접 소통할 수 있는 명령이다. OS만 가능하다.
- OS는 일반적으로 특권명령을 인해 시스템 당 하나만 들어갈 수 있다.
- 일반적인 프로그램은 특권 명령이 필요하지 않으므로 많은 프로그램을 동시에 수행할 수 있다.
- 가상화 전까지는 1대의 컴퓨터는 1개의 OS만 사용할 수 있었다.
- 이를 Bare-Metal 상태라고 부른다.
가상화 1세대
- 완전 가상화, 모든 요소를 에뮬레이터로 구현한다.
- 모든 시스템 요소(CPU, HDD, MotherBoard)를 에뮬레이터로 구현해 OS와 연동한다.
- 그래서 느리다.
가상화 2세대(Paravirtualization, 반가상화)
- Guest OS를 하이퍼바이저와 통신하게된다.
- OS와 하드웨어 사이에 존재하며 하드웨어를 직접 통제한다.
- 그래서 1세대보다 속도가 향상되었다.
- 몇몇 요소의 경우 여전히 에뮬레이터가 필요해 느리다.
가상화 3세대(Hardware Virtual Machine)
- 하드웨어에서 직접 가상화를 지원한다.
- 하이퍼바이저를 통하지 않고 Guest-OS가 직접 하드웨어와 통신하기때문에 더욱 빠르다.
- 그래서 near-bare-metal이라고 칭하기도한다.
AWS EC2에서 지원하는 가상화이다.
이름에 HVM이 붙어있는데, VM의 운영체제가 Hardware와 직접 통신한다.
번외) 도커는 KVM + Paravirtualization
KVM : Kernel Based Virtual Machine
ParaVIrtualization: 2세대의 Hypervisor의 역할을 Docker Engine으로 대체.
OS위에 OS를 올리는 것이 아닌, 기존 OS의 Kernel을 사용해 Guest OS를 운영합니다.
별도의 OS가 아닌 프로세스처럼 작동 하며 Host OS의 CPU, Memory를 사용한다.
가상화와 클라우드
AWS 클라우드 환경에서 리소스를 작은 단위로 빠르게 구성할 수 있는 원동력은 가상화에 있다.
사용자마다 컴퓨터를 할당하는 것이 아닌, 이미 구축되어 가상화된 서버의 한 부분을 할당해주는 것이다.
댓글남기기