9 min to read
AWS #1 / TIL
Cloud Computing / EC2
Cloud Computing
클라우드 컴퓨팅에는 3대 모델이 있고, 이 모델들을 비즈니스 니즈, 통제성, 관리성 수준에 따라 그 중 한 가지 또는 세 가지 모두를 선택할 수 있다. 3개 모델로는 IaaS, PaaS, SaaS가 있다.
-
Infrastructure as a Service (IaaS)
IaaS에는 클라우드 IT를 위한 기본 빌딩 블록이 포함되어 있으며, 일반적으로 네트워킹 기능, 컴퓨터(가상 또는 전용 하드웨어) 및 데이터 스토리지 공간에 대한 액세스를 제공한다.IaaS는 IT 리소스에 대한 최고 수준의 유연성과 관리 제어 기능을 제공한다. 이는 많은 IT 부서 및 개발자에게 익숙한 기존 IT 리소스와 가장 유사하다.
-
Platform as a Service (PaaS)
PaaS를 사용하면 기본 인프라(하드웨어, 운영체제)를 관리할 필요가 없어 애플리케이션 개발과 관리에 집중할 수 있다.즉, 애플리케이션 실행과 관련된 리소스 구매, 용량 계획, 소프트웨어 유지 관리, 패치 작업 또는 다른 모든 획일적 작업에 대한 부담 없이 더욱 효율적으로 운영할 수 있다.
-
Software as a Service (SaaS)
SaaS는 서비스 공급자에 의해 실행되고 관리되는 완전한 제품을 제공하고, 대부분 웹 기반 이메일과 같은 최종 사용자 애플리케이션을 말한다.SaaS 오퍼링의 경우 서비스를 유지 관리하는 방법이나 기본 인프라를 관리하는 방법에 대해 생각할 필요가 없고, 특정 소프트웨어를 어떻게 사용할지만 생각하면 된다.
Cloud Computing 배포 모델
클라우드 기반 애플리케이션은 낮은 수준의 인프라상에 구축할 수 있고, 주요 인프라를 관리, 설계 및 확장할 필요 없는 높은 수준의 서비스를 사용할 수 있다.
-
All in Cloud, Public Cloud
클라우드 서비스 제공자를 통해 배포하는 방식 / 기존 데이터 센터의 확장 개념에서 퍼블릭 클라우드를 이용할 수 있고, 클라우드 전환 또한 쉽게 진행할 수 있다.Public cloud의 이용 방식
- 클라우드에서 새 애플리케이션을 개발 및 제공하는 방법
- 기존 애플리케이션을 클라우드로 이전하는 방법
- Hybrid Cloud
현대 대부분의 기업들은 이미 방대한 인프라와 데이터를 온프레미스 데이터 센터에 축적해두었기 때문에, 일시에 클라우드로 이전하기는 어렵다. 이 경우 하이브리드 클라우드를 사용한다.
-
Onpremise
물리적 서버라고도 하며, 회사 개인이 자체적으로 보유하며 운영하는 서버이다.온프레미스 서버를 운영하기 위해서는 유지보수, 관리 인력, 공간 등 추가적 비용들이 발생하며, 직접 설치하는 과정에서 공간과 시간의 비효율이 발생하기도 한다. 그래서 경우에 따라 온프레미스를 클라우드로 옮기기도 하는데, 이를 Migration / 마이그레이션이라고 부른다.
-
Private Cloud
온프레미스와 비슷하게 외부 클라우드 사업자의 서비스를 이용하지 않고 서비스를 위한 인프라를 직접 구축하는 방법온프레미스와의 차이점은 클라우드의 핵심 능력인, 신속함과 확장성을 가지고 있는지의 여부이다. Private Cloud는 서비스에 사용자가 몰리면, 해당 서비스를 위한 인프라를 유연하게 사용하여 안정화 시킬 수 있다는 장점이 있다.
Cloud Global Infra
AWS는 245개 국가에서 리전, 가용 영역, 상호 접속 위치 등으로 구성된 글로벌 클라우드 인프라를 제공하며, 지속적으로 확장하고 있다.
-
리전 (Region) AWS 클라우드 서비스용 데이터 센터 클러스터가 위치한 물리적 장소(지리적 위치). 리전에 속한 데이터는 AWS 고객의 명시적인 동의 없이 리전 외부로 이동할 수 없다.
-
가용 영역 (Availability Zone)
각 리전에는 AZ 라고 부르는 가용 영역이 존재하는데, 하나의 AZ는 2~6개의 데이터 센터로 구성되며, 전력 공급망과 네트워크망이 중첩적으로 구현된다.현재 설계 되어 있는 AZ들을 해당 지역의 자연 재해 등에 영향 받지 않도록 분산 설계 되어 있기 때문에, 하나의 AZ가 셧다운 되더라도 인접한 다른 AZ에 동일한 피해가 가지 않도록 한다.
동일 리전 내 AZ는 광케이블 네트워크(저비용성, 고응답성, 고보안성 조건 충족)로 연결하기 때문에 AZ간 응답성이 매우 높은 수준이며, 이러한 특징은 AZ가 작동이 멈춰도 자동으로 다른 AZ가 가동되는 아키텍쳐를 구성할 수 있게 한다.
AWS 보안 / 준수해야 할 원칙
AWS는 공유 보안 모델을 따르고 있는데, 이는 클라우드 자체의 보안은 AWS가 맡고 클라우드 내의 보안은 고객이 맡는다는 의미이다.
즉, AWS는 물리적 보안을(데이터 센터, 비디오 감시, 하드웨어, 서버, 스토리지, 가상화 자원, 네트워킹 등) 책임지고, 고객은 애플리케이션과 호스팅 데이터에 대한 보안을 책임진다.
Amazon EC2 (Elastic Compute Cloud)
아마존 웹 서비스에서 제공하는 클라우드 컴퓨팅 서비스이다.
AWS EC2 *인스턴스(컴퓨터 한 대)를 생성한다는 것은 AMI를 토대로 운영체제, CPU, RAM, 혹은 런타임 등이 구성된 컴퓨터를 빌리는 것이다.
EC2는 클라우드에서 거의 무한대에 가까운 확장 가능 컴퓨팅 용량을 제공한다. EC2 사용 시, 하드웨어에 투자할 필요 없이 빠르게 애플리케이션을 개발, 배포할 수 있고, 원하는 만큼 가상 서버를 구축하고 보안 네트워킹을 구성하며, 스토리지를 관리할 수 있다.
- EC2의 Elastic은 ‘탄력적인’이라는 의미이며, 사용한 만큼만 비용을 지불하고, 필요에 따라 성능, 용량을 자유롭게 조절할 수 있다는 의미를 가지고 있다.
- EC2는 웹 서버를 설치하고 웹 서버를 통해 사용자가 웹 브라우저로 요청하는 서비스를 제공한다.
인스턴스는 선택한 AMI를 토대로 구성되는데, AWS에는 상당히 많은 양의 AMI 세팅이 준비되어 있기 때문에 쉽게 인스턴스의 운영체제를 구성할 수 있다. 또한, 필요에 따라 직접 AMI를 구성할 수도 있다.
EC2 서비스의 장점
- 구성하는 데 필요한 시간이 짧다.
- AWS에서 빌릴 PC는 사용 용도에 맞게 운영체제, 런타임 등이 구성된 Setting을 선택할 수 있다.
- AMI(Amazon Machine Image)라는 소프트웨어 구성이 기재된 다양한 템플릿 제공
인스턴스 (Instance)
하나의 가상 컴퓨터이며, 인스턴스에서 실행하려는 애플리케이션 또는 소프트웨어에 필요한 메모리 양과 컴퓨팅 파워를 기준으로 인스턴스 유형을 선택한다.
인스턴스는 아마존이 전 세계에 만들어 놓은 데이터 센터에 만들어져 있기 때문에, 컴퓨터를 조작하기 위해 네트워크를 통해 컴퓨터를 제어해야 하지만, 일반 컴퓨터와 다른 점은 없다.
인스턴스를 시작할 때 지정하는 유형에 따라 사용되는 호스트 컴퓨터의 하드웨어가 결정된다. 각 인스턴스 유형은 서로 다른 컴퓨팅, 메모리, 스토리지 용량을 제공하며, 이 용량에 따라 한 인스턴스 패밀리로 분류된다.
-
인스턴스 라이프 사이클
EC2 인스턴스는 시작부터 종료까지 다양한 상태로 전환된다.
상태 | 설명 | 사용 요금 |
---|---|---|
pending | 인스턴스는 running 상태로 준비를 하고 있고, 인스턴스를 처음 시작하거나 pending 상태의 인스턴스를 다시 시작하면 stopped 상태가 된다. | 미청구 |
running | 인스턴스를 실행하고 사용할 준비가 되었다. | 청구 |
terminated | 인스턴스가 영구적으로 삭제되었으며, 시작할 수 없다. | 미청구 |
shutting-down | 인스턴스가 종료할 준비를 하고 있다. | 미청구 |
stopped | 인스턴스가 종료되고 사용이 불가하며, 언제든 인스턴스를 다시 시작할 수 있다. | 미청구 |
stopping | 인스턴스가 중지 또는 중지-최대 절전 모드로 전환할 준비를 하고 있다. | 중지 준비 중인 경우 미청구 / 최대 절전 모드로 전환 준비 중인 경우 청구 |
인스턴스 구입 옵션
- On-Demand
장기 약정 없이 인스턴스가running
상태인 시간(초 단위)에 대해서만 컴퓨팅 용량을 구입할 수 있다. 중단 할 수 없는 불규칙한 단기 워크로드가 있는 애플리케이션은 온디맨드 인스턴스를 사용하는 것이 좋다. - Reserved
온디맨드 인스턴스 요금과 비교하여 EC2 비용을 대폭 절감하는 효과를 제공하며, 사용량이 거의 확정된 프로덕션 워크로드용 인스턴스 실행에 적합하다. 모두 선불, 일부 선불, 선결제 없음의 결제 옵션도 제공하고, 리전 또는 특정 AZ의 인스턴스를 예약할 수도 있다. -
Spot
온디맨드 가격보다 저렴한 비용으로 제공되는 예비 EC2 용량을 사용하는 인스턴스로, 큰 할인율로 미사용 EC2 인스턴스를 요청할 수 있게 해주어 사용자는 EC2 비용을 대폭 낮출 수 있다.시간당 가격을 스팟 가격이라고 부르는데, 각 가용 영역 내 인스터스 유형별 스팟 가격은 Amazon EC2에서 설정하고, 스팟 인스턴스의 장기적 공급 및 수요에 따라 점진적으로 조정된다. 스팟 인스턴스는 용량이 가용 상태이고 요청에 대한 시간당 최고가가 스팟 가격보다 더 높을 때마다 실행된다.
인스턴스 루트 볼륨 (Instance Root Volume)
-
인스턴스 스토어 기반 인스턴스
처음 EC2 인스턴스가 론칭되면 모든 루트 디바이스가 S3로부터 론칭에 필요한 정보를 가져오는 인스턴스 루트 디바이스- 인스턴스 스토어 볼륨의 모든 데이터는 인스턴스가 실행되는 동안 유지되지만, 인스턴스가 종료되거나 장애가 발생하면 데이터가 삭제된다.
- 인스턴스 스토어가 지원하는 인스턴스는 종료되거나 장애가 발생하면 복원이 불가하다.
위와 같은 이유로 인스턴스 스토어가 지원하는 인스턴스를 사용하는 경우, 여러 가용 영역의 인스턴스 스토어로 데이터를 분산하는 것이 좋다. 또한, 인스턴스 스토어 볼륨의 중요한 데이터를 정기적으로 영구 스토리지로 백업해야 한다.
-
EBS 기반 인스턴스
AWS는 이미지를 EBS 볼륨 기반으로 제공하는데, 인스턴스를 론칭할 때마다 루트 디바이스가 EBS 볼륨에서 론칭되고, 사용하는 AMI가 참조하는 각 EBS 스냅샷에 대한 EBS 볼륨이 생성되는 인스턴스인스턴스 유형에 따라 다른 EBS 볼륨이나 인스턴스 스토어 볼륨을 사용할 수도 있다.
중지한 후 다시 시작해도 연결된 볼륨에 저장된 데이터에 아무런 영향이 없기 때문에, 중지 상태일 때 다양한 인스턴스 및 볼륨 관련 태스크를 수행할 수 있다.
보안
-
키 페어
EC2는 Public-Private Key 방식(데이터 암호화-데이터 복호화)을 사용하며, 사용자는 EC2 인스턴스 연결을 위해 Private 키를 사용해야 한다. 키 페어를 생성하는 방법에는 AWS 콘솔, CLI, API 호출 방식으로 생성할 수 있으며, AWS 고객은 자신의 키를 가져와 업로드 해놓고 사용할 수도 있다. (EC2는 SSH-2 RSA 키를 사용한다.) -
보안 그룹
하나 혹은 다수의 인스턴스에 대한 트래픽을 통제하는 가상의 방화벽
인스턴스에 하나 혹은 다수의 보안 그룹을 연결할 수 있고, 이를 통해 인스턴스로 유입되거나 해당 인스턴스에서 유출되는 트래픽에 대한 처리 규칙을 설정할 수 있다.보안 그룹의 규칙이 지닌 특징
- 기본적으로 보안 그룹은 모든 아웃바운드 트래픽을 허용한다. 보안 그룹 규칙은 언제나 허용 여부만 정할 수 있고 거부 여부는 정할 수 없다.
- 보안 그룹은 스테이트풀(Stateful) 속성을 지닌다. 인스턴스에서 요청을 보내면, 해당 요청에 대한 응답 트래픽은 보안 그룹의 인바운드 규칙과 무관하게 전달이 허용된다.
- 보안 그룹 규칙은 언제든 추가 또는 삭제 할 수 있다. 변경 사항은 짧은 시간 내에 해당 시큐리티 그룹에 연결된 모든 인스턴스에 적용된다.
- 하나의 인스턴스에 여러 개의 시큐리티 그룹을 연결할 경우 각 시큐리티 그룹의 규칙은 단일 규칙 세트로서 인스턴스에 적용되고 사용자는 이 규칙 세트를 통해 트래픽의 허용 여부를 결정할 수 있습니다.
네트워킹 - Instance IP 주소 지정
-
프라이빗 IPv4 : 인터넷을 통해 연결할 수 없는 IP 주소이며, 동일 VPC에서 인스턴스 간의 통신을 위해 사용한다. 인스턴스에 기본 프라이빗 IPv4 주소와 내부 DNS 호스트 이름이 할당된다.
-
퍼블릭 IPv4 : 인터넷을 통해 연결할 수 있는 IPv4 주소이며, 인스턴스와 인터넷의 상호 통신을 위해 사용될 수 있다. 인스턴스가 중지되거나 최대 절전 모드로 전환되거나 종료되면, 인스턴스의 퍼블릭 IP주소가 해제되고, 인스턴스가 재시작되면 새 퍼블릭 IP 주소가 할당된다. (영구 퍼블릭 IP주소 = 탄력적 IP 주소 사용)
-
Elastic IP : 동적 클라우드 컴퓨팅을 위해 고안된 정적 IPv4 주소이며, 탄력적 IP 주소는 AWS 계정에 할당되며 해제할 때까지 할당된 상태로 유지된다. 실행중인 인스턴스와 연결되지 않은 탄력적 IP 주소에 대해서는 소액의 시간당 요금이 부과된다.