2023. 8. 1. 09:15ㆍ개발/AWS
1. 클라우드 컴퓨팅이란 ?
클라우드 컴퓨팅
IT 리소스를 인터넷을 통해 온디맨드로 제공하고 사용한 만큼만 비용을 지불하는 것을 말한다. 물리적 데이터 센터와 서버를 구입, 소유 및 유지 관리하는 대신, Amazon Web Services(AWS)와 같은 클라우드 공급자로부터 필요에 따라 컴퓨팅 파워, 스토리지, 데이터베이스와 같은 기술 서비스에 엑세스할 수 있다.
이전 설계
on-premise로 서버를 구축하였고 데이터센터나 서버룸과 같은 특정 공간에 구축하는 방식으로 컴퓨팅 시스템을 위한 하드웨어, 네트워킹 장비, 전원공급장치, 전기 시스템, 백업 발전기, 환경 제어장치(에어컨, 냉각장치, 팬 등) 등을 통해 구축해야할 요소들로 구성하는데만 수개월 이상 걸리며, 인력, 비용이 발생한다.
온디맨드
- 선결제 금액이나 장기 약정 없이 저렴하고 유연하게 Amazon EC2를 사용하기 원하는 사용자
- 단기의 갑작스럽거나 예측할 수 없는 워크로드가 있으며, 중단되어서는 안되는 애플리케이션
- Amazon EC2에서 처음으로 개발 또는 시험 중인 애플리케이션
장점
- 자본 비용을 가변 비용으로 대체
- 데이터 센터 구축 비용, 서버 구매 비용
- 막대한 초기비용 대신 쓰는 만큼 비용 지불
- 규모의 경제로 얻게 되는 이점
- 한 개를 사는 것보다 100개를 사는게 단가가 낮음
- AWS의 규모의 경제로 인한 이득을 누릴 수 있음
- 용량 추정 불필요
- 속도 및 민첩성 개선
- 데이터 센터 운영및 유지 관리에 비용 투자 불필요
- 인프라 관리가 아닌 비즈니스에 자원 집중 가능
- 빠른 확장성
- 클릭으로 전 서계에 서비스 가능
- 클릭으로 바로 리소스를 확보 가능
- 개발비용 절감
단점
- 생각보다 비싼 이용 비용
- 플랫폼 서비스를 이용하거나 클라우드가 제공하는 기술을 많이 이용할시 비용 증가
- 점점 커지는 클라우드 의존도
- 데이터 보관의 불안함
- 핵심 경쟁력인 데이터를 외부에 보관하는 것 자체가 불안
클라우드 컴퓨팅 서비스 모델
SaaS, PaaS, LaaS의 클라우드 컴퓨팅 서비스 모델 설명
LaaS (Infrastructure as a Service)
- 인프라만 제공
- OS를 직접 설치하고 필요한 소프트웨어를 개발해서 사용
- 가상의 컴퓨터를 하나 임대하는 것과 비슷
- 예 : AWS EC2
PaaS (Platform as a Service)
- 인프라 + OS + 기타 프로그램 실행에 필요한 부분(런타임)
- 바로 코드만 올려서 돌릴 수 있도록 구성
- 예 : Firebase, Google App Engine 등
SaaS (Software as a Service)
- 인프라 + OS + 필요한 소스트웨가 제공됨
- 서비스 자체를 제공
- 다른 세팅 없이 서비스만 이용
- 예 : Gmail, DropBox, Slack, Google Docs
2. 리젠이란 ?
설명
- AWS의 서비스가 제공되는 서버의 물리적 위치
- 전 세계에 흩어져 있으며 큰 구분(동남아, 유럽, 북아메리카 등등)으로 묶여 있음
- 각 리전에 고유의 코드가 부여됨
- 예시 : 서울 리전은 ap-northeast-2
- 예시 : 미국 동부(버니지아 북부)리전은 us-east-1
- 리전별로 가능한 서비스가 다름
리전을 선택할 떄 고려할 점
- 지연 속도
- 법률 (데이터, 서비스 제공 관련)
- 사용 가능한 AWS 서비스
가용영역 (Availability Zone)
설명
- 리전의 하부 단위
- 하나의 리전은 반드시 2개 이상의 가용영역으로 구성
- 하나이상의 데이터 센터로 구성
- 리전간의 연결은 매우 빠른 전용 네트워크로 연결
- 반드시 물리적으로 일정 거리(몇 KM 이상) 떨어져 있음
- 다만 모든 AZ는 서로 100km이내의 거리에 위치
- 여러 재해에 대한 대비 및 보안
엣지 로케이션
설명
- AWS의 CloudFront(CDN)등의 여러 서비스들을 가장 빠른 속도로 제공 (캐싱)하기 위한 거점
- 전 세계에 여러 장소에 흩어져 있음
글로벌 서비스와 리전 서비스
AWS에는 서비스가 제공되는 지역의 기반에 따라 글로벌 서비스와 리전 서비스로 분류
글로벌 서비스
- 데이터및 서비스를 전 세계의 모든 인프라가 공유
- CloudFront
- IAM
- Route53
- WAF
지역 서비스
- 특정 리전을 기반으로 데이터 및 서비스를 제공
- 대부분의 서비스
- S3 : 전세계에서 동일하게 사용할 수 있으나 데이터 자체는 리전에 종속 #리전 서비스
ARN
AWS의 모든 리소스의 고유 아이디
형식
- arn:[partition]:[service]:[region]:[account_id]:[resource_type]/resource_name/(qualifier)
3. AWS 계정 생성
1. 루트 계정
생성한 계정의 모든 권한을 자동으로 가지고 있음
- 탈취당했을때 복구가 매우 힘듬 ⇒ MFA 설정 필요
- MFA : 멀티 팩터 인증은 사용자가 AWS 웹 사이트 또는 서비스에 엑세스할 때 사용자의 정류 로그인 자격 증명 외에도 AWS가 지원되는 MFA 메커니즘의 고유 인증을 제출하라고 요청함으로써 보안을 더욱 강화
- AWS API 호출 불가 (AccessKey/Secret AccessKey 부여 불가)
2. IAM
계정에 대한 인증 및 권한 부여를 제어하는데 필요한 인프라를 제공
- IAM User : IAM(Identitiy and Access Management)을 통해 생성한 유저
- 꼭 사람이 아닌 어플리케이션 등의 가상의 주체를 대표할 수 도 있음
- AWS API 호출 가능
- AccessKey : 아이디 개념
- Secret Access key : 패스워드 개념
4. EC2 란 ?
1. EC2 란 ?
Amazon Elastic Compute Cloud(EC2)는 안전하고 크기 조정이 가능한 컴퓨팅 파워를 클라우드에서 제공하는 웹 서비스. 개발자가 더 쉽게 웹 규모모의 클라우드 컴퓨팅 작업을 할 수 있도록 설계되어있으며 Amazon EC2의 간단한 웹 서비스 인터페이스를 통해 간편하게 필요한 용량을 얻고 구성할 수 있음
2. 특징
- 초 단위 온디맨드 가격 모델
- On-Demand : 실행하는 인스턴스에 따라 시간또는 초당 가격을 지불
- 예약 인스턴스 (Reserved Instance) : 미리 일정 기간 (1년 ~3년) 약정해서 쓰는 방식
- Spot Instance : 경매 형식으로 시장에 남은 인스턴스를 저렴하게 구매해서 쓰는 방식
- 전용 호스트 : 실제 물리적인 서버를 임대하는 방식
- 빠른 구축 속도와 확장성
- 몇 분이면 전 세계에 인스턴스 수백여대를 구축 가능
- 다양한 구성방법 지원
- 머신러닝, 웹서버, 게임서버, 이미지처리 등 다양한 용도에 최적화된 서버 구성 가능
- 다양한 과금 모델 사용 가능
- 여러 AWS 서비스와 연동
- 오토스케일링, Elastic Load Balancer(ELB), CloudWatch
3. 구성
- 인스턴스 : 클라우드에서 사용하는 가상 서버로 CPU, 메모리, 그래픽카드 등 연산을 위한 하드웨어를 담당
- 인스턴스의 타입 읽는 법 (m5a.xlarge)
- m 인스턴스 타입
- 5 세대
- a 접두사
- xlarge 사이즈
- 인스턴스의 타입 읽는 법 (m5a.xlarge)
- EBS : Elastic Block Storage의 줄임말로 클라우드에서 사용하는 가상 하드디스크
- AMI : EC2 인스턴스를 실행하기 위한 정보를 담고 있는 이미지
- 보안 그룹 : 가상의 방화벽
4. 생명 주기
인스턴스 상태 설명 인스턴스 사용 요금
pending | 인스턴스가 running 상태로 될 준비 | 미청구 |
running | 인스턴스 사용 중 | 청구 |
stopping | 인스턴스가 중지 또는 최대 절전모드로 전환 중 | 미청구 |
최대 절전시 청구 | ||
stopped | 인스턴스가 중지 상태:재시작 가능 | 미청구 |
shutiing-down | 인스턴스가 종료 중 | 미청구 |
terminated | 인스턴스가 영구적으로 삭제됨 | 미청구 |
중지
pending → running → stopping → stopped
- 중지 중에는 인스턴스 요금 미 청구
- 단 EBS 요금, 다른 구성요소(Elastic IP등)은 청구
- 중지후 재시작시 퍼블릭 IP 변경
- EBS를 사용하는 인스턴스만 중지 가능 / 인스턴스 저장 인스턴스는 중지 불가
재부팅
pending → running → stopping → stopped → pending
- 재부팅시에는 퍼블릭 IP변동 없음
최대 절전모드
pending → running → stopping → stopped → pending
- 메모리 내용을 보존해서 재시작시 중단지점에서 시작할 수 있는 정지모드
종료
pending → running → stopping → stopped → pending → terminated
- 인스턴스를 영구적으로 삭제
활용
Amazon CloudWatch : 리소스, 애플리케이션 및 서비스로부터 거의 실시간으로 로그를 수집하고 저장
AWS Lambda : 사건기반 서버리스 컴퓨팅 플랫폼이며 이벤트에 대응하여 코드를 실행하는 컴퓨팅 서비스로 해당 코드에 의해 필요한 컴퓨팅 자원을 자동으로 관리
AWS Systems Manager : AWS에서 인프라를 보고 제어하기 위해 사용할 수 있는 서비스이며 관리형 노드를 스캔하고 탐지된 정책 위반을 보고하거나 시정 조치를 취해서 보안 및 규정 준수를 유지
- 관리형 노드란 Systems Manager에 사용하도록 구성된 머신
4. 간단 실습
[추가 설정]
1. 인스턴스 선택 (컴퓨터 자원)
2. 이름및 태그
3. 키 페어
4. 네트워크 설정 > 보안 그룹 생성 > HTTPS 설정, SSH 설정
5. 스토리지 구성 8G
[결과물]
'개발 > AWS' 카테고리의 다른 글
AWS - 간단 웹 서버 띄우기 (0) | 2023.08.02 |
---|---|
AWS - ELB(Elastic Load Balancer) 이론, 실습 (0) | 2023.08.01 |
AWS - AutoScaling 이론, 실습 (0) | 2023.08.01 |
AWS - EC2(EBS, AMI) (0) | 2023.08.01 |