온프레미스로 구축이 가능하지만, 퍼블릭 클라우드 환경에서 컴퓨팅 환경을 제공받아 가상 서버를 구성하여 쉽게 워크로드(workload)를 수행
2) AWS 컴퓨팅 서비스
AWS 컴퓨팅 서비스
퍼블릭 클라우드에서 컴퓨팅 자원을 활용하여 다양한 워크로드를 수행할 수 있는 서비스
컴퓨팅 자원을 사용할 수 있는 비용을 지불하면 수분 내로 가상의 서버 자원을 생성하고 관리 가능
비즈니스 환경과 워크로드 형태에 따라 적절한 컴퓨팅 서비스를 선택
주요 서비스
EC2(Elastic Compute Cloud)
클라우드 환경에서 서버 자원을 인스턴스(instance)라는 가상 머신(Virtual Machine, VM)형태로 제공하는 가장 기본적인 AWS 컴퓨팅 서비스
ECS(Elastic Container Service)
EC2 기반 관리형 클러스터에서 실행되는 컨테이너 형태의 자원에 대해 배포, 스케줄링(scheduling), 스케일링(scaling) 등을 관리하는 서비스
Lambda
서버리스(serverless) 컴퓨팅 서비스로, 별도의 서버 설정이 없는 환경을 제공하여 코드만 실행해 주는 서비스
Lightsail
독립적인 환경을 제공하며, 최소한의 설정만으로도 손쉽게 사용 가능한 컴퓨팅 서비스
☆Elastic?
'탄력적인' 이라는 뜻이며, 컴퓨팅 자원에 대해 원하는 만큼 확장하거나 축소하여 유연하게 사용할 수 있는 개념
2. Amazon EC2 소개
AWS의 퍼블릭 클라우드 환경에서 확장 가능한 컴퓨팅 자원을 제공하여 가상의 서버를 운영할 수 있는 서비스
인스턴스라는 가상 컴퓨팅 환경을 기반으로 하며, AMI(Amazon Machine Image)를 이용하여 인스턴스에 필요한 소프트웨어 정보를 정의
▶Amazon EC2 주요 제공 기능
운영체제: 리눅스, 윈도우, macOS
CPU 옵션: Arm, x86
다양한 인스턴스 유형 제공: 범용 및 워크로드에 맞게 최적화 가능
구매 옵션: 온디맨드, 예약 인스턴스, 스팟 인스턴스 등
1) Amazon EC2 인스턴스
Amazon EC2 인스턴스는 가상의 컴퓨팅 환경으로 CPU, 메모리, 스토리지, 네트워킹 용량을 결정하는 다양한 인스턴스 방식을 제공
▶ 인스턴스가 '실행 중인 임의의 프로세스'로 해석됨
▶ 클라우드 컴퓨팅은 '가상의 환경에서 필요한 자원을 임대해서 사용한다'
즉, 클라우드 환경에서 컴퓨팅 자원을 필요한 만큼 사용하고, 쓰임을 다하면 자원을 반납하는 형태로 임의로 구성된 인스턴스
인스턴스 상태
최초 인스턴스를 시작하는 행위
대기 중(pending) → 실행 중(running)
실행 중인 인스턴스를 중지하는 행위
실행 중(running) → 중지 중(stopping) → 중지됨(stopped)
이 때 중지됨 상태는 인스턴스 종료가 아닌 일시적 중지 상태로 얼마든지 다시 시작 가능
중지된 인스턴스를 시작하는 경우
중지됨(stopped) → 대기 중(pending) → 실행 중(running)
중지된 인스턴스를 종료하는 행위
중지됨(stopped) → 종료됨(terminated)
종료됨 상태는 인스턴스 영구 삭제를 의미
실행 중인 인스턴스를 종료하는 행위
실행 중(running) → 종료 중(shutting-down) → 종료됨(terminated)
종료됨 상태는 인스턴스 영구 삭제를 의미
'중지됨' 상태는 인스턴스를 유지한 채 일시적으로 중지한 상태이기 때문에 언제든지 다시 구동 가능
'종료됨' 상태는 인스턴스를 영구 삭제하기 때문에 다시 사용하기 어려움
따라서 실수로 종료하여 인스턴스 정보가 삭제되지 않도록 주의
또한 종료되어도 관리 콘솔상에서 바로 삭제되지 않고 인스턴스의 일정 시간 정보를 출력함
2) AMI
AMI(Amazon Machine Image)
인스턴스를 시작할 때 필요한 정보를 제공하는 것
운영체제와 소프트웨어를 적절히 구성한 상태로 제공되는 템플릿(template)
인스턴스를 생성할 경우, AMI를 지정
하나의 AMI로 동일한 구성의 여러 인스턴스를 손쉽게 생성 가능
사용자 정의AMI나 AWS 자체적으로 지정된 AMI를 활용 가능
3) Amazon EC2 스토리지
인스턴스 환경을 설정했다면, 다음으로 어떤 저장소를 사용할지 결정해야함
스토리지(storage)
데이터를 저장하는 공간
서버 자원에서 발생되는 다양한 데이터를 보관하려면 필수적으로 존재해야하는 요소
유형
인스턴스 스토어(instance store)
인스턴스에 바로 붙어 있는 저장소로, EC2 인스턴스를 생성하면 기본적으로 존재하는 스토리지
직접 붙어 있는 구조 덕분에 매우 빠른 I/O(Input/Output) 보장
인스턴스를 중지하거나 종료하면 인스턴스 스토어에 저장된 데이터가 모두 손실
따라서 임시적인 데이터 저장소로 활용하는 것이 좋고, 장기적으로 보관해야하는 데이터는 저장하지 않는 것이 좋음
Amazon EBS
인스턴스 스토어와 다르게 네트워킹을 통해 연결되는 구조
영구 보존이 가능한 스토리지
외장 하드디스크와 비슷한 개념
인스턴스가 중지되거나 종료되어도 EBS에 보관하는 데이터는 그대로 유지됨
관리 콘솔을 통해 스냡샷을 생성하여 백업하거나 Amazon EBS 연결을 해제한 후 다른 인스턴스에 연결할 수 있다는 특징을 가짐인스턴스 스토어와 Amazon EBS
☞EC2 인스턴스와 함께 사용할 수 있는 스토리지 유형으로 파일 스토리지인 EFS(Elastic File Store)와 오브젝트 스토리지인 S3(Simple Storage Service)도 있음
4) Amazon EC2 네트워킹
EC2인스턴스를 사용하여 서비스를 제공하려면 통신이 가능한 환경으로 구성되어야함
종류
Amazon VPC(Virtual Private Cloud)
AWS 퍼블릭 클라우드 안에서 논리적으로 격리된 가상의 클라우드 네트워크
생성된 EC2 인스턴스는 별도로 구성된 하나의 Amazon VPC 안에 생성되어 네트워킹됨
네트워크 인터페이스(network interface)
네트워킹을 수행하려면 네트워크 인터페이스가 필요
ENI(Elastic Network Interface)라는 논리적 네트워크 인터페이스가 VPC 내에 생성되며, ENI를 EC2 인스턴스에 연결하여 네트워킹을 수행
ENI를 논리적으로 구성된 가상의 어댑터로 생각하면 편함
IP(Internet Protocol) 주소
네트워크 인터페이스에는 IP주소가 있으며, IP 주소로 대상을 구분하고 네트워킹을 수행
5) Amazon EC2 보안
주요 보안 기능
보안 그룹(security group)
EC2 인스턴스의 송수신 트래픽을 제어하는 가상의 방화벽 역할
EC2 인스턴스로 들어오는 트래픽을 허용 또는 거부하거나, 반대로 나가는 트래픽을 허용 또는 거부하는 규칙을 정의
트래픽을 정의하는 방법: 프로토콜, 포트 번호, IP 대역
키 페어(key pair)
EC2 인스턴스에 연결할 때 자격을 증명하는 보안 키
퍼블릭 키와 프라이빗 키로 구성
퍼블릭 키: EC2 인스턴스에 저장됨
프라이빗 키: 사용자 컴퓨터에 별도로 저장됨
EC2 인스턴스를 생성한 후 가상 서버에 접근하여 설정이 필요하면 사용자가 보관하는 프라이빗 키를 활용하여 자격을 증명하고 접근할 수 있음
6) Amazon EC2 모니터링
EC2 인스턴스 모니터링(monitoring)은 서비스 안정성과 가용성, 성능 유지에 필요한 중요한 영역
EC2 인스턴스의 자원은 유한하며, 자원 이상의 부하가 있을 때는 장애가 발생 가능
특히나 불특정 다수에게 제공되는 서비스는 언제 어느 시점에 트래픽이 몰려와 부하가 발생할 지 알 수 없음
모니터링 계획
모니터링 목표
모니터링 대상 자원
모니터링 빈도
모니터링 수행도구
모니터링 작업을 수행할 사람
문제가 발생할 때 경보를 알려야 할 대상
모니터링 도구
수동 모니터링 도구
관리자가 직접 관리 콘솔을 이용하여 모니터링을 수행하는 것
EC2 대시보드에서 간단한 통계 정보를 확인하거나 Amazon CloudWatch라는 모니터링 전용 서비스를 이용하여 상세한 통계 정보를 모니터링
자동 모니터링 도구
대상 자원의 지표에 대해 임계값을 정하고, 임계값을 초과하면 경보를 내리는 형태의 동적인 모니터링 방법