본 블로그 페이지는 Udemy의 [한글자막]AWS Certified Solutions Architect Associate 시험합격! 강의를 수강하고 정리한 것입니다.
#1. EC2
- EC2는 Elastic Compute Cloud의 약자로 AWS에서 제공하는 IaaS이다. 하나의 서비스라기 보다는 가상머신(EC2), 가상 저장 드라이브(EBS), 부하 분산(ELB), 오토 스케일링(ASG)등을 포함하고 있다고 볼 수도 있다.
- Linux, Mac OS, Window 등의 운영체제, CPU, RAM, 저장공간, 네트워크 카드, 방화벽 등을 선택해서 구성할 수 있다.
- EC2 User data 스크립트를 이용해서 인스턴스가 최초 구동될 때 소프트웨어 설치 및 업데이트나 다운로드 등을 자동화할 수 있다. root 유저로 실행되므로 모든 명령문을 sudo로 해야한다.
#2. EC2 인스턴스 유형
- AWS는 이름 작명법이 있는데, 예를 들어 m5.2xlarge라고 한다면, m은 인스턴스 클래스를 보여주고 범용 인스턴스를 가리킨다. 5는 인스턴스의 세대를 말한다. 2xlarge는 인스턴스의 크기이며 더 많은 메모리나 CPU를 의미한다.
- 범용 인스턴스는 웹 서버 등의 다양한 작업에 적합하며, 컴퓨팅, 메모리, 네트워크 등 간의 밸런스가 좋다.
- 컴퓨팅 최적화 인스턴스는 작명법에 따라 c로 시작하며, 컴퓨팅 집약적인 작업에 좋다. 대용량 데이터 처리, 미디어 작업, 고성능 웹 서버, 머신러닝, 게임 서버 등에 적합하다.
- 메모리 최적화 인스턴스는 r로 시작하는 이름을 가지며, 대규모 데이터셋을 빠르게 처리할 때 유리하다. 큰 규모의 캐싱을 하거나 관계형/비관계형 데이터베이스 작업 또는 비구조화 데이터를 실시간으로 처리하는 데에 좋은 성능을 보인다.
- 스토리지 최적화 인스턴스는 i, g, 또는 h1로 시작하며, 로컬 스토리지의 많은 데이터에 접근할 때 좋다. 다양한 형태의 데이터베이스, 데이터 웨어하우스, 분산형 파일 시스템 등에 주로 사용된다.
#3. 보안 그룹 및 자주 사용되는 포트 번호
- 보안 그룹은 EC2 인스턴스를 출입하는 트래픽을 관리하는 방화벽이며, AWS에서 네트워크 보안의 핵심이라고 할 수 있다.
- 보안 그룹은 허용 규칙들만으로 구성되며 IP(IPv4, IPv6) 주소와 포트 또는 다른 보안 그룹을 참조하는 것으로 이루어져 있다.
- EC2 인스턴스와 보안 그룹은 n:m 관계를 가지고 있어 서로 여러 개를 연결할 수 있다.
- 보안 그룹은 지역과 VPC의 결합으로 묶여있기 때문에 리전을 변경하면 새로 생성해야 한다.
- 보안 그룹은 EC2 외부에 존재하는 것으로, 방화벽에 막히면 EC2에 접근 자체가 안된다.
- 디폴트 값으로 모든 인바운드 트래픽은 막혀있으며, 모든 아웃바운드 트래픽은 열려있다.
- 특정 보안 그룹을 대상으로 인바운드를 허용할 수도 있어서 해당 보안 그룹을 가진 EC2 인스턴스들은 IP 주소와 무관하게 트래픽을 주고 받을 수 있다.
- SSH는 22번, FTP는 21번, SFTP는 22번, HTTP는 80번, HTTPS는 443번, RDP는 3389번 포트를 사용한다. FTP는 파일 전송할 때, SFTP는 SSH를 이용하여 파일을 전송할 때, RDP는 Remote Desktop Protocol로 윈도우 인스턴스에 접근할 때 사용된다.
#4. 사설, 공용, 탄력적 IP
- 공용 IP는 기기가 인터넷 상에서 식별될 수 있음을 의미한다. 전체 웹에서 유일한 것으로 구글에 검색하면 지리적 위치를 찾을 수 있다. SSH를 이용해 자신의 EC2 인스턴스에 접근할 때 등 많은 경우에 사용된다.
- 사설 IP는 기기가 오직 사설 네트워크 안에서만 식별될 수 있으며, 사설 네트워크 내에서만 유일하면 되고, 지정된 범위의 IP만 사설 IP로 사용될 수 있다. NAT 장치와 프록시 역할을 하는 internet gateway를 통해 인터넷에 연결된다. VPN 등을 사용하는 방식으로 외부에서 접근할 수도 있다.
- 탄력적 IP는 EC2를 중지하고 재시작할 때 공용 IP 값을 바꿀 수 있다. 탄력적 IP는 공용 IPv4 IP이며 삭제하지 않는 한 계속 가지고 있게 된다.
#5. 배치 그룹
- EC2 인스턴스가 AWS 인프라에 배치되는 방식을 정의하는 방법으로, 세 가지 전략을 사용할 수 있다.
- Cluster : 동일한 랙, 동일한 하드웨어에 위치한 단일 가용 영역 내에서 지연 시간이 짧은 하드웨어 설정으로 인스턴스들을 그룹화할 수 있다. 빠른 네트워크 속도를 가지지만 하나의 랙이 실패하면 모든 EC2 인스턴스가 실패하므로 높은 성능과 높은 위험을 가진다고 할 수 있다.
- Spread : 인스턴스들을 서로 다른 하드웨어에 분산하는 배치 그룹으로 실패 위험을 최소화하는 전략이다. 한 그룹에 가용 영역 내 최대 7개 EC2 인스턴스만 가질 수 있다. 크리티컬한 애플리케이션에 사용된다.
- Partition : 여러 가용 영역의 서로 다른 파티션(다양한 하드웨어 랙 세트)들에 분산돼 있어, 파티션은 다른 오류 파티션과 격리되어 있다. 가용 영역 내에서는 7개로 제한되지만 동일 리전의 여러 가용 영역에 걸쳐있을 수 있어 수백 개 EC2 인스턴스를 설정할 수 있다. Cassandra, Kafka 등을 사용하여 파티션을 인식하는 빅 데이터 어플리케이션에서 주로 사용된다.