AWS 개요 - 2. EC2, EBS

코지클래식·2022년 6월 5일
0

UDEMY 강의
를 듣고 남기는 AWS에 대한 짤막한 개요.

EC2란?

  • Elastic Compute Cloud (ECC => EC2)
    서비스로서의 인프라스트럭쳐. 라고 표현한다.

EC2의 메인 구성요소

  1. 가상머신 임대 (EC2)
  2. 가상 드라이브에 데이터 저장 (EBS : Elastic Block Store)
  3. 머신들에 부하 분배 (ELB : Elastic Load Balancer)
  4. 자동 확장 그룹(Auto Scale Group)을 사용하여 서비스를 자동 확장하기 (인스턴스를 추가 생성 또는 삭제)

EC2 옵션

OS, 파워/코어(CPU), RAM 용량, 저장룡량, 네트워크 카드(속도, IP주소), 방화벽 규칙, 스크립트(사용자설정).. 등등




EC2의 종류

EC2의 여러 인스턴스 타입을 볼 수 있는 링크
https://aws.amazon.com/ko/ec2/instance-types/

  • 맨앞의 "M" 또는 "T","A"는 인스턴스의 클래스
  • 중간의 숫자(+알파벳)은 세대/버전을 의미한다.
  • . 뒤의 텍스트는 크기/용량을 의미한다.

CPU 최적화

이름이 C로 시작한다. Compute-optimize : CPU 최적화. 고연산 (머신러닝 등)에 유효하다.

메모리 최적화

모델의 이름이 R,X,Z로 시작한다. 메모리에 큰 부하를 일으키는 작업에 효과적이다.
(RDBMS 또는 NoSQL에 좋음)

용량 최적화

모델이름이 I,G,H로 시작한다. 대용량 처리에 효과적이다. 데이터베이스의 서버에 유효




Security Groups

Security groups은 AWS 네트워크 보안의 기본이다.

SG를 사용하면 우리의 인스턴스에 들어오거나, 나가는 트래픽을 허용/차단 하는 조건들을 정할 수 있다.

SG에는 "허용"(Allow) 규칙만 존재한다.

SG에는 IP 또는 다른 SG만 참조 가능하다.

이 SG는 EC2 인스턴스에 대한 일종의 "방화벽" 역할을 해준다.

SG가 조정하는 것

  • PORT에 대한 접근 (허용)
  • IP 범위에 대한 접근 (허용)
  • 다른 인스턴스 와의 접근 (허용) (A인스턴스 -> B인스턴스, B 인스턴스 -> A인스턴스..) (인바운드, 아웃바운드 각각 허용해야 함)

SG에 대해 알아두어야 할 것

  • 여러개의 EC2 인스턴스가 여러개의 SG와 상호작용할 수 있다. (N : N 관계)
  • SG는 Region/VPC 에 종속된다.
  • SG는 EC2의 "외부"에 존재한다. 따라서, 트래픽이 거부되었다면, EC2는 해당 트래픽(리퀘스트)를 볼 수 없다.
  • 인바운드 (외부 -> 내부) 트래픽은 기본값이 "차단", 아웃바운드 (내부 ->외부) 트래픽은 기본값이 "허용" 이다.

SSH

SSH 부분은 가장 많이 쓰이고 문제가 가장 많이 발생하는 부분이므로, 별도로 추가로 공부하기를 추천합니다.




EBS

왜 EBS를 사용하는가?

  • EBS는 EC2 인스턴스가 동작하는 동안 EC2 인스턴스와 함께 사용할 수 있는, 네트워크상의 드라이브(저장공간)이다.
  • 이는 인스턴스가 종료된 이후에도, 데이터를 유지할 수 있게 해준다.
    네트워크 USB 메모리 같은 느낌.

EBS 특징

  • EC2인스턴스 하나에 EBS 하나
  • AZ에 종속되어 있음.
  • 허용 용량이 존재하며, 사용 시간 및 용량에 따라 요금이 청구된다.
  • EBS를 같이 사용하던 EC2 인스턴스에서 떼서 다른 인스턴스에 붙일 수도 있다.




AMI

AMI = Amazon Machine Image

  • 도커 이미지랑 동일

  • EC2 인스턴스의 세팅을 커스터마이징 한 것이다.

  • EC2 인스턴스를 생성하고, 하나하나 설치하는 것보다 부팅/초기 세팅이 더 빠르다. 미리 포함되기 때문

  • AMI는 Region에 종속됨. (다른 region으로 복사 가능)

  • AMI를 사용해서 EC2 인스턴스를 생성할 수 있음




EC2를 처음 사용 할 때 tip

IAM :: User/Policy

  • 시리즈의 앞의 내용에 나왔던 User/Policy는,
    "회사(root 계정)에 있는 개발자(user)"가
    "어디까지 접근/수정 가능하게 할 것인가" 에 대한 내용이다.

Security Group

  • 반면 Security Group은 개발자(user) 뿐만이 아니라, 일반 사용자, 또는 다른 인스턴스(RDS, S3등 AWS의 다른 서비스)에 접근 가능여부를 설정해주는 설정이다.

  • 기본적으로 외부에서의 접근은 모두 차단되어 있음을 명심하자. 즉, Security Group에서 설정해서, 특정 IP 또는 포트에서의 접근을 허용해주지 않으면, 우리가 올린 서버에 접속할 수 없다는 것을 알아야 한다.

  • AWS를 처음 사용하면서, EC2 + RDS + S3를 사용 시 EC2에서 RDS에 접근이 안된다거나, EC2 인스턴스로 돌리고 있는 서버에 접근이 불가능하다면, Security Group 설정을 변경해야 한다는 것을 의미한다.

일반 인터넷/브라우저에서 접근 가능하게 하려면?

  1. Security Groups를 생성한다.
    이 Security Group에는 HTTP(80)번 포트로 모든 IP(0.0.0.0)에서 접근 가능하게 한다.
  2. 돌리고 있는 EC2 인스턴스에 생성한 Security Group을 적용해야 한다.
  3. 다만 요즘 브라우저들은 기본적으로 https:/ 를 이용하게 되어있으므로, 앞에 http:// + 주소 를 붙여서 EC2로 돌리는 서버에 접속하자.

RDS, S3 에 접근하려면?

  • 부착한 Security Group에 아래의 내용을 적용하자.
  1. 사용하는 데이터베이스의 포트 (MYSQL : 3306, MongoDB: 27017)에 대해 접근을 허용
  2. 또는 RDS, S3의 IP를 찾아서 해당 IP에 대해 모든 쓰기/읽기를 허용하게 할 수 도 있다.
profile
코지베어

0개의 댓글