EC2 (Elastic Compute Cloud ) : Infrastructure as a Service
EC2는 AWS에서 제공하는 서비스형 인프라스트럭처이다. 즉, EC2는 하나의 서비스가 아니다.
가상머신을 EC2에서 임대하는 것을 EC2 인스턴스 라 한다.
데이터를 가상 드라이브 또는 EBS 볼륨에 저장할 수 있고, ELB로 로드는 분산 시킬 수 있다.
오토 스케일링 그룹(ASG)을 통해 서비스를 확장할 수 있다.
클라우드는 필요할 때마다 언제든지 컴퓨팅을 대여할 수 있고 EC2가 바로 그 예시이다.
EC2의 크기 조정 및 구성 옵션
EC2 인스턴스의 운영 체제에는 가장 인기있는 Linux, Window, Mac OS가 있다.
이 가상 머신에 사용할 컴퓨팅 성능과 코어의 양도 선택할 수 있다 (CPU)
랜덤 엑세스 메모리의 양도 선택할 수 있다 (RAM)
용량도 선택할 수 있다. 용량은 네트워크를 통해 연결할 스토리지가 필요한지 여부가 있다. (EBS & EFS) 또한, 하드웨어도 연결할수 있다 (EC2 Instance Store)
EC2 인스턴스에 연결할 네트워크 종류를 선택한다. 속도가 빠른 네트워크 카드를 원하는지, 어떤 종류의 공용 IP를 원하는지를 선택한다.
방화벽 규칙도 선택한다 (보안 그룹)
마지막, 인스턴스를 구성하기 위한 부트스트랩 스크립트가 있다. 이것은 처음에 설정하는 EC2 사용자 데이터가 있다.
EC2 사용자 데이터 스크립트를 사용하여 인스턴스를 부트스트래핑 할 수 있다는 것이다
부트 스트랩핑은 머신이 작동될 때 명령을 시작하는 것을 말한다. 스크립트는 처음 시작할 때 한 번만 실행되고 다시 실행되지 않는다. 따라서 EC2 사용자 데이터에는 매우 특정한 목적이 있는데 부팅 작업을 자동화하기 때문에 부트 스트래핑이라는 이름을 갖게 된다.
업데이트, 소프트웨어 설치 등 모든 것들을 할 수 있다. 다만 사용자 데이터 스크립트에 작업을 더 추가할 수록 부팅시 인스턴스가 할 일이 늘어난다. EC2 사용자 데이터 스크립트는 루트 계정에서 실행된다. 그래서 모든 명령어는 sudo로 해야한다.
인스턴스를 생성하면 공용IP와 사설IP가 있다 사설 IP는 AWS 네트워크에서 내부적으로 인스턴스에 접근하는 방법이다.
EC2 인스턴스 유형 기본사항
인스턴스 종류 AWS 웹사이트
https://aws.amazon.com/ec2/instance-types/
AWS 명명 규칙
예시) EC2의 범용 인스턴스인 m5.2xlarge 의 구조
m : 인스턴스 클래스
- 범용의 인스턴스이다.
5 : 인스턴스 세대
- AWS가 하드웨어를 계속해서 개선한다
- m5이후엔 m6 이다.
2xlarge : 인스턴스 클래스 내에서 크기
- small로 시작해 large, 2xlarge 4xlarge 등 크기가 존재
- 크기가 클 수록 더 많은 메모리와 CPU를 가지게 된다.
인스턴스 유형
범용 인스턴스
- 웹 서버나 코드 저장소와 같은 다양한 작업에 적합하다.
- 컴퓨팅, 메모리, 네트워킹 간의 균형도 잘맞는다.
컴퓨팅 최적화 인스턴스
- 컴퓨터 집약적인(한 곳에 집중적인) 작업에 최적화된 인스턴스
- 이름이 C로 시작한다. (C5, C6 등)
- 고성능 프로세서가 필요한 컴퓨팅 집약적 작업에 적합하다
- 일부 데이터의 일괄 처리에 사용하거나, 미디어 트랜스코딩 작업 시 혹은 고성능 웹 서버가 필요하거나, 고성능 컴퓨팅이라는 HPC 작업을 할 때 그리고 머신 러닝이나전용 게임 서버가 있을 때 사용한다.
메모리 최적화 인스턴스
- 메모리(RAM)에서 대규모 데이터셋을 처리하는 유형의 작업에 빠른 성능을 제공한다.
- R로 시작한다. 하지만 X1, Z1도 존재
- 대부분 인 메모리 데이터베이스가 되는 고성능의 관계형 또는 비관계형의 데이터베이스에 사용하고 일래스틱 캐시를 예로 들 수 있는 분산 웹스케일 캐시 저장소에도 사용한다 또, 비즈니스 인텔리전스 즉, BI에 최적화된 인 메모리 데이터베이스와 대규모 비정형 데이터의 실시간 처리를 실행하는 애플리케이션에도 사용한다
스토리지 최적화 인스턴스
- 로컬 스토리지에서 대규모의 데이터셋에 액세스할 때 적합한 인스턴스
- I, G 또는 H1로 시작한다.
- 고주파 온라인 트랜잭션 처리인 OLTP시스템에 사용되며, 관계형과 비관계형인 NoSQL데이터베이스에 사용한다.
보안 그룹 및 클래식 포트
보안 그룹은 AWS 클라우드에서 네트워크 보안을 실행하는데 핵심이 된다.
EC2 인스턴스에 들어오고 나가는 트래픽을 제어한다.
허용 규칙만 포함하는데, 출입이 허용된 것이 무엇인지 확인할 수 있고, IP 주소를 참조해 규칙을 만들 수 있다. 이것은 컴퓨터의 위치나 다른 보안 그룹을 참조하는 것이다.
보안그룹은 여러 인스턴스에 연결 가능하고, 1대1 관계는 없다. 인스턴스도 여러 보안 그룹을 연결가능
지역/ VPC결합 으로 통제되어 있다. 그래서 지역을 전환하면 새 보안 그룹을 생성하거나 VPC를 생성해야 한다.
보안그룹은 EC2 외부에 존재하는 방화벽이라 트래픽이 차단되면 EC2인스턴스를 확인할 수 없다.
SSH접근을 위해 하나의 별도 보안 그룹을 유지하는것이 좋다. SSH 엑세스는 가장 복잡하므로 별도 보안 그룹이 잘 완료되었는지 확인해야 하기 때문이다.
애플리케이션에 액세스할 수 없는 경우(시간 초과) 보안 그룹 문제이다.
기본적으로 모든 인바운드 트래픽은 차단되어 있고 모든 아웃바운드 트래픽은 허용됩니다
예시)
컴퓨터에서 공공 인터넷을 사용해 EC2인스턴스에 엑세스 할 경우 EC2 인스턴스 주변에 보안그룹을 생성해야 하는데 이것이 바로 방화벽을 생성하는 것이다.
그러면 자연스럽게 보안 그룹은 규칙을 가지게 되는데 그 규칙은 바로 인바운드 트래픽의 여부이다. 이것은 외부에서 EC2 인스턴스로 들어오는 것이 허용되면 아웃바운드 트래픽도 수행할 수 있다는 것이다. (들어왔다 나가는것이 허용)
보안 그룹 (EC2 인스턴스 방화벽)
포트로의 액세스를 통제하며 인증된 IP 주소의 범위를 확인해 Pv4인지 IPv6인지 확인합니다 또, 외부에서 인스턴스로 들어오는 인바운드 네트워크도 통제하며 인스턴스에서 외부로 나가는 아웃바운드 네트워크도 통제합니다
보안그룹 규칙은 이런형식으로 확인이 가능하고 유형(Type)을 확인하고, 프로토콜(Protocol)은 TCP로 확인되며 포트 범위(Port Range)는 트래픽이 인스턴스에서 통과하는 위치이다.
소스(Source)는 IP주소의 범위이며 0.0.0.0/0은 전체IP를 뜻한다. 122.149.196.85/32는 하나의 IP를 뜻한다.
EC2인스턴스 방화벽의 원리
위 그림에는 EC2 인스턴스와 인바운드 규칙, 아웃바운드 규칙이 있는 1개의 보안그룹이 있다.
인바운드 규칙은 나의 컴퓨터가 포트22로 허용되어있어 EC2인스턴스로 이동이 가능하지만, 다른 위치의 다른 컴퓨터가 포트22로 접근하려고하면 방화벽이 차단되어 접근이 불가하며 타임아웃이 발생한다.
아웃바운드 규칙은 기본값이고, 모든 트래픽을 허용한다.그래서 EC2 인스턴스가 웹사이트에 액세스하고 연결을 시도하면 보안 그룹에서 허용하는 것이다.
보안 그룹간 관계
그룹간의 보안그룹 규칙을 설정하여 허용을 하면 통신이 원할해진다.
보안그룹1이 보안그룹2를 허용했다고 가정하면 보안그룹2의 다른 EC2인스턴스가 1의 EC2인스턴스에 바로 연결되도록 허용된다. 이렇게 설정한다면 IP를 신경쓰지 않아도된다.
기본 포트번호
SSH (Secure Shell) : Port 22
Linux에서 EC2 인스턴스로 로그인하도록 한다.
FTP (File Transfer Protocol) : Port 21
파일 공유 시스템에 파일을 업로드 하는데 사용된다.
SFTP (Secure File Transfer Protocol) : Port 22
SFTP도 22번 포트를 사용하는 이유는 SSH를 사용해 파일을 업로드를 해 이름 그대로 보안 파일 전송 프로토콜에 쓰인다.
HTTP : Port 80
보안이 되지않는 사이트에 엑세스하기 위함
HTTPS : Port 443
현재 표준
RDP (Remote Desktop Protocol) : Port 3389
윈도우 인스턴스에 로그인할 때 사용된다.
따라서 22번 포트는 Linux 인스턴스용이고 3389번 포트는 윈도우 인스턴스용 RDP이다.
'AWS Cloud > solution architect' 카테고리의 다른 글
EBS (Elastic Block Store) 개요 및 유형/기능/암호화 (1) | 2023.10.27 |
---|---|
AWS 네트워크 및 EC2 배치그룹, ENI, 절전모드 (0) | 2023.10.27 |
EC2 기초 (2) (1) | 2023.10.19 |
AWS IAM 정책 및 CLI (2) | 2023.10.16 |