작은 메모장
20. AWS 클라우드 개요 본문
클라우드의 개념
클라우드 컴퓨팅이라고도 불리며, 인터넷 기반의 컴퓨팅을 의미한다.
직접 물리적 부품을 사서 모든 것을 구축하는 온프레미스와 반대되는 개념
인터넷 상의 가상화된 서버에 프로그램을 두고 필요할때마다 컴퓨터나 스마트폰으로 불러서 사용하는 서비스.
이름에서부터 느껴지듯이, 인터넷이 연결되는 어디서든 서버에 존재하는 컴퓨팅 자원을 사용할 수 있다.
클라우드의 장점
- 서버를 직접 구매할 때 발생하는 전력, 위치 선정, 추가 확장성 같은 골칫거리를 고민하지 않아도 된다.
- 이미 준비되어 있는 서버를 가져오는 것이므로, 사용 및 확장이 매우 편리하다
- 서비스 부하량에 따라 실시간으로 축소와 확장이 가능하며, 서비스를 사용한 만큼만 비용을 지불하기 때문에 경제성이 뛰어나다.
클라우드의 종류
클라우드는 그 용도에 따라서 3가지로 구분한다.
퍼블릭 클라우드
인터넷에 접속 가능한 모든 사용자들에게 개방된 클라우드 서비스
클라우드 서비스 제공자가 하드웨어, 소프트웨어를 관리
데이터나 기능, 서버등의 자원이 사용자 별로 권한 관리가 되거나 격리되어 사용자 간에 간섭이 발생하지 않음
프라이빗 클라우드
제한된 네트워크 상에서 특정 기업, 사용자만을 대상으로 하는 클라우드
서비스의 자원과 데이터는 기업 내부에 저장됨
기업이 자원의 제어권을 가지고 있어, 보안성이 매우 뛰어남
하이브리드 클라우드
퍼블릭 클라우드와 프라이빗 클라우드를 병행하여 사용하는 방식
최근에는 개념이 모호해져 클라우드(가상서버)와 온프레미스(물리서버)를 결합한 형태를 칭하기도 함
설정하는 것에 따라 달라지지만, 가상서버의 이점(유연성, 경제성, 신속성)과 물리서버의 이점(보안성, 안정성)을 함께 가질 수 있는 장점이 있음
클라우드 서비스 유형
IaaS (Infrasture as a Service)
인프라 수준의 클라우드 컴퓨팅을 제공하는 서비스
사용자가 서버 OS부터 미들웨어, 런타임, 데이터와 어플리케이션까지 직접 구성하고 설정, 관리
클라우드 서비스 제공업체는 데이터센터를 구축하여 IaaS에 필요한 자원을 제공 및 관리
AWS의 EC2가 여기에 속함
PaaS (Platforms as a Service)
플랫폼 수준의 클라우드 컴퓨팅을 제공하는 서비스
IaaS 형태의 가상화된 클라우드 위에 서비스를 개발할 수 있는 개발 환경(Platform)을 미리 구축하고, 이를 서비스로 제공하는 것
운영체제, 미들웨어, 런타임 등을 미리 구축한 상태로 제공, 때문에 관리 자유도는 떨어지지만 서비스에만 개발 및 비즈니스 운영을 진행하는 등 서비스 자체에 집중할 수 있음
세일즈포스닷컴의 Heroku, 레드헷의 OpenShift가 여기에 속함
SaaS (Software as a Service)
소프트웨어 수준의 클라우드 컴퓨팅을 제공하는 서비스
클라우드 인프라 위에 소프트웨어를 탑재해 제공하는 형태
컴퓨팅 자원, 소프트웨어 및 업데이트, 버그 개선 등 모든 서비스를 업체가 관리
커다란 비용을 들여 소프트웨어 라이센스를 구매할 필요 없이 월/연간 구독 형태의 사용료를 지불하고 소프트웨어를 이용
인프라 구룩, 개발 환경 세팅, 소프트웨어 개발에 소모되는 비용을 절약할 수 있음, 이에 자체 소프트웨어를 개발하는 초기 비용이 대폭 절감
AWS란?
아마존 닷컴이 제공하는 퍼블릭 클라우드 컴퓨팅 서비스
단순히 인프라 서비스만 제공하는 것이 아닌, 가상 컴퓨터, 스토리지 같은 다양한 서비스를 제공
리전과 가용영역
리전
리전이란, AWS의 서비스가 제공되는 리소스의 지리적인 위치
서비스가 제공되는 위치이므로, 서비스를 사용하는 지역과 리전의 위치가 멀면 멀수록 서비스 속도가 저하
때문에, 주요 서비스 고객들이 있는 가까운 리전을 사용하는 것이 가장 좋음
리전은 최소 2개 이상의 가용 영역(AZ)로 구성되어 있음
2021년 기준 25개의 리전이 존재, 계속 추가 예정
가용 영역 (Availability Zone)
한 리전안에 존재하는 여러 가용성 영역
클러스터 구조로 데이터 센터가 이루어져 있음
전용 선으로 연결되어 있어 하나인 것 처럼 빠르게 데이터를 주고 받을 수 있음
때문에 빠르게 데이터를 백업하고 데이터를 이전할 수 있어, 장애 대응에 효과적이고 빠르게 격리가 가능한 구조
하나의 지역에 특정 서비스들을 이용할 수 있는 AZ가 있다고 가정해보자
이 AZ가 갑작스러운 화재, 혹은 지진 같은 자연재해로 파괴가 되었다면, 아무도 서비스를 이용할 수 없을 것이다.
그러나 똑같은 서비스를 다른 지역의 AZ에서 서비스하고 있다면 일단 그 AZ를 통해서 서비스는 가능할 것이다.
이러한 위험 분산 측면에서 AZ가 최소한 2개 이상으로 구성되어 있는 것이다.
EC2
Elastic Compute Cloud의 줄임말로, AWS에서 제공하는 클라우드 컴퓨팅 서비스의 한 종류
독립된 컴퓨터를 임대해주는 서비스로, AWS의 주력 상품이다.
AWS에서 컴퓨터를 대여해주는 서비스라고 생각하면 된다.
EC2는 초기 구입비, 세팅 비용이 전혀 없고, 사용한 만큼만 비용을 지불하면 되는 형식으로 진행
복잡한 네트워크 설정 없이 인터넷을 통해 언제든이 접속할 수 있으며, 이미지(AMI) 기능 또한 사용할 수 있음
이미지를 이용하여 새 컴퓨터를 만들면 이미지와 똑같은 상태의 컴퓨터가 빠르게 생성
이걸 이용해서 오래 걸리고 반복적인 설치 작업 없이, 더 빠르게 개발하고 배포할 수 있음
또한, 원하는 만큼 가상 서버를 구축하고, 보안 및 네트워크 구성과 스토리지 관리가 가능
요구 사항 변동이나 트래픽 증감 등 변동 사항에 따라 빠르게 규모 확장/축소 대응이 가능함
EC2는 인스턴스, EBS, ENI로 구성되어 있으며,
이는 컴퓨터의 컴퓨팅(CPU/RAM), 저장공간(SSD, HDD), 네트워크 카드(LAN, Wifi)에 해당한다.
인스턴스
클라우드 컴퓨팅에서 인스턴스는 타사 클라우드 서비스에서 제공하는 서버 리소스를 의미한다.
단순하게 AWS에서 사용하는 가상 컴퓨터라고 생각하면 된다.
사용자마자 원하는 컴퓨팅 능력이 다를 것이다.
연구용 컴퓨터는 빠른 연산처리를 위해 고성능의 CPU를 원할 수도 있다.
서버용 컴퓨터는 높은 가용성을 위해 고성능/고용량의 RAM이 필요할 수도 있다.
데이터 저장소는 많은 저장공간을 위해 고용량 HDD를 필요로 한다.
또, 고사양 게임용 컴퓨터는 높은 그래픽 성능을 위해 고성능 GPU를 원할 것이다.
이처럼 사용자마다 여러 사용 목적이 다르고, 이에 따른 요구 사양 또한 다 다르다.
이에 EC2는 각 사용 사례와 요구 사양에 따라 최적화된 다양한 인스턴스 유형을 제공한다.
즉, 사용할 애플리케이션 종류와 목적에 따라 적합한 리소스 조합을 선택할 수 있는 유연성을 제공하는 서비스가 인스턴스
EC2 인스턴스 유형
컴퓨터 견적을 짜는 것과 동일하다고 생각하면 편하다.
EC2 인스턴스란,
한정된 예산으로
EC2 인스턴스의 유형을 고르고,
사이즈를 골라,
각 인스턴스별로 사용 목적에 따라 최적화를 시키는 것.
AWS는 각 인스턴스의 사용 목적에 따라 타입별로 인스턴스에 이름을 부여하여 구분하고 있다.
정말 다양한 타입이 존재하며, t와 m은 범용타입이기 때문에 일반 사용자 및 초보자들이 가장 많이 사용한다.
EC2 인스턴스 사이즈
인스턴스의 크기는 곧 인스턴스의 CPU 갯수, 메모리 크기, 성능 등을 의미한다.
쉽게말해 인스턴스의 컴퓨팅 성능을 의미한다.
이는 인스턴스 사이즈가 늘어나면 늘어날 수록 더 많은 가용 메모리, 더 높은 연산 처리 능력, 더 넓은 네트워크 대역폭을 가질 수 있음을 의미한다.
아마존에서 제공하는 인스턴스 사이즈 표다.
같은 t2 인스턴스 타입이어도
nano, micro, small .. xlarge로 크기가 나뉘어 있으며, 크기가 커지면 커질 수록 성능 또한 빨라지는 것을 확인할 수 있다.
EBS
Elastic Block Storage의 줄임말로, AWS에서 데이터를 저장하는 역할을 한다.
즉, 클라우드에서 사용하는 가상 저장공간인 것
EBS는 AWS 클라우드의 EC2 인스턴스에 사용할 영구 블록 스토리지 볼륨을 제공한다.
블록 스토리지 볼륨은 일반 컴퓨터에서 파티션과 동일한 개념이라고 생각하면 편하다.
EBS 볼륨 유형 타입
현재 존재하는 컴퓨터 저장 솔루션이 여러가지가 있듯이,
EBS 또한 용량과 성능에 따라 옵션을 나눠놓았다.
총 5가지 타입이 존재하며, 일반적으로 범용 타입인 GP3을 사용하는 추세다.
만약 돈을 극도로 아끼고 싶다면, 마그네틱을 사용하면 된다.
AMI
Amazon Machine Image의 줄임말로, EC2 인스턴스를 실행하기 위한 정보를 모은 단위다.
컴퓨터가 단순히 하드웨어만 있다고 동작하는 것은 아니다. 동작시킬 소프트웨어, 즉 OS와 어플리케이션이 존재해야 한다.
마찬가지로 EC2를 실행하기 위해서 EC2에서 동작시킬 소프트웨어가 필요하다. 하지만, 운영체제도 필요한 최저 사양이라는 것이 존재한다.
최소한 이정도 CPU 프로세서 타입과 저장공간 용량, 운영체제 비트 수(x32, x64), 운영체제 이름 등의 정보를 전부 모아놓은 것이 AMI라고 생각하면 된다.
즉, 운영체제에 맞는 견적서라고 생각하면 된다.
이 견적서를 들고 EC2를 생성할 때 제출하면, 여기에 맞게 환경 세팅이 된 리눅스가 EC2에 적용되어 리눅스 컴퓨터가 하나 나오는 원리다.
또한 스냅샷을 기반으로 AMI 구성이 가능하기 때문에, 이를 이용하여 현재 상태의 EC2 세팅(템플릿)을 복제해 다른 계정/리전에게 배포 또한 가능하다.
실습
AWS에서 제공하는 EC2 화면
EC2 대시보드 화면
인스턴스 생성 페이지
AMI 선택 페이지
인스턴스 유형 선택 페이지
EC2 네트워크 설정 페이지
인스턴스 동작 화면
인스턴스 중지 및 종료
'실더스 루키즈 교육' 카테고리의 다른 글
22. Amazon S3 (0) | 2023.12.28 |
---|---|
21. Amazon VPC (0) | 2023.12.28 |
19. 파일 업로드 취약점 (0) | 2023.12.21 |
18. SQL Injection (0) | 2023.12.20 |
17. XSS 취약점 (0) | 2023.12.19 |