학습 목표
- Cloud와 Deployment의 의미를 각각 알고, 서비스를 다른사람에게 배포할 수 있다.
- 클라우드 컴퓨팅이 무엇인지 설명할 수 있다.
- 애플리케이션 배포가 어떻게 변화되어 왔는지 이해할 수 있다.
- AWS의 각 서비스가 어떤 목적에 부합하는지 이해할 수 있다.
- S3의 목적과, 정적 웹 사이트 배포 방법을 이해할 수 있다.
- EC2의 주요 용어를 이해할 수 있다. (AMI, 인스턴스, 인스턴스 유형, 스토리지 타입, 퍼블릭/프라이빗 IP)
- EC2의 인스턴스 시작/중지/종료에 대해 이해할 수 있다.
- RDS와 EC2에서의 MySQL 사용이 어떻게 다른지 이해할 수 있다.
- CloudFront의 목적을 이해할 수 있다.
- Auto Scaling의 특징 및 역할을 알 수 있다.
- 로드 밸런서 중 ELB, 그 중에서 Application Load Balancer의 목적을 이해할 수 있다.
- AWS 인프라 중 VPC에 대해서 이해할 수 있다.
- Route 53의 목적을 이해하고, 도메인을 연결해 HTTPS로 배포할 수 있다.
- 빌드 및 배포시 필요한 환경 설정을 할 수 있다.
- 배포 시 발생하는 문제를 이해하고 고칠 수 있다.
EC2
- Elastic Compute Cloud
- 클라우드 컴퓨팅 서비스: 인터넷(클라우드)을 통해 서버, 스토리지, 데이터베이스 등의 컴퓨팅 서비스를 제공하는 서비스
- AWS에서 원격으로 제어할 수 있는 가상의 컴퓨터를 한 대 빌리는 것
- 비용, 성능, 용량 면에서 탄력적인 클라우드 컴퓨터를 제공함
- 하드웨어에 투자할 필요 없이 빠르게 애플리케이션을 개발하고 배포할 수 있음
- 원하는 만큼 가상 서버를 구축하고 보안 네트워킹을 구성하며, 스토리지를 관리할 수 있음
- 장점
- 구성하는데 필요한 시간이 짧다
- 다양한 운영체제에 대한 선택이 가능하다
- 컴퓨터를 한 대 빌리는 것이므로, 컴퓨터로 할 수 있는 모든 일을 할 수 있음
- 컴퓨터를 조작하기 위해 네트워크(인터넷)을 통해 컴퓨터를 제어해야 한다는 차이점이 있을 뿐 일반적인 컴퓨터와 다른 점은 없음
- 인스턴스는 1대의 컴퓨터를 의미하는 단위이며, AWS에서 컴퓨터를 빌리는 것을 인스턴스를 생성한다고 함
- EC2를 통해서 할 수 있는 가장 기본적인 일은 웹 서버를 설치하고, 웹 서버를 통해서 사용자가 웹 브라우저를 통해 요청하는 서비스를 제공하는 것
- AMI(Amazon Machine Image)
- 인스턴스를 생성하는데 필요한 소프트웨어 구성이 기재된 템플릿
- 단순히 운영체제만 깔려있는 템플릿을 선택할 수도 있고, 아예 특정 런타임이 설치되어 있는 템플릿이 제공되는 경우도 있음
- AWS EC2 인스턴스를 생성한다는 것은 AMI를 토대로 운영체제, CPU, RAM, 런타임 등이 구성된 컴퓨터를 빌리는 것
인스턴스
- 인스턴스
- 가상 컴퓨팅 환경으로, 하나의 가상 컴퓨터(서버)라고 생각할 수 있음
- 1대의 컴퓨터를 의미하는 단위
- AWS에서 컴퓨터를 빌리는 것을 인스턴스를 생성한다고 함
- 라이프 사이클
- pending
- 인스턴스는 running 상태로 될 준비를 하고 있음
- 인스턴스를 처음 시작하거나 pending 상태의 인스턴스를 다시 시작하면 stopped 상태가 됨
- 인스턴스 사용 요금: 미청구
- ruuning
- 인스턴스를 실행하고 사용할 준비가 되었음
- 인스턴스 사용 요금: 청구
- terminated
- 인스턴스가 영구적으로 삭제되었으며 시작할 수 없음
- 인스턴스 사용 요금: 미청구
- shutting-down
- 인스턴스가 종료할 준비를 하고 있음
- 인스턴스 사용 요금: 미청구
- stopped
- 인스턴스가 종료되고 사용이 불가함
- 언제든지 인스턴스를 다시 시작할 수 잇음
- 인스턴스 사용 요금: 미청구
- stopping
- 인스턴스가 중지 또는 중지-최대 절전 모드로 전환할 준비를 하고 있음
- 인스턴스 사용 요금: 중지 준비 중인 경우 미청구, 최대 절전 모드로 전환 준비 중인 경우 청구
- 구입 옵션
- On-Demand
- 장기 약정 없이 초 단위로 컴퓨팅 용량을 구입할 수 있음
- running 상태인 시간(초)에 대해서만 지불하면 됨
- 실행 중인 온디맨드 인스턴스에 대한 초당 요금은 고정 요금임
- 중단할 수 없는 불규칙한 단기 워크로드가 있는 애플리케이션의 경우 사용하는 것이 좋음
- Reserved
- 온디맨드 방식과 비교하여 EC2 비용을 대폭(최대 75%) 절감하는 효과를 제공
- 사용량이 거의 호가정된 프로덕션 워크로드용 인스턴스 실행에 적합함
- 기업 애플리케이션에 대한 트래픽이 안정적이거나 성능에 대한 요구 수준이 예측 가능한 경우 사용하는 것이 좋음
- 예약 기간은 1년 또는 3년 약정이 적용되므로, 계약 실행 전 워크로드를 파악하느 ㄴ것이 좋음
- 리전 또는 특정 AZ의 인스턴스를 예약할 수도 있음
- 모두 선불, 일부 선불, 선결제 없음의 결제 옵션도 제공
- Spot
- 온디맨드 가격보다 저렴한 비용으로 제공되는 예비 EC2 용량을 사용하는 인스턴스
- 큰 할인율로 미사용 EC2 인스턴스를 요청할 수 있게 해주므로 사용자는 Amazon EC2 비용을 대폭 낮출 수 있음
- 시간당 가격을 스팟 가격이라고 함
- 각 가용 영역 내 인스턴스 유형별 스팟 가격은 Amazon EC2에서 설정하며, 스팟 인스턴스의 장기적 공급 및 수요에 따라 점진적으로 조정됨
- 스팟 인스턴스는 용량이 가용 상태이고 요청에 대한 시간당 최고가가 스팟 가격보다 더 높을 때마다 실행됨
- 애플리케이션이 실행되는 시간을 유연하게 조정할 수 있고 애플리케이션을 중단할 수 있는 경우에 효율적인 방법
- 데이터 분석, 배치 작업, 백그라운드 프로세싱, 선택적 작업에 적합
- 사용 전략
- 애플리케이션에 대해 보장된 컴퓨팅 리소스를 최소 수준으로 유지하기 위한 한 가지 전략은 온디맨드 인스턴스의 코어 그룹을 시작하고 기회가 생기면 스팟 인스턴스로 이를 보완하는 것
- On-Demand
- 스토리지 - 인스턴스 루트 볼륨(Instance Root Volume)
- 인스턴스 루트 디바이스에는 인스턴스 부팅을 위한 이미지가 포함되어 있고, 이 루트 디바이스는 Elastic Block Store 혹은 인스턴스 스토어 볼륨 중 하나\
- 인스턴스 스토어 기반 인스턴스
- 처음 EC2 인스턴스가 론칭되면 모든 루트 디바이스는 S3로부터 론칭에 필요한 정보를 가져오고, 이와 같이 S3를 통해 백업되는 인스턴스 루트 디바이스를 인스턴스 스토어 기반이라고 부름
- 인스턴스는 하나 이상의 인스턴스 스토어 볼륨을 자동으로 사용할 수 있으며, 이러한 볼륨 중 하나가 루트 디바이스 볼륨 역할을 함
- 인스턴스가 시작되면 인스턴스를 부팅하는 데 사용된 이미지가 루트 볼륨으로 복사됨
- 인스턴스 유형에 따라 다른 인스턴스 스토어 볼륨을 사용할 수 있음
- 인스턴스 스토어 볼륨의 모든 데이터는 인스턴스가 실행되는 동안 유지되지만, 인스턴스가 종료되거나 장애가 발생하면 데이터가 삭제되며 복원이 불가능함
- Amazon EC2 인스턴스 스토어가 지원하는 인스턴스를 사용하려는 경우 여러 가용 영역의 인스턴스 스토어로 데이터를 분산하는 것이 좋고, 인스턴스 스토어 볼륨의 중요한 데이터를 정기적으로 영구 스토리지에 백업해야 함
- EBS 기반 인스턴스
- AWS가 EBS를 제공한 이후 이미지를 EBS 볼륨 기반으로 제공하는데 인스턴스를 론칭할 때마다 루트 디바이스가 EBS 볼륨에서 론칭되고 EBS 스냅샷을 통해 생성며, 이런 인스턴스를 EBS 기반 인스턴스라고 부름
- EBS를 루트 디바이스로 사용하는 인스턴스에는 자동으로 EBS 볼륨이 연결됨
- EBS 지원 인스턴스를 시작하면 사용하는 AMI가 참조하는 각 EBS 스냅샷에 대한 EBS 볼륨이 생성됨
- 인스턴스 유형에 따라 다른 EBS 볼륨이나 인스턴스 스토어 볼륨을 사용할 수 있음
- EBS 지원 인스턴스는 중지한 후 다시 시작해도 연결된 볼륨에 저장된 데이터에 아무런 영향이 없음
- EBS 지원 인스턴스가 중지 상태일 때 다양한 인스턴스 및 볼륨 관련 태스크를 수행할 수 있음
- 보안
- 키 페어
- EC2는 퍼블릭-브라이빗 키 방식을 사용하며, 이는 로그인 정보의 암호화-복호화 모델을 따른 것
- 퍼블릭 키는 데이터 암호화에, 프라이빗 키는 데이터 복호화에 사용됨
- 사용자는 EC2 인스턴스 연결을 위해 프라이빗 키를 사용해야 함
- 퍼블릭 키와 프라이빗 키 조합인 키 페어를 생성하는 방법에는 AWS 몬솔, CLI, API 호출 방식으로 생성할 수 있으며, AWS 고객은 자신의 키를 가져와서 시스템에 업로드 해놓고 사용할 수도 있음
- EC2는 SSH-2 RSA 키를 사용하며, 리전당 최대 5,000개의 키 페어를 사용할 수 있음
- 보안 그룹(Security Group)
- 하나 혹은 다수의 인스턴스에 대한 트래픽을 통제하는 가상의 방화벽
- 인스턴스를 론칭한 뒤 해당 인스턴스에 하나 혹은 다수의 보안 그룹을 녀결할 수 있고, 이를 통해 해당 인스턴스로 유입되거나 해당 인스턴스에서 유출되는 트래픽에 대한 처리 규칙을 설정할 수 있음
- 보안 그룹의 내용은 언제든 수정할 수 있으며, 새로운 규칙이 추가되면 해당 보안 그룹에 포함된 모든 인스턴스에 자동으로 적용됨
- 각 인스턴스에 특정 트래픽이 도달할지 여부는 해당 인스턴스에 연결된 모든 보안 그룹 규칙에 따라 정해짐
- 보안 그룹의 규칙이 지닌 특징
- 기본적으로 보안 그룹은 모든 아웃바운드 트래픽을 허용함
- 보안 그룹 규칙은 언제나 허용 여부만 정할 수 있고 거부 여부는 정할 수 없음
- 보안 그룹은 stateful 속성을 지니며, 인스턴스에서 요청을 보내면 해당 요청에 대한 응답 트래픽은 보안 그룹의 인바운드 규칙과 무관하게 전달이 허용됨
- 보안 그룹 규칙은 언제든 추가 또는 삭제할 수 있으며, 변경 사항은 짧은 시간 내에 해당 시큐리티 그룹에 연결된 모든 인스턴스에 적용됨
- 하나의 인스턴스에 여러 개의 시큐리티 그룹을 연결할 경우 각 시큐리티 그룹의 규칙은 단일 규칙 세트로서 인스턴스에 적용되고 사용자는 이 규칙 세트를 통해 트래픽의 허용 여부를 결정할 수 있음
- 키 페어
- 네트워킹 - Instance IP 주소 지정
- 프라이빗 IPv4
- 인터넷을 통해 연결할 수 없는 IP 주소
- 동일 VPC에서 인스턴스 간의 통신을 위해 사용
- 인스턴스를 시작할 때 인스턴스에 기본 프라이빗 IPv4 주소와 내부 DNS 호스트 이름이 할당됨
- 퍼블릭 IPv4
- 인터넷을 통해 연결할 수 있는 IP 주소
- 인스턴스와 인터넷의 상호 통신을 위해 사용될 수 있음
- 인스턴스가 중지되거나 최대 절전 모드로 전환되거나 종료되면 인스턴스의 퍼블릭 IP 주소는 해제됨
- 중지되거나 최대 절전 모드로 전환된 인스턴스가 시작되면 새 퍼블릭 IP 주소가 할당됨
- 따라서 필요에 따라 인스턴스 간에 연결할 수 있는 영구 퍼블릭 IP 주소가 필요한 경우, 탄력적 IP(Elastic IP) 주소를 대신하여 사용함
- 프라이빗 IPv4
- Elastic IP
- 클라우드 컴퓨팅을 위해 고안된 정적 IPv4
- AWS 계정에 할당되며 해제할 때까지 할당도니 상태로 유지됨
- 주소를 다른 게정의 다른 인스턴스에 신속하게 다시 매핑하여 인스턴스나 소프트웨어의 오류를 마스킹할 수 있음
- 도메인이 인스턴스를 가리키도록 도메인에 대한 DNS 레코드에 탄력적 IP 주소를 지정할 수 있음
- 연결 해제한 탄력적 IP 주소는 명시적으로 릴리스할 때까지 계정에 할당되어 있고, 실행 중인 인스턴스와 연결되지 않은 탄력적 IP 주소에 대해서는 소액의 시간당 요금이 부과됨
'Code States > TIL' 카테고리의 다른 글
[0417] (페어) AWS - 3 Tier 아키텍처 배포 (1) | 2023.04.17 |
---|---|
[0414] AWS - 스토리지 (0) | 2023.04.14 |
[0414] AWS - AWS 서비스 소개 (0) | 2023.04.14 |
[0414] AWS - 클라우드 컴퓨팅 (0) | 2023.04.14 |
[0413] (페어) Docker - 애플리케이션 컨테이너화: 풀스택 앱 컨테이너화와 Docker Compose를 이용한 실행 (0) | 2023.04.13 |