AWS EC2란?
Amazon Web Service의 Elastic COompute Cloud(EC2) 서비스이다.
EC2는 가상 컴퓨팅 환경을 제공하여 사용자가 필요에 따라 가상 서버(인스턴스) 프로비저닝하고 실행할 수 있도록 도와준다. EC2를 사용하면 사용자는 필요한 용량과 성능을 가진 가상 서버를 선택하고, 원하는 운영 체제를 설치하고, 필요에 따라 스토리지를 연결 할 수 있다.
EC2 인스턴스는 유연하게 확장할 수 있어서 프로젝트의 요구 사항에 따라 가용성과 확장성을 조정할 수 있다. 또한, EC2 인스턴스는 필요에 따라 시작, 중지, 종료 등의 조작을 수행할 수 있으며, 사용자는 트래픽 패턴이나 작업 부하에 따라 인스턴스 수를 자동으로 조절할 수 있는 오토스케일링 기능도 사용할 수 있다.
- 인스턴스: 가상 컴퓨팅 환경
- Amazon 머신 이미지 (AMI): 서버에 필요한 운영체제와 여러 소프트웨어들이 적절히 구성된 상태로 제공되는 템플릿으로 인스턴스를 쉽게 만들 수 있다.
- 인스턴스 유형: 인스턴스를 위한 CPU, 메모리, 스토리지, 네트워킹 용량의 여러 가지 구성 제공
- 키 페어를 사용하여 인스턴스 로그인 정보 보호(AWS는 퍼블릭 키를 저장하고 사용자는 개인 키를 안전한 장소에 보관하는 방식)
- 인스턴스 스토어 볼륨: 임시 데이터를 저장하는 스토리지 볼륨으로 인스턴스를 중단, 최대 절전 모드로 전환 또는 종료 시 삭제됨
- Amazon Elastic Block Store(Amazon EBS), 즉 Amazon EBS 볼륨을 사용해 영구 스토리지 볼륨에 데이터 저장
- 보안 그룹을 사용해 인스턴스를 연결 할 수 있는 프로토콜, 포트, 소스 IP 범위를 지정하는 방화벽 기능
- 탄력적 IP 주소(EIP): 동적 클라우드 컴퓨팅을 위한 고정 IPv4 주소
- 태그: 사용자가 생성하여 Amazon EC2 리소스에 할당할 수 있는 메타데이터
- Virtual Private Clouds (VPC): AWS 클라우드에서는 논리적으로 격리되어 있지만 원할 때 마다 고객의 네트워크와 간편히 연결할 수 있는 가상 네트워크
Amazon Web Service(AWS)
- 전 세계적으로 분포한 데이터 센터에서 200개가 넘는 완벽한 기능의 서비스를 제공하는, 세계적으로 가장 포괄적이며, 널리 채택되고 있는 클라우드 플랫폼
- 빠르게 성장하는 스타트업, 가장 큰 규모의 엔터프라이즈, 주요 정부 기관을 포함하여 수백만명의 고객이 AWS를 사용하여 비용을 절감하고, 민첩성을 향상시키고 더 빠르게 혁신함
클라우드 컴퓨팅
- IT 리소스를 인터넷을 통해 온디맨드로 제공하고 사용한 만큼만 비용을 지불하는 방식
- 물리적 데이터 센터와 서버를 구입, 소유 및 유지 관리하는 대신, Amazon Web Service(AWS)와 같은 클라우드 공급자로부터 필요에 따라 컴퓨팅 파워, 스토리지, 데이터 베이스와 같은 기술 서비스에 엑세스
클라우드 컴퓨팅 이점
- 민첩성
- 탄력성
- 비용절감
- on demand
- 관리 용이성
클라우드 유형
AWS 기본용어
- 가상화: 물리적 컴퓨터 하드웨어를 보다 효율적으로 활용할 수 있도록 해주는 프로세스이며, 이는 클라우드 컴퓨팅의 기반을 제공하는 기술
- 가상머신: 가상머신(Virtual Machine)은 소프트웨어 형식으로 물리적 컴퓨팅을 시뮬레이션하는 가상 환경이다. 이들은 일반적으로 VM의 구성, 가상 하드 드라이브의 스토리지, 그리고 특정 시점에 해당 상태를 유지하는 VM의 일부 스냅샷을 포함한 다수의 파일들로 구성되어 있다.
- 스냅샷: 스냅샷은 마치 사진 찍듯이 특정 시점에 스토리지의 파일 시스템을 포착해 보관하는 기술이다. 스냅샷은 원본 데이터를 그대로 복사해 다른 곳에 저장하는 백업과 달리 초기 생성 시 혹은 데이터의 변경이 있기 전까지는 스토리지의 공간을 차지하지 않는다. 메타데이터(데이터에 대한 부가적인 정보)의 복사본에 해당하기 때문에 생성하는 데 오랜 시간이 걸리지 않고, 장애 상황이 발생해도 빠르게 데이터를 복원
- 데이터 센터: 수많은 서버들을 한데 모아 네트워크로 연결해 놓은 시설
- region(지역):
- region은 data center가 위치한 지역
- IT 리소스를 생성할 region은 선택 가능
- 대상 고객의 지역과 자원 생성할 region이 최대한 가까워야 함
- 국가마다 자원 사용 비용이 다름
- Availability Zone(가용영역):
- 하나의 Region은 두 개 이상의 Availability Zone으로 구성됨
- 줄여서 AZ로 표시
탄력적 IP
고정된 공용 IP주소를 제공하여 인스턴스에 지속적으로 연결할 수 있도록 한다. 인스턴스에 탄력적 IP를 할당하면 인스턴스가 중지되거나 재시작되더라도 IP주소는 변하지 않는다. 따라서 탄력적 IP를 사용하면 인스턴스에 대한 안정적인 연결을 유지 할 수 있다. 또한, 탄력적 IP를 다른 인스턴스로 연결하면 IP주소를 변경할 필요 없이 연결성을 유지할 수 있어 인스턴스 간의 IP주소 전환을 용이하게 한다.
Elastic Beanstalk
AWS의 한 서비스로, 웹 애플리케이션 및 서비스를 손쉽게 배포하고 관리할 수 있는 플랫폼이다. 개발자가 애플리케이션 코드에 집중할 수 있도록 배포, 운영, 확장 등의 작업을 자동화 해준다. 개발자는 애플리케이션을 프로그래밍 언어나 프레임워크에 맞게 개발하고, Elastic Beanstalk은 배포 및 관리 작업을 처리한다.
- 애플리케이션의 배포 및 확장을 자동화한다.
- 다양한 프로그래밍 언어와 프레임워크를 지원한다. (ex. java, PHP, Python 등등)
- 간편한 애플리케이션 환경 구성을 제공한다.
- 애플리케이션의 상태 및 성능에 대한 모니터링과 로그 분석을 지원한다.
- AWS의 다른 서비스들과 연동이 용이하다.