[WEEK 6] PREVIEW
YC Tech Academy
AWS 클라우드 컴퓨팅(IAM, EC2, RDS, S3, ELB, ASG)
IAM (Identify Access Management)
- AWS는 한 계정 안에 다양한 서비스들이 생성되고 관리된다. AWS에서는 사용자라는 개념이 있는데 사용자를 기준으로 서비스들의 접근 및 수정 권한을 관리할 것을 권장한다. 리눅스 운영체제처럼 root 사용자는 모든 서비스에 대한 권한이 존재한다. 실제 AWS를 이용할 때는 root 외 별도 사용자를 만들고 권한을 부여해 특정 서비스만 접근하도록 관리한다.
EC2 (Elastic Compute Cloud)
- EC2는 AWS에서 제공하는 독립적인 컴퓨터 서버이다. 원하는 OS를 선택해 새로운 컴퓨터 서버를 클라우드 공간에 생성할 수 있다. 생성된 EC2 하나하나를 인스턴스라고 부르는데 AWS에서는 EC2 인스턴스를 기반으로 많은 서비스들을 만든다.
- 리눅스 이미지를 선택해 서버를 만들었을 경우 SSH를 통해 EC2 인스턴스에 접근한다. SSH로 서버에 들어가게 되면 우리가 일반 컴퓨터에서 코드 작업을 하는 것처럼 개발을 수행하거나 프로젝트를 배포할 수 있다.
- EC2 구성은 여러 단계에 걸쳐 이루어지는데 염두해야 할 몇가지 단계가 있다.
- AMI(Amazon Machine Image)를 통한 운영체제 선택
- AMI는 AWS에서 사용하는 미리 구성된 운영체제 이미지이다. 리눅스, 윈도우 등 원하는 이미지를 선택하면 그에 맞는 운영체제로 EC2 서버가 구성된다. 기본적인 OS 이미지 외에 사람들이 필요에 따라 추가적인 프로그램을 설치한 이미지도 존재한다.
- <b>가상 서버 사양 선택</b>
vCPUs, 메모리, 스토리지, 네트워크 성능 등을 선택할 수 있다. EC2는 기본적으로 <b>EBS(Elastic Block Store)</b>라는 스토리지에 정보를 저장하는데 이는 추후 설정을 통해 용량을 변경할 수 있다.
- <b>보안 그룹 구성</b>
방화벽과 유사한 기능이다. 기본적으로 SSH 접근을 위한 22번 포트는 뚫려있다. 방화벽 설정처럼 뚫고 싶은 포트와 허용할 IP 주소 지정을 통해 EC2 접근을 관리한다.
- <b>SSH 키 페어 선택</b>
마지막으로 SSH 접근을 위한 키 페어 설정 단계가 있다. 기본적으로 EC2는 키 페어를 통해 인증을 하도록 되어있다. AWS EC2 메뉴에서 키 페어를 미리 생성하고 새로운 EC2 생성 시 적용하여 SSH 접근을 위한 키 페어를 설정한다.
생성한 EC2는 웹 콘솔이나 AWS CLI 커맨드를 통해 관리할 수 있다.
RDS (Relational Databases Service)
- RDS는 관계형 데이터베이스를 위한 AWS 서비스다. 서버 컴퓨터 역할을 하는 EC2 내부에 MySQL, PostgreSQL 등을 깔아서 EC2 내부에서 동작하게 만들 수도 있지만 보통은 DB를 위한 별도 RDS를 만들어 작업한다. DB 서버를 분리하는 것과 같은 개념인데 이렇게 해야 서버 부하나 장애도 줄이고 서버를 옮길 때 편리하게 작업할 수 있다.
- DB 포트 번호에 맞게 EC2 보안 그룹 설정을 변경한 후에 EC2와 연동해 사용할 수 있다.
S3 (Simple Storage Service)
- AWS에서 사용되는 스토리지 유형 중 하나이고 가장 널리 사용되는 스토리지이다. AWS에서 EC2는 데이터 저장을 위한 공간이라기보다는 서버의 성격이 강해 대용량 데이터를 저장하지 않는다.
- 빅데이터 환경에서는 파일을 저장하고 관리하는 시스템인 hdfs(hadoop file system)를 S3로 대체해 사용한다. 웹어플리케이션에서는 보통 이미지나 css, 미디어 파일을 s3에 저장해 관리한다.
- S3는 이외에도 로그 수집 등 다른 AWS 요소들과 연결되어 사용된다. 형식을 지정하지 않은 채로 원하는 스토리지에 저장하기 전에 데이터를 담아두는 용도로 많이 활용된다.
ELB (Elastic Load Balancing)
- ELB는 EC2 인스턴스 간 부하를 조절하기 위한 EC2의 기능이다. 타겟 인스턴스를 설정하면 트래픽을 분산하거나 auto-scaling으로 인스턴스를 생성/삭제하는 방식으로 부하를 조절한다.
ASG (Auto Scaling Group)
- Auto Scaling 이란, 자동으로 서버 인스턴스에 대해 크기(Scale)을 관리해주는 기능이다. 과거에는 실제 서버 증설을 위해서 하드웨어를 보강해주거나, 트레픽의 피크(고점)에 대해서 예상을 하여 미리 서버를 증설해 두었기 때문에 낭비되는 자원이 굉장히 많았다. 현재에는 물리적인 서버 대신, Cloud 서비스를 이용한 가상화 기술이 늘어나고, 상황에 따라 자동으로 같은 환경을 가지고 있는 서버를 자동으로 늘리거나 줄여주는 방법인 "Auto Scaling"을 사용한다.
- 사용자는 특정상황(서버리소스, 응답속도, 처리량, 시간)에 대해 서버 증설에 대한 옵션을 설정할 수 있고, 최대/최소 몇대의 EC2 인스턴스를 사용할 지 설정할 수 있다. 특히, Amazon에서는 ASG라는 기능을 통해 Auto Scaling을 관리합니다.
728x90
반응형
'YC TECH ACADEMY' 카테고리의 다른 글
Redis (0) | 2023.11.27 |
---|---|
OAuth2.0 (0) | 2023.11.27 |
Spring Security (0) | 2023.11.27 |
[RDBMS] 테이블들의 연관 관계 & indexing & transaction & Spring Data JPA 활용 (0) | 2023.11.27 |
Bean 주입 & Bean Component 차이 & Field Injection, Constructor Injection 차이 & @Primary, @Qualifier annotation (0) | 2023.11.27 |