클라우드 컴퓨팅
- IT 리소스를 인터넷을 통해 온디맨드로 제공하고 사용한 만큼만 비용을 지불하는 것
- 물리적 데이터 센터와 서버를 구입, 소유 및 유지 관리하는 대신, Amazon Web Services(AWS)와 같은 클라우드 공급자로부터 필요에 따라 컴퓨팅 파워, 스토리지, 데이터베이스와 같은 기술 서비스에 액세스 가능
클라우드 서비스 모델
IaaS(Infrastructure as a Service)
- 클라우드 IT를 위한 기본 빌딩 블록이 포함
- 일반적으로 네트워크 기능, 컴퓨터(가상 또는 전용 하드웨어) 및 데이터 스토리지 공간에 대한 액세스를 제공
- IT 리소스에 대한 최고 수준의 유연성과 관리 제어 기능을 제공
- 기본 인프라(하드웨어, 운영체제)를 관리할 필요가 없어 애플리케이션 개발과 관리에 집중할 수 있음
- 애플리케이션 실행과 관련된 리소스 구매, 용량 계획, 소프트웨어 유지 관리, 패치 작업 또는 다른 모든 획일적인 작업에 대한 부담없이 더욱 효율적으로 운영 가능
SaaS(Software as a Service)
- 서비스 공급자에 의해 실행되고 관리되는 완전한 제품을 제공
- 대부분의 경우 웹 기반 이메일과 같은 최종 사용자 애플리케이션을 말함
리전
- AWS의 모든 서비스가 존재하는 물리적인 위치
- 지리적 영역 내에서 격리되고 물리적으로 분리된 최소 3개의 AZ로 구성
가용영역(Availability Zone, AZ)
- AWS 리전 내에서 물리적으로 격리된 공간
A- WS 리전의 모든 AZ는 높은 대역폭, 지연 시간이 짧은 네트워킹, 완전한 중복성을 갖춘 전용 메트로 광 네트워크와 상호 연결되어 있어 AZ간에 높은 처리량과 지연시간이 짧은 네트워킹을 제공
- AZ간의 모든 트래픽은 암호화
- 고가용성(High Availability) 제공
※ 고가용성: 전체 시스템에 대하여, 사람이 개입하지 않아도 시스템이 항상 작동하고 자동으로 오류를 복구해 가동 중지를 최소화하도록 보장하는 것
다른 모든 AZ와 유의미한 거리를 두고 물리적으로 분리
AWS IAM(Identity and Access Management)
- AWS 서비스 및 리소스에 대한 액세스와 ID를 안전하게 관리
- 사용자(user), 그룹(group), 역할(role), 정책(policy)으로 구성
- 리전에 속하는 서비스가 아닌 글로벌 서비스
정책(policy)
- 자격 증명이나 리소스와 연결될 때 해당 권한을 정의하는 AWS의 객체
권한의 모음으로 사용자, 사용자 그룹, 역할에 적용이 가능
- 사용자, 사용자 그룹, 역할에 권한을 직접 적용할 수 없고, 정책을 생성한 후 적용해야 함
역할(role)
- 사용자가 아닌 특정 서비스에서 생성한 객체에 권한을 부여할 때 사용
권한 경계
- 관리형 정책을 사용해 자격 증명 정책이 IAM 엔티티(사용자 또는 역할)에 부여할 수 있는 최대 권한을 설정하기 위한 고급 기능
- 엔티티의 권한 경계 설정을 통해 자격 증명 기반 및 관련 권한 경계 모드에서 허용되는 작업만 수행할 수 있음
ACL(Access Control List, 접근 제어 목록)
- 리소스에 액세스할 수 있는 다른 계정의 보안 주체를 제어할 수 있는 서비스 정책
- JSON 정책 문서 형식을 사용하지 않는 유일한 정책 유형
- 대표적인 서비스: Amazon S3, AWS WAF 및 Amazon VPC
*** 안전한 권한 부여 방법 : 필요한 최소권한설정!
Amazon EC2(Elastic Compute Cloud)
- 가상서버를 인스턴스 단위로 관리
- 안정적인 확장 가능한 인프라에 온디맨드로 액세스
- 99.99%의 가용성을 지원하는 SLA(Service Level Agreement, 서비스 수준 계약, 공급업체가 고객에게 제공하기로 약속한 서비스 수준을 명시하는 아웃소싱 및 기술 공급업체 계약)를 기반으로 몇 분안에 용량 크기를 조정
애플리케이션을 위한 안전한 컴퓨팅을 제공
- 보안은 AWS Nitro System에서 Amazon EC2를 기반으로 구축
- AWS Nitro System: 가상화 및 하드웨어 기술 스택으로, EC2와 같은 가상머신 서비스에서 물리적 하드웨어와 가상화 계층 간의 관게를 정의하는 핵심 구성요소 중 하나
- AWS Graviton 기반 인스턴스, Amazon EC2 스팟 인스턴스 및 AWS Savings Plans와 같은 유연한 옵션을 통해 성능과 비용을 최적화
- AWS Migration Tools, AWS Managed Services 또는 Amazon Lightsall을 사용하여 간편하게 마이그레이션하고 구축
AMI(Amazon Machine Image)
- 인스턴스를 시작하는데 필요한 소프트웨어 구성(운영체제, 애플리케이션 서버, 애플리케이션)이 포함된 템플릿
- 사용자 커뮤니티 또는 AWS Marketplace에서 제공하는 AMI를 선택하거나, 자체 AMI를 선택할 수 있음
EBS(Elastic Block Store)
- EC2와 함께 사용하는 스토리지 서비스
- EC2의 HDD/SSD와 같은 역할을 하며 EC2에서 실행되는 응용 프로그램의 데이터, 로그, 설정 정보를 저장하는 데 주로 사용
EBS 스냅샷
- EBS 볼륨, 부팅 볼륨 및 온프레미스 블록 데이터와 같은 블록 스토리지 데이터를 보호하도록 설계된 간단하고 안전한 데이터 보호 솔루션
- 데이터의 특정 시점 복사본이며, 재해 복구를 지원하고 리전 및 계정간의 데이터를 마이그레이션하며 백업 규정 준수를 개선하는데 사용
EIP(Elastic IP, 탄력적 IP)
- 정적 IPv4주소로, AWS 계정에 할당되며 릴리스할 때까지 할당된 상태를 유지
- EC2 인스턴스를 중지하고 다시 시작하면 퍼블릭 IP 주소가 변경되나, EC2 인스턴스에 EIP 주소를 연결하면 EC2 인스턴스를 다시 시작해도 동일한 IP 주소로 접속이 가능
VPC(Virtual Private Cloud)
- AWS에서 생성할 수 있는 프라이빗 가상 네트워크 공간
- AWS 클라우드에서 다른 가상 네트워크와 논리적으로 분리
- 몇 분안에 네트워크 구축 가능
- 한 AWS 리전안에서만 존재할 수 있고, 한 리전에 만든 VPC는 다른 리전에서는 보이지 않음
⇒ VPC Peering
서브넷과 함께 IP주소 지정시 CIDR블록 활용
서브넷(subnet)
-
VPC안에 더 작은 네트워크 단위
-
EC2 인스턴스를 배치하는 장소 ⇒ 인스턴스는 서브넷 안에 위치
-
한번 서브넷에 인스턴스를 생성하면 다른 서브넷으로 옮길 수 없음
-
인스턴스를 종료하고 다른 서브넷에 새 인스턴스를 만들 수는 있음
-
인스턴스를 서로 격리하고, 인스턴스 간의 트래픽 흐름을 제어하고, 인스턴스를 기능별로 묶을 수 있게 함
-
서브넷은 하나의 가용 영역(AZ)내에서만 존재할 수 있음
-
서브넷 CIDR 블록
VPC의 일부이고, VPC내에서 유니크해야 함
모든 서브넷에서 처음 4개의 IP와 마지막 1개는 예약되어 있으므로 인스턴스에 할당할 수 없음
예) 서브넷의 CIDR가 172.16.100.0/24인 경우
172.16.100.0 네트워크 주소
172.16.100.1 AWS에서 YPC 라우팅용으로 예약
172.16.100.2 DNS 서버 주소
172.16.100.3 AWS에서 나중에 사용하려고 예약
172.16.100.255 네트워크ㅡ 브로드캐스트 주소
-
퍼블릭 서브넷: 서브넷이 인터넷 게이트웨이로 향하는 라우팅이 있는 라우팅 테이블과 연결된 경우
-
프라이빗 서브넷: 서브넷이 인터넷 게이트웨이로 향하는 라우팅이 없는 라우팅 테이블과 연결된 경우
ENI(Elastic Network Interface, 탄력적 네트워크 인터페이스)
- 가상 네트워크 카드를 나타냄
- 물리 서버의 네트워크 인터페이스와 같은 기능을 수행
- VPC에서 가상 네트워크 카드를 나타내는 논리적 네트워크 구성 요소
인터넷 게이트웨이(IGW, Internet GateWay)
- 퍼블릭 IP 주소를 갖는 인스턴스가 인터넷에 연결할 수 있도록 기능을 제공
- 처음 VPC를 만들면 인터넷 게이트웨이가 연결되어 있지 않으므로, 직접 인터넷 게이트웨이를 만들고 VPC와 연결해야함
- 하나의 VPC는 하나의 인터넷 게이트웨어만 연결할 수 있음
라우팅
- VPC의 네트워크 트래픽을 전달할 위치를 결정하는데 사용되는 규칙
- 트래픽을 전달할 IP주소 범위(대상 주소)와 트래픽을 전송할 게이트웨이, 네트워크 인터페이스 또는 연결(대상)을 지정
- VPC는 소프트웨어 함수로 IP 라우팅을 구현 ⇒ 사용자는 라우팅 테이블만 관리
- 라우팅 테이블: 라우팅 집합으로, 서브넷과 연결할 수 있음
- 기본 라우팅 테이블: VPC와 함께 자동으로 제공되는 라우팅 테이블
기본 VPC인 경우, local 및 igw로의 라우팅을 포함
기본 VPC가 아닌 경우, local 라우팅만 포함
보안 그룹(sg, security group)
- 온프레미스의 방화벽 기능을 수행
- 인스턴스의 ENI에서 송수신하는 트래픽을 제어
- 모든 ENI는 최소 한 개 이상의 보안 그룹과 연결되어야 하고, 보안 그룹은 여러 ENI와 연결될 수 있음
- 생성할 때 보안 그룹 이름, 설명, 포함될 VPC를 저장하고, 생성 후에는 인바운드, 아웃바운드 규칙을 지정
- 상태 저장 방화벽 역할: 보안 그룹이 트래픽을 한 방향으로 전달되도록 허용할 때 반대 방향의 응답 트래픽을 지능적으로 허용
예: 웹 클라이언트에서 HTTP(S)로 요청을 허용했다면 요청에 대한 응답도 허용
NACL(Network Access Control List)
- 보안 그룹과 유사
- 원본또는 대상 주소의 CIDR, 프로토콜, 포트를 기반으로 트래픽을 인바운드, 아웃바운드 규칙으로 제어 ⇒ 방화벽과 같은 역할
- VPC에 삭제할 수 없는 기본 NACL이 있음
- 상태 비저장
- NACL을 통과한 연결 상태를 추적하지 않음
- 모든 인바운드와 아웃바운드 트래픽의 허용 규칙을 별도로 작성해야 함
- 규칙을 적용할 때 규칙 번호의 오름차순으로 처리
ELB(Elastic Load Balancing)
- AWS에서 제공하는 로드 밸런서 서비스
- 응용 프로그램으로 트래픽을 오드 밸런싱 함
- 트래픽을 보내는 서버가 멈추지 않고 실행 중인이지 정기적으로 확인해 가용성을 확인
- 기능 : 부하 분산, 대상 모니터링, 보안 기능
ELB 유형
Application Load Balance(ALB)
- HTTP 트래픽과 HTTPS 트래픽의 부하 분산이 가능
- 레이어 7(응용 프로그램 계층)로 동작하므로 마이크로 서비스나 컨테이너 등 다양한 응용 프로그램에도 대응 가능
Network Load Balance(NLB)
- 레이어 4(전송 계층)에서 동작하므로 HTTP/HTTPS 외에 TCP, UDP, TLS 트래픽의 부하 분산도 가능
- 수백만 건 이상 요청이 발생하는 대규모 트래픽에서도 속도가 빠름
Gateway Load Balance(GWLB)
- AWS에서 제공하는 타사 보안 제품의 배포 및 관리 가능
- 레이어 3(네트워크 계층)에서 동작
- 기존 NLB 및 VPC 피어링, Transit Gateway에서 구현하던 아키텍처를 더욱 단순하게 구현 가능
오토 스케일링(Auto Scaling)
- 애플리케이션의 부하(load)를 처리할 수 있도록 EC2 인스턴스를 자동으로 증가 또는 감소시켜주는 서비스
NAT Gateway(Network Address Translation Gateway)
- 프라이빗 IP주소를 퍼블릭 IP주소로 변환하는 것
- 프라이빗 서브넷에 있는 자원은 일반적으로 인터넷과 통신할 수 없음
⇒ NAT Gateway 사용
베스천 호스트(Bastion Host)
-
내부와 외부 네트워크 사이에서 일종의 게이트 역할을 수행하는 호스트
-
내부 네트워크와 외부 네트워크 사이에 위치하는 게이트웨이
-
보안 대책의 일환으로 사용
-
내부 네트워크를 겨냉한 공격에 방어하도록 설계
-
접근 제어 기능과 더불어 게이트웨이로서 가상 서버의 설치, 인증, 로그 등을 담당
-
방화벽 호스트
RDS(Relational Database Service)
- 관계형 데이터베이스를 제공하는 서비스
- MariaDB, MS-SQL, Oracle, MySQL, PostgreSQL 사용 가능
- 백업, 소프트웨어 패치, 자동 장애 감지 및 복구 관리
- Magnetic(싸고 느림), SSD(중간), PIOPS(비싸고 빠름) 유형으로 제공
서브넷 그룹을 만들어야 생성이 가능
→ 서브넷 그룹은 두 개 이상의 가용 영역에 각 하나의 서브넷 이상이 필요
S3(Simple Storage Service)
- 업계 최고의 확장성, 데이터 가용성 및 보안과 성능을 제공하는 객체 스토리지 서비스
- 데이터 레이크, 웹사이트, 클라우드 네이티브 애플리케이션, 백업, 아카이브, 기계 학습 및 분석과 같은 다양한 사용 사례에 대한 원하는 양의 데이터를 저장하고 보호
- 99.999999999(9가 11개)의 내구성을 제공하도록 설계되었으며, 전 세계 수백만 고객을 위해 데이터를 저장
- 다양한 스토리지 클래스 제공
- S3 Intelligent-Tiering: 접근 빈도에 따라 4개의 접근 계층으로 나눠 비용 절감
- S3 Express One Zone: 가장 자주 액세스하는 데이터를 위함
- S3 Standard-Infrequent Access(S3 Standard-IA)/S3 One Zone-Infrequent Access(S3 one Zone-IA): 자주 액세스하지 않는 데이터를 위함
- S3 Glacier Instant Retrieval: 즉각적인 액세스가 필요한 아카이브를 위함
- S3 Glacier Flexible Retrieval(이전 S3 Glacier): 즉각적인 액세스가 필요하지 않고 거의 액세스 하지 않는 장기 데이터를 위함
- Amazon S3 Glacier Deep Archive(S3 Glacier Deep Archive): 클라우드에서 가장 저렴한 스토리지로 몇 시간만에 검색 가능한 장기간 아카이브 및 데지털 보존을 위함
- 수명 주기를 설정해서 수명이 다한 객체를 만료하거나, 다른 S3 스토리지 클래스로 전환하는 것이 가능
- 객체 잠금을 사용하여 객체 변경 및 삭제에 대해 보호하는 것이 가능
스토리지 클래스
-
S3 Standard : 자주 접속하는 데이터를 위한 높은 내구성, 가용성 및 성능을 갖춘 객체 스토리지 제공
-
S3 Standard-IA : 자주 접근하지는 않지만 필요할 때 빠르게 접근해야 하는 데이터에 접합, S3 Standard의 우수한 내구성, 높은 처리량 및 짧은 지연시간을 저렴한 GB당 스토리지 요금과 GB당 검색 요금으로 제공
- AWS 리소스를 모델링하고 설정하여 리소스 관리 시간을 줄이고 AWS에서 실행되는 애플리케이션에 더 많은 시간을 사용하도록 해주는 서비스
- 필요한 모든 AWS 리소스를 설명하는 템플릿을 생성하면 CloudFormation이 해당 리소스의 프로비저닝과 구성을 담당. AWS 리소스를 개별적으로 생성하고 구성할 필요가 없으며 어떤 것이 무엇에 의존하는지 파악할 필요 없음
- 장점 : 인프라 관리 간소화, 신속하게 인프라 복제, 인프라 변경 사항을 쉽게 제어 및 추적