[AWS] EC2 구성요소

채록·2021년 8월 3일
0

AWS&Docker

목록 보기
10/12
post-thumbnail

회사 스터디 첫번째 주제는 AWS이다. 진행하는 책은 "그림으로 이해하는 AWS구조와 기술"이라는 책으로 컬러로 되어있어 이해가 편하고 넉넉히 하루만에도 다 읽을수 있을만큼 쉽게 풀어진 책이다.

스터디이기 때문에 각자 파트를 맡아 세미나 형식으로 진행하기로 했고 내가 맡은 부분은 AWS의 여러 도구와 EC2에 대한 챕터이다. 때문에 EC2에 대한 내용을 정리하면서 스터디를 준비하고자 한다.


1. EC2 ?

EC2 ??
Elastic Compute Cloud의 줄임말. C가 두번 들어가서 EC2이다.
컴퓨팅 용량을 제공하는 서비스로 서버에 필요한 세트를 Cloud에서 빌릴수 있게 해준다.

그리고 EC2는 managed service가 아니기 때문에 서버 및 네트워크 운영은 AWS가 담당하지만 그 외 OS를 포함한 소프트웨어는 사용자가 직접 설치하고 운영해야 한다.


+) AWS managed service

AWS에서 제공하는 서비스들은 크게 두 종류로 나눌수 있다. managed service인지 아닌지가 그 기준이다.

managed service ??
AWS가 관리하는 서비스의 통칭
ex) Amazon S3, Amazon RDS

매니지드 서비스는 백업 및 업데이트가 자동으로 이뤄져 관리 부담이 줄어든다. S3의 경우 상황에 맞게 storage 용량이 자동으로 증가한다.
하지만 자동으로 이뤄지기때문에 업데이트 하고싶지 않은 소프트웨어가 업데이트 되거나 필요 이상으로 용량이 커져서 과한 요금이 부과될 수 있기 대문에 완전히 신경을 쓰지 않을 수는 없다.

- 매니지드 서비스의 기능

  • 자동 백업
  • 자동 알림
  • 모니터링
  • 패치 관리
  • 보안
  • 이중화 : 같은 시스템을 여러개 준비해 장애시 서비스가 완전히 멈추는 것을 방지해 주는 것.

- EC2의 장점

EC2는 Cloud 서비스이다. 즉, 어디서든지 EC2에 접근이 가능하고, 가상화 기술로 백업이 용이하며, AWS의 여러 리전과 가용영역을 활용하여 물리적으로 다른 여러 장소에 서버를 생성할 수 있다.

또한 EC2의 관리 콘솔 화면을 통해 클릭한번으로 생성, 삭제, 중지 등 여러가지 조작이 가능하다. 기능 조작이 즉각적이므로 장애에 대비해 즉각적인 대응도 가능하다.

  • 고장 => 서버 복제, 복구
  • 부하 증가 => 서버 복제, 분산
  • 접속량 감소 => 스케일 다운
  • 일시 사용 => 잠깐동안만 EC2를 사용

- EC2 사용하기

EC2를 생성하기 위해서는 인스턴스 유형, OS 종류, 소프트웨어 설치 유무, AMI 종류 등 여러가지를 선택해야 한다. 역시 AWS에서 다양한 유형을 제공해 준다.


1) 운영

EC2가 아닌 직접 서버를 구축한다면 물리적인 환경을 조성하기 위해 현지에 가서 케이블을 연결해야 한다. 하지만 EC2를 사용하면 관리 콘솔을 통해 이를 대신할 수 있다. 또한 소프트웨어적인 작업을 진행할 때에는 SSH를 이용해 원격으로 로그인하여 조작할 수 있다.

SSH ??
Secure Shell Protocol의 줄임말로 네트워크 프로토콜 중에 하나이며 서버를 원격에서 작업하기 위한 프로토콜이다.원격제어 뿐만이 아니라 데이터를 전송할 때에도 사용되며 FTPTelnet 보다 보안적인 면에서 더욱 우수하다.


SSH의 보안
SSH의 보안은 한쌍의 key로 구성되어 있다. 바로 public keyprivate key이다.
(이전에 잠깐 봤던 SSL과 마찬가지. 두가지는 다르다.) => HTTP와 SSL
public key를 이용해 "암호화"는 가능하되 "복호화"는 불가능 하다. 때문에 정보를 받는 입장에서는 private key를 이용해 정보를 복호화 하여야 한다.


따라서 private key를 처음 발급 받으면 사용자는 이를 컴퓨터에 꼭 저장해야 한다. (두번 발급이 안된다.)


2) 서비스 기능

EC2 서비스에는 다양한 기능이 있다.

항목내용
인스턴스AWS 클라우드 생성한 가상 서버. 같은 구성으로 이뤄진 서로 다른 인스턴스가 존재할 수 있다.
AMI가상 이미지. 인스턴스를 생성하는 기준이 되는 금형.
키 페어인스턴스에 접속할 때 인증을 위해 사용되는 키 (SSH)
EBSAWS 클라우드에 사용할 수 있는 storage. 인스턴스 스토리지로 사용한다.
보안 그룹가상 방화벽. 1개 이상의 인스턴스 트래픽을 제한한다.
Elastic IP정적 IPv4 주소

AMI ??
Amazon Machine Image의 줄임말로 Amazon EC2안에 가상 머신을 생성하기 위해 사용되는 특수한 유형의 가상 어플라이언스 이며 EC2를 사용하여 배포하는 서비스의 디플레이의 기본 단위 역할을 한다.


AMI의 주요 구성 요소
모든 가상 어플라이언스와 마찬가지로 운영체제(리눅스, 마이크로소프트 윈도우 등)와 서비스 전달에 필요한 추가 소프트웨어를 포함하는 읽기 전용 파일 시스템 이미지로 구성되어 있다.
Wiki - AMI


IPv4 ??
요즘 사용되는 정적 주소는 IPv4와 IPv6 두종류가 있다.
IPv4는 4개로 구분된 10진수의 숫자로 표시되며 생성되는 수의 종류는 약 43억개이다. 하지만 점점 잔여 수가 부족해지고 있어 현재는 IPv6가 대체되고 있다. IPv6는 8개로 구분되어 16진수로 표현되 약 340간개를 사용할 수 있다.


3) 사용 절차

  1. AWS로그인 : 리전을 선택하고 관리 콘솔을 열어 EC2 대시보드를 선택
  2. EC2 인스턴스 생성 : AMI와 인스턴스 유형 선택 / 네트워크와 IP주소 할당 / 스토리지 추가 / 보안그룹 설정 / 키페어 선택(작성)
  3. EC2 접속 : SSH로 EC2에 접속
  4. 소프으웨어 설치 & 설정 (SSH 사용)

- 인스턴스 설정 항목

항목내용
AMI사용할 OS, 소프트웨어 등 어떤 인스턴스를 만들 것인지 정하고 이에 해당하는 AMI 선택
인스턴스 유형EC2 인스턴스의 장비 사양. CPU, 메모리, 장비 유형 결정
리전서버를 설치할 지역
네트워크EC2 인스턴스를 배치할 네트워크로 AWS의 VPC에서 선택한다.
서브넷설치할 네트워크의 범위. VPC내에 어떤 서브넷을 설치할지 선택한다. 서브넷을 선택하면 가용 영역이라고 하는 설치 장소와 어떤 범위에 사설 IP가 부여될지 결정된다.
IAM 역할인스턴스의 접속 권한 정책 설정
스토리지의 용량과 종류서버 장비의 스토리지. OS가 설치된 장소에 있다.
태그인스턴스에 부여할수 있는 임의의 태그 (이름 부여)
보안 그룹프로토콜별로 포트 혹은 IP주소, 아니면 양쪽 모두 필터링을 설정한다.

VPC ??
AWS 계정 전용 가상 네트워크


4) 요금 책정

4가지 요소로 요금이 부과된다.
1. 인스턴스 사용량(가동 시간 X 단가) : 인스턴스가 가동한 시간(초) 단위로 과금
2. EBS(스토리지) 요금 (용량 X 단가) : 인스턴스가 사용하는 EBS 요금
3. 통신 요금 (아웃바운드 통신 요금) : 인스턴스 통신 요금
4. 그 외 옵션

  • Elastic IP 서비스 등의 옵션을 선택했을 경우 해당 요금 추가

-----------------------------


2. EC2 이용 관련

1) AMI

AMI를 통해 같은 환경의 서버를 쉽게 재구축 할수 있다.
AMI는 공식 AWS의 AMI만 존재하는 것은 아니다. 커뮤니티나 기업에서 생성한 AMI도 이용 가능하며 종류에 따라서는 이용에 따른 별도 요금이 발생할 수 있다.
개인이 만들수도 있다. 생성한 AMI는 마켓플레이스에서 배포 가능하다.

그러나 AMI가 반드시 안전하다는 보장이 없기 때문에 새로운 AMI를 사용할땐 항상 유의해야한다.

2) 인스턴스 유형

인스턴스 유형이란 머신의 용도이다. 용도는 다섯가지로 구분되며 각 용도에 따라 선택할수 있는 여러 유형이 존재한다.

용도유형내용
범용A1, T3, T2, M5, M5a, M4, T3a일반적인 서버. 부하가 일정한 서버의 경우 사용하며 버스트 기능을 지원하는 유형도 있다.
컴퓨팅 최적화C5, C5n, C4연산 능력이 높은 서버
메모리 최적화R5, R5a, R4, X1e, X1, 고성능 메모리, z1d대용량 메모리를 탑재한 서버
가속화된 컴퓨팅 최적화P3, P2, G3, F1머신 러닝 등에 사용되는 GPU를 탑재한 유형 및 그래픽 기능이 높은 유형
스토리지 최적화H1, I3, D2스토리지를 최적화한 유형. I3는 SSD 기반이다.

유형을 선택 한 후에는 크기를 선택해야 한다. 이 두가지를 모두 선택하면 t2.micro와 같이 표기된다.
프리티어를 사용중일땐 보통 t2.micro를 선택한다. 가장 작은 크기로 해야 무료로 이용할 수 있기 때문이다.


3) EBS

AWS managed service 아님.
EBS 영구적인 블록 스토리지 볼륨으로 EC2와 조합하여 사용 가능하다. 스토리지 곧, 데이터를 기록하는 장소의 대표적인 예시는 HDD와 SSD이다.

종류기능
HDD대용량 지원, 비교적 가격이 저렴하고 성능도 낮다.
SSD비교적 가격이 비싸지만 IOPS(1초당 처리할수 있는 입출력의 수)가 빠르다.

성능과 비용을 따져가며 적당한 것을 선택하도록 한다.


4) Elastic IP

AWS managed service 아님.
AWS는 정적인 공인 IP로 Elastic IP를 제공한다. (IPv4) 이는 AWS계정에 속해있으므로 인스턴스를 삭제해도 계속 사용할 수 있다.

참고로 EC2는 서버를 껏다 키면 공인 IP주소가 변경되므로 Elastic IP를 사용해 변경되지 않는 IP주소를 사용할 수 있다.
그러나 인스턴스에 기본적으로 제공되는 IP가 아닌 추가 IP를 연결할 경우 추가 요금이 부과된다. 이는 인스턴스가 중단되거나 했을때도 계속해서 요금이 부과되니 사용하지 않는 IP는 반드시 해지해야 한다.


5) Elastic Load Balancing

AWS managed service 아님.
AWS가 제공하는 로드 밸런서. (분산 처리 장치) 3가지 종류가 있다. ALB, NLB, CLB

다음의 OSI 모형을 기준으로 어느 계층에서 작동하는지 확인 할 수 있다.

1. ALB (Application Load Balancer)

HTTP및 HTTPS에 가장 적합한 로드 밸런서.애플리케이션 계층(구체적인 통신을 제공하는 계층)에서 작동한다.

내용을 판단하기 때문에 대상의 URL 디렉토리 단위로 분배가 가능하고, 인스턴스와 로드 밸런서 사이의 통신을 암호화 할 수 있다. 단, IP할당은 못한다.

지원 프로토콜 : HTTP, HTTPS


2. NLB (Network Load Balancer)

네트워크 계층 (전송된 데이터의 제어를 담당하는 계층)에서 작동한다. 패킷 (단편)데이터만 확인할수 있으므로 ALB보단 덜 섬세하지만 분배 대상의 정적 IP주소를 설정할수 있다는 차이가 있다. 또한 서버에 접속한 클라이언트의 IP주소를 그대로 서버에 전송하도록 설정할 수 있다.

지원 프로토콜 : TCP, TLS


3. CLB (Classic Load Balancer)

지원하는 프로토콜은 많지만 오래됐기 때문에 새로 구축할때는 사용을 권장하지 않는다.

지원 프로토콜 : TCP, SSL/TLS, HTTP, HTTPS


6) 스냅샷 : 서버 데이터 백업

AWS managed service 아님.

스냅샷이란 어떤 시점의 서버 디스크 상태를 통째로 보존한 파일이나 폴더 등의 집합으로 스냅샷을 작성해 Amazon EBS볼륨의 데이터를 Amazon S3에 백업할 수 있다.
스냅샷의 데이터 보존 장소는 S3이지만 사용자가 그 파일을 자유롭게 다운로드 할수 있는 것은 아니며 S3 서비스를 사용할때와는 다른 영역의 S3에 저장되는 것이다. 때문에 볼 수 없지만 이로 인한 S3요금은 발생하지 않는다.


7) 오토 스케일링

AWS managed service 아님.

오토 스케일링이란 서버의 액세스 상태에 따라 서버 대수를 늘리거나 줄이는 기능이다.

Scale
서버 부하와 관련해 해결책으로 Scale ## 방법이 있다. 4가지 이다.
1. Scale-Up : 성능을 향상시킨다. ex) 4GB => 8GB
2. Scale-Out : 물리 갯수를 늘린다. ex) 1개 => 2개
3. Scale-Down : 성능을 저하시킨다. ex) 8GB => 4GB
4. Scale-In : 물리 갯수를 줄인다. ex) 2개 => 1개

오토 스케일링은 Scale-out이다.
이를 사용하기 위해선 Auto Scaling 그룹 (인스턴스의 집합)을 생성하고 그 그룹에 인스턴스(서버)의 최소 대수와 최대 대수를 설정해야 한다. 그 범위 안에서 오토 스케일링이 활성화 되는 것이다. 또한 기능을 위해선 서버 가동에 필요한 AMI와 키페어, 보안그룹 등을 설정해야 한다.

요금은 기본적으로 무료이지만 CloudWatch를 사용할 경우 모니터링에 관련된 요금이 부과된다.

-----------------------------


3. EC2 생성 실습

프리티어 등급에서 EC2의 새 인스턴스를 생성해보자

1) AMI 선택

AWS에서 제공하는 AWS 공식 AMI를 선택한다. 이때 나의 AMI혹은 AMI MarketPlace를 이용한다.

먼저 화면의 가장 최신 Ubuntu 버전을 선택하고, 64비트(x86)을 선택한다. 이때 m1이라서 Arm했더니 프리티어 버전으로 선택할수 있는 인스턴스 유형이 없었다.

2) 인스턴스 유형 선택

프리티어 등급으로 이용 가능한 t2.micro를 선택한다.

t2.micro ??
t는 instance family를 나타낸다. (t 외에도 M, C, 등이 있다)
t2의 2는 인스턴스의 세대를 나타낸다.
micro 는 인스턴스의 크기를 나타낸다.

마이크로(T) ??
인스턴스 크기별 기본 수준의 CPU 성능 제공
간헐적으로 높은 성능이 필요할 때 유휴시간에 모아 놓은 크레딧을 기반으
로 버스팅하여 높은 성능을 제공
적용사례 : 개발환경, 소규모 웹, 마이크로 서비스

3) 인스턴스 구성


VPC와 서브넷 / IAM역할 / CloudWatch 이용여부 등을 선택할 수 있다. 앞서 말했듯 CloudWatch를 이용할 경우 과금되니 주의가 필요하다.

4) 스토리지 추가


EBS 볼륨을 구성하는 단계이다.

5) 태그 추가


임의로 한개 태그를 생성해 보았다.

6) 보안 그룹 구성

보안 그룹을 구성한다. 새로운 보안그룹을 생성할수도 있고, 기존에 생성한 보안그룹을 선택할 수도 있다.
이때 유형은 다양한 것이 있지만 Linux기준 SSH를 사용하기로 했다.

7) 인스턴스 시작 검토

마지막으로 설정한 값들을 검토하여 최종 시작하기를 진행한다.
이때 경고 문구도 확인하자.

💡💡💡) 키페어

SSH유형의 보안그룹 선택으로 사용할 키페어를 지정한다. 이때 기존에 만든 키페어를 선택할수도 있고, 새로 생성할 수도 있다.

새로 생성하면 반드시 다운로드 받아 개인적인 곳이 보관해야 한다. 키페어는 생성할 때만 다운 가능하고, 추가로 다운로드 되지 않으므로 주의한다.

생성완료 : 생성 대기, 실행

생성하면 바로 실행되지 않고 시간이 조금 걸리며 이때 인스턴스 상태는 대기중으로 표기된다. 조금 기다리면 실행된다.

종료 == 삭제

사용하지 않는 인스턴스는 "중지" 할수도 있지만 "종료" 할수도 있다. 종료 역시 시간이 조금 걸리며 종료는 곧 삭제를 의미한다.
하지만 콘솔 화면상에서 "종료" 상태로 계속 보이긴 한다.



끝!

간단히 개념과 생성까지 정리해보았다. 너무 길게 정리한것 같지만 빠뜨릴 내용이 없어서 그랬던...것...!

profile
🍎 🍊 🍋 🍏 🍇

0개의 댓글