
서버 구축 필요 -> [ AWS 회원 가입 -> EC2 인스턴스 생성 -> 웹 애플리케이션 배포 ] -> 서버 운영


EC2 인스턴스를 구성할때 어떤 서버로 쓸 것인지 용도에 따라 서버에 설치할 운영체제도 달라진다.
대표적인 서버의 용도를 알아보자.
| 종류 | 설명 |
|---|---|
| 웹 서버 | 클라이언트로부터 HTTP 요청을 받아 정적인 웹 페이지를 제공하며 정적인 웹 페이지를 제공하는 서버 ( HTML, CSS, Java Script, 이미지 ) |
| API 서버 | 클라이언트로부터 API 요청을 받아 정적인 웹 페이지를 제공하며 JSON 또는 XML 형식을 이용 |
| 프록시 서버 | 클라이언트와 서버 사이에서 중계 역할을 수행하며 통신 중계, 보안, 로드 밸런싱, 캐싱등 이용 |
| FTP 서버 | 파일 업로드 및 다운로드 서비스 제공 |
각 기능에 대해서 알아보자.
| 종류 | 설명 |
|---|---|
| 인스턴스 | AWS 클라우드에 생성한 가상 서버 ‘실체’라는 의미이며 실제 가동되고 있는 가상화 컴퓨터 |
| AMI (Amazon Machine Images) |
소프트웨어 구성을 기록한 템플릿 인스턴스(가상 서버)를 생성하기 위한 금형과 같은 것으로 금형을 한 번 만들어 두면 얼마든지 같은 설정의 서버를 생성 가능 OS만 설치된 간단한 유형부터 소프트웨어도 설정된 유형까지 다양한 AMI가 존재 |
| 키 페어 | 인스턴스에 SSH 접속할 때 인증을 위해 사용하는 키 (SSH는 서버에 설치된 소프트웨어를 조작할 때 사용하는 방식) |
| EBS (Elastic Block Store) |
AWS 클라우드에서 사용할 수 있는 스토리지 영구적인 블록 스토리지 볼륨 (EBS : 데이터를 블록 단위로 저장 <-> Amazon S3 : 오브젝트 스토리지 방식) (HHD : 저비용 <-> SSD : 고성능) |
| 보안 그룹 | 가상 방화벽으로, 1개 이상의 인스턴스 트래픽을 제한 |
| Elastic IP | 정적(고정) IPv4 주소 인스턴스가 아닌 AWS 계정 단위로 부여 |
인스턴스의 설정 항목과 표기 방법에 대해서 알아보자.
| 종류 | 설명 |
|---|---|
| AMI | EC2 인스턴스의 가상 이미지이며 소프트웨어 구성을 작성한 템플릿 |
| 인스턴스 유형 | EC2 인스턴스의 장비 사양이며 CPU, 메모리, 장비 유형을 결정 |
| 리전(Region) | 서버를 설치할 지역 |
| 네트워크 | EC2 인스턴스를 배치할 네트워크 |
| 서브넷 | 설치할 네트워크의 범위 |
| IAM 역할 | 인스턴스의 접속 권한 정책 설정 |
| 스토리지의 용량과 종류 | 서버 장비의 스토리지, S3와 같은 외부 스토리지 선택 못함 |
| 태그(EC2 인스턴스의 레이블) | 인스턴스에 임의의 태그 부여 가능 |
| 보안 그룹 | 프로토콜로 포트 혹은 IP 주소, 아니면 양쪽 모두 필터링 설정 |
인스턴스 표기는 유형과 크기를 조합하여 사용한다.
인스턴스 유형.인스턴스 크기
위의 표기 방식으로 t2.micro 와 같이 사용한다.
t2의 크기로는 nano, micro, small, medium, large, xlarge, 2xlarge, 4xlarge 8종류가 있고 인스턴스의 유형으로는 아래와 같다.
| 용도 | 인스턴스 유형 |
|---|---|
| 범용 | T2, T3. M5, M4 등 |
| 컴퓨팅 최적화 | C5, C4 등 |
| 메모리 최적화 | Xle, X1, R4 등 |
| 가속화된 컴퓨팅 최적화 | P3, P2, F3, F1 등 |
| 스토리지 최적화 | H1, I3, D2 등 |
ELB란 AWS가 제공하는 로드 벨런서
로드 밸런스란 서버에 집중되는 접속(트래픽)을 서버 여러 대나 네트워크에 분배하는 방식
| 종류 | 설명 |
|---|---|
| ALB (Application Load Balancer) |
- HTTP 및 HTTPS에 가장 적합한 로드 벨런서애플리케이션 계층(구체적인 통신을 제공하는 계층)에서 동작
- 분배대상으로 정적 IP 주소를 설정하고 그 IP를 가진 호스트(기기)로 전송 불가능 - 지원 프로토콜 : HTTP, HTTPS |
| NLB (Network Load Balancer) |
- 전송 계층(전송된 데이터의 제어를 담당하는 계층)에서 동작
- 분배대상으로 정적 IP 주소를 설정할 수 있고 서버에 접속한 클라이언트의 IP 주소를 그대로 서버에 전송하도록 설정 가능 - 지원 프로토콜 : TCP, TLS |
| CLB (Classic Load Balancer) |
- 오래된 유형의 로드 벨런서
- 지원하는 프로토콜이 많지만 앞으로 구축할 시스템에는 사용하지 않는 것 권장 - 지원 프로토콜 : TCP, SSL/TLS, HTTP, HTTPS |
디스크(Disk)
운영체제, 응용 프로그램 및 디지털 정보를 저장하고 검색하는 데 사용되는 저장장치
특정 시점의 서버 디스크 상태를 보존하는 기능
특정 시점의 서버 디스크 상태를 통째로 보존하는 파일이나 폴더 등의 집합
통째로 보존하기 때문에 데이터나 소프트웨어 뿐만 아니라 OS와 설정 정보 모두 포함
최초에는 통째로 보존하지만 두 번째 이후는 차분(증분)만 보존
증분 백업이란, 선택된 폴더의 전체 백업 이후, 변경되거나 추가된 데이터만 선택적으로 백업하는 방식
소프트웨어나 OS 갱신 작업 등을 할 때 문제가 발생하면 바로 되돌릴 수 있도록 백업하거나, 개인이 AWS에서 AMI를 만들기 위해 사용
스냅샷의 보존 장소는 Amazon S3이지만 스냅샷의 파일은 사용자가 자유롭게 다운할 수 없음
사용자가 S3를 사용할 때의 영역과는 다른 영역으로, 볼 수 없는 장소에 보존되며 S3 요금은 발생하지 않음

오토 스케일링이란 서버의 엑세스 상태에 따라 서버 대수를 늘리거나 줄이는 기능
EC2 외의 서비스를 지원하는 오토 스케일도 존재
AWS는 EC2 Auto Scaling을 단독으로 사용할 뿐만 아니라 CloudWatch에서 서버의 부하 정보(CPU 부하, 네트워크 통신량 등) 데이터를 참고하여 스케일링에 참고 가능
오토 스케일링을 시작하려면 ‘Auto Scaling 그룹’(인스턴스의 집합)을 생성하고 그룹에 인서턴스(서버)의 최소 대수와 최대 대수를 설정 가능 -> 범위에 맞게 인스턴스 증감

https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=274143194