04장. 서버 서비스 Amazon EC2
💡 EC2는 AWS를 대표하는 서비스이다.
ㅤ EC2는 굉장히 자유로운 서비스라서 다양한 설정을 할 수 있다.
🎨 4.1 EC2란
📌 4.1.1 Amazon EC2란
- Amazon Elastic Compute Cloud(Amazon EC2)는 컴퓨팅 용량을 제공하는 서비스이다.
쉽게 말해서 서버에 필요한 세트를 클라우드에 빌릴 수 있다는 뜻
이다.
- 클라우드는 하으뒈어의 구성과 OS의 조합을 탄력적으로 선택할 수 있고 구축이 쉽다는 특징이 있다.
- 착각할 수 있지만 EC2는 매니지드 서비스가 아니다.
- 따라서 서버 및 네트워크 운영은 AWS가 하지만, OS를 포함하여 필요한 소프트웨어는 사용자가 직접 설치하고 운영해야 한다.
📌 4.1.2 클릭 한 번으로 최적의 서버를 만들 수 있다
- EC2는 서버를 직접 만든다고는 하지만 관리 콘솔에서 클릭 한 번으로 생성할 수 있기 때문에 서버에 대한 기술적 지식은 그다지 필요하지 않다.
- 다양한 서버 시스템의 조합(인스턴스 유형)과 OS 및 소프트웨어의 조합(AMI 등)이 준비되어 있기 때문에 이를 선택하기만 하면 된다.
- 구체적인 매뉴얼보다 '어떻게 구성할까? 어느 정도의 성능이 필요할까?'와 같이 설계적인 관점이 필요하다.
📌 4.1.3 바로 생성할 수 있고 바로 삭제할 수 있다.
- EC2는 관리 콘솔에 로그인하고 구성을 선택하는 것만으로도 서버를 생성할 수 있다.
- 바로 생성할 수 있고, 바로 삭제할 수 있기 때문에 불필요한 리소스를 유지할 필요가 없다.
- 한 마디로 '불확실성이 많은 경우'에 매우 유용하다.
📌 4.1.4 인스턴스 유형 및 OS를 선택한다
- 이처럼 EC2는 선택의 폭이 넓어 매력적이다.
- EC2로 서버를 생성할 때는 인스턴스 유형을 선택하여 구성할 수 있는데 어떤 OS를 사용할 것인가 소프트웨어를 설치할 것인가 어떤 AMI를 선택할 것인지에 따라 결정된다.
🎨 4.2 EC2의 사용 절차: 가상 서버를 사용하기까지
📌 4.2.2 EC2 서비스의 기능
🎨 4.3 인스턴스 생성과 요금
💡 인스턴스 요금은 인스턴스와 EBS의 요금에 통신료를 합산한 것이다.
💎 T2/T3 무제한이란
- T2 / T3 무제한이란 인스턴스 유형이 T2 혹은 T3의 경우에만 하나요 표시되는 선택 사항이다.
- 부하가 높아졌을 때 버스트(일시적으로 고성능을 낼 수 있는 기능)를 무제한으로 쓰는게 가능하다.
- 그러나 일반적인 버스트를 초과하여 사용할 경우 별도로 요금이 부과되기 때문에 계속해서 서버에 부하가 발생하는 경우는 예상외로 비용이 증가할 수 있다.
📌 4. 인스턴스의 요금
- 인스턴스의 이용 요금은 다음 4가지 항목의 비용을 합한 것이다.
💎 AWS 가입 후 1년간 특전
- AWS에 가입 후 1년간 특전으로 t2.micro를 750시간/월 범위 안에서 무료 사용 가능하다.
- 750시간이란 대략 서버 1대의 1달분이다.
- 그 외에 EBS는 30GB까지, 통신료는 15GB까지 무료로 사용할 수 있다.
💎 EC2가 적합하지 않는 경우
- 단순한 서버 1대로 구성되어 그다지 변화가 없는 시스템의 경우라면 AWS의 장점을 살릴 수 없으므로(확장성, 다기능) EC2를 사용하는 이점이 없다.
- EC2는 스스로 관리해야 한다는 점을 전제로 하기 때문에 운영하는데 수고로울 수 있다.
🎨 4.5 인스턴스 유형
📌 4.5.1 인스턴스 유형이란
- 인스턴스 유형이란 머신의 용도이다.
- CPU, 메모리, 스토리지, 네트워크 용량 등이 용도에 맞게 조합되어 있다.
📌 4.5.2 인스턴스의 유형과 크기
- 유형과 크기에 따라 단가가 달라진다.
- 단가 X 사용 시간이 기본 요금이다.
🎨 4.6 Amazon EBS: EC2의 스토리지 볼륨
📌 4.6.1 EBS란
- Amazon EBS(Amazon Elastic Block Store)는 영구적인 블록 스토리지 볼륨이다.
- EC2 인스턴스와 조합하여 사용한다.
- 스토리지는 쉽게 말해서 데이터를 기록하는 장소로, 대표적인 스토리지는 HDD와 SSD다.
- 블록 스토리지 볼륨은 데이터를 바이트 블록 단위로 디스크에 저장하는 일반적인 방식이다.
- 같은 AWS 서비스인 S3는 오브젝트 스토리지라고 하는 방식을 채용하고 있다.
- EBS는 HDD와 SSD를 선택할 수 있다.
- HDD는 대용량을 지원하며 SSD에 비해 가격이 싸지만 성능이 낮다.
- SSD는 가격이 조금 비싸지만 IOPS
(Input Output Per Second, 1초간 처리할 수 있는 입출력 수)
가 빠르다.
- 고성능이라면 SSD, 저비용이라면 HDD가 적합하다.
🎨 4.7 SSH를 사용한 접속과 키 페어
📌 4.7.1 SSH로 접속하기
- 서버에 설치한 소프트웨어를 조자가려면 SSH 방식을 사용해 원격 접속으로 조작하는 것이 일반적이다.
- 서버에서 SSH를 사용하기 위한 프로그램(데몬)을 기동하고, 클라이언트에는 조작하기 위한 소프트웨어를 설치해야한다.
- 서버에 SSH를 사용하기 위한 프로그램을 설치하지 않아도 OS에 이미 설치되어 동작하고 있다.
- 클라이언트는 Putty나 Tera Term과 같은 소프트웨어를 주로 사용한다.
📌 4.7.2 키 페어란
- 키페어는 로그인 할 때 인증으로 사용하며, 공개키와 비밀 키로 된 한 쌍을 말한다.
- 공개 키 방식이라고 불리며 자물쇠를 잠그는 키와 자물쇠를 여는 키를 공개키와 비밀키로 조합하여 사용하는 방법이다.
- 자신 외에도 공유된 키를 '공개키', 자신만 알고 있는 키를 '비밀키(개인키)'라고 하며, 두 가지 키는 한 세트이다.
- aws는이 두 키를 파일 하나로 취급한다.
- ssh로 서버(인스턴스 괄호 닫고에 접속할 때 인스턴스 쪽에서 키페어에 포함되어 있는 '공개키'를 지정하고, 클라이언트 쪽 소프트웨어에는 내려받은' 키 페어 파일'을 '비밀키'로 설정하여 사용한다.
- 키페어는 생성했을 때만 내려받기가 가능하며 재발행이 안 된다.
🎨 4.8 Elastic IP 주소: 고정 공인 IP주소를 부여
💡 AWS에는 고정 IP(정적인 IP) 주소로 Elastic IP(탄력적인 IP) 주소를 제공하고 있다.
ㅤ Elastic IP 주소는 AWS 계정에 속해 있기 때문에 인스턴스를 삭제해도 사용 가능하다.
📌 4.8.1 Elastic IP 주소란
- Elastic IP 주소는 AWS가 제공하는 정적인 공인(public) IPv4 주소이다.
- EC2는 정지 후 다시 시작하면 공인 IP주소가 바뀌게 된다. 이는 문제를 야기한다.
- 그래서 고정 IP 주소를 인스턴스와 연결해야 하고, 이 때 사용되는 것이 Elastic IP 주소이다.
📌 4.8.2 Elastic IP 주소의 확보와 부여
- Elastic IP 주소는 AWS 계정에 연결되어 있다.
- 인스턴스 단위가 아니므로 IP 주소를 부여한 인스턴스를 삭제해도 확보한 IP 주소는 그대로 AWS 계정에서 소유하는 것이 가능하다.
- 인스턴스에 이미 할당된 공인 IP대신 Elastic IP를 할당하면 AWS 공인 IPv4주소 풀
인스턴스에 할당하기 위해 확보한 IP주소
로 되돌아간다.
- 이미 할당되어 있는 IP 주소는 Elastic IP 주소로 사용할 수 없다.
📌 4.8.3 Elastic IP 주소의 요금
- Elastic IP 주소의 요금은 조금 특수하다.
- 기본적으로 인스턴스에 부여된 IP 한개는 무료이고, 추가로 연결하면 시간에 비례하여 요금이 부과된다.
- 소유한 IP가 중지된 인스턴스나 분리된 네트워크에 연결된 경우에도 시간당 요금이 부과된다.
🎨 4.9 Elastic Load Balancing
📌 4.9.1 ELB란
- ELB(Elastic Load Balancing)는 AWS가 제공하는 로드 밸런서이다.
- 로드 밸런서는 서버에 집중되는 접속(트래픽)을 서버 여러 대나 네트워크에 분배하는 방식이다.
- 서버 한 대에 집중되는 부하를 분산시키기 때문에 부하 분산 장치라고도 한다.
📌 4.9.2 ELB의 종류
- ELB에는 ALB, NLB, CLB 세 종류가 있다.
💎 ALB(Application Load Balancer)
- HTTP 및 HTTPS에 가장 적합한 로드 밸런서이다.
- OSI 모형의 애플리케이션(구체적인 통신을 제공하는 계층)에서 동작한다.
- 요청되는 명령어의 내용을 보고 판단하기 때문에 대상의 유화를 디렉터리 단위로 분배하는 것이 가능하다.
- 인스턴스와 로드밸런서 사이의 통신은 암호화가 가능하다는 것도 특징 중 하나이다.
- 하지만 분배 대상을 정적 IP 주소를 설정하고 그 ip를 가진 호스트(기기)로 전송할 수 없다.
지원 프로토콜: HTTP, HTTPS
💎 NLB(Network Load Balancer)
- OSI 모형 전송 계층(전송된 데이터의 제어를 담당하는 계층)에서 동작한다.
- 패킷이라고 불리는 단편 데이터밖에 볼 수 없기 때문에 alb만큼 상세하게 분배할 수 없다.
- 대신 분배 대상의 정적 IP 주소를 설정할 수 있고 서버에 접속한 클라이언트의 IP 주소를 그대로 서버에 전송하도록 설정할 수도 있다.
지원 프로토콜: TCP, TLS
💎 CLB(Classic Load Balancer)
- 오래된 유형의로드 밸런서이다.
- 지원하는 프로토콜이 많다는 것이 장점이지만 앞으로 구축할 시스템에는 사용하지 않는 것을 권장한다.
지원 프로토콜: TCP, SSL/TLS, HTTP, HTTPS
🎨 4.11 오토 스케일링: 수요에 맞춰 EC2 대수 증감
💡 AWS의 장점 중 하나는 유연성이 높다는 것이다.
ㅤ 인스턴스를 쉽게 늘리거나 줄일 수 있다.
ㅤ 이러한 인스턴스의 증감을 자동으로 실행하는 것이 오토 스케일링이다.
📌 4.11.1 오토 스케일링이란
- 오토 스케일링이란 서버의 액세스 상태에 따라 서버 대수를 늘리거나 줄이는 기능이다.
- EC2 외의 서비스를 지원하는 오토 스케일링도 있다.
- AWS는 EC2 Auto Scaling을 단독으로 사용할 뿐만 아니라 CLoudWatch에서 서버의 부하 정보(CPU 부하, 네트워크 통신량 등) 데이터를 참조하여 스케일링에 참고할 수 있다.
📌 4.11.2 감시와 인스턴스 수의 결정
- 오토 스케일링을 시작하려면 'Auto Scaling 그룹'
인스턴스의 집합
을 생성하고 그룹에 인스턴스서버
의 최소 대수와 최대 대수를 설정해야한다.
- Auto Scaling 그룹은 서버 시작에 필요한 AMI와 키 페어, 보안 그룹 등을 설정해야한다.
💡 인스턴스의 증감에는 3가지 방법이 있다.
- EC2 인스턴스가 정지한 경우에 분리하고 새로운 EC2 인스턴스를 생성하는 방법
- 일정에 맞춰 스케일링 하는 방법
- CPU와 네트워크의 부하를 참고하여 특정 임계 값을 넘을 때 인스턴스 수를 자동적으로 증감하는 방법
- 오토 스케일링의 요금은 무료이다.
- 하지만 CloudWatch를 사용할 경우 모니터링에 관련된 요금이 부과된다.
#Women-in-Spring
#2024-11-완독-그림으로-이해하는-aws-구조와-기술