시스템 기반
어플리케이션을 사용자가 24/365일 이용할 수 있는 환경을 제공하는 기술 요소
- 주요 구성요소
- 서버
- 네트워크
- UPS
- 항온항습장치
- 물리적 보안
- 재해대책
데이터센터
시스템 기반 환경을 제공하기 위해 구성요소를 제공하는 시설
- 분류
- IDC(Internet Data Center)
- CDC(Cloud Data Center)
- 유형
클라우드 컴퓨팅
원격 컴퓨터의 자원을 활용, 사용한 만큼 비용 지불
- 장점
- 초기 투자 비용이 없고, 사용한 만큼만 비용 지불
- 인프라 용량의 정확한 추정이 필요 없음
- 서비스 구축의 속도 및 민첩성 향상
- 클라우드 서비스 선택 주의사항
- 데이터 저장 위치
- 온프레미스 vs 클라우드 비용 비교
- 초기 비용 = 클라우드 ↓
- 유지 비용 = 온프레미스 ↓
- 범용성이 없는 디바이스 및 특수 플랫폼은 클라우드 이용 불가
- 서비스 유형
- IaaS(Infra as a Service)
- 서버, OS, 네트워크, 저장소 등 인프라 환경 제공
- PaaS(Platform as a Service)
- 인프라에 대한 관리는 줄이고 개발에 집중 할 수 있는 소프트웨어 개발 운영 환경 제공
- SaaS(Software as a Service)
- 클라우드 벤더가 제공하는 시스템 및 소프트웨어를 직접 사용
- 인프라, 소프트웨어 구축 시간을 매우 단축
AWS 주요 서비스
컴퓨팅 서비스
- AWS EC2(Elastic Compute Cloud) - IaaS
- 다양한 사양의 가상머신(=인스턴스)를 생성해 사용하게 해주는 서비스
- 특징
- 1~수천 개까지 확장 가능
- 모든 리전 사용 가능
- 사용량에 따른 시간 단위 비용 과금
- 비용을 절감할 수 있는 비용 모델이 존재(온디맨드, 스팟, 예약)
- Linux / Window OS 제공 및 직접 소프트웨어 설치 가능
- 유형별 특징
- 범용 - 균형 있는 컴퓨팅, 메모리 및 네트워킹 리소스 제공
- 컴퓨팅 최적화
- 스토리지 최적화
- GPU
- 메모리 최적화
- EC2 인스턴스 구매 옵션
- 온 디맨드 - 필요 시 바로 생성 후 사용 하는 방식으로 초 단위 비용 지불
- 예약 인스턴스 - 1년 ~ 3년 기간에 대해 약정을하고 온디맨드 보다 최대 75% 저렴한 비용 지불
- 스팟 인스턴스- 경매 방식의 인스턴스로 스펙을 정해 비용을 입찰하고 입찰된 사용자에게 인스턴스 할당
- 전용 인스턴스 - 고객 전용 하드웨어에서 인스턴스 서비스 제공
- 보안그룹
- 인스턴스에 대한 인바운드, 아웃바운드의 네트워크 트래픽 제어 역할을 하는 가상의 방화벽
- 하나의 EC2 인스턴스 당 최대 5개의 보안그룹 할당
- 하나의 VPC당 생성할 수 있는 보안그룹의 기본 한도는 500개
- 하나의 보안그룹 당 추가 할 수 있는 룰은 최대 50개
- 네트워크 트래픽에 대한 허용 만 가능하며 차단 은 설정 불가
- 차단 기능을 적용하기 위해서는 VPC의 네트워크 ACL을 통해 서브넷 수준에서 제어 가능
- default 보안 그룹은 default 보안 그룹 사이의 모든 프로토콜 및 포트에 오픈되어있다.(Private 사용 시)
- 인스턴스 생성 실습
- IAM을 통한 계정 생성
- EC2 인스턴스 생성
- 키페어, 보안그룹 지정
- 인스턴스 시작
- 인스턴스 중지
- 인스턴스 종료(Destroy)
- 로드 밸런싱 실습(Apache HTTP server)
- 사용 VPC 선정
- 실습 시 등록하는 모든 요소들의 VPC는 동일한 VPC로 고정
- 로드 밸런싱할 EC2 서버 생성
- EC2 탭에서 대상 그룹을 생성해 로드 밸런싱 대상들을 하나로 묶음
- 로드밸런서에 대상 그룹을 추가하고 생성
- 로드밸런서 생성이 완료 되었다면 로드밸런서의 DNS를 통해 웹서버 반응 테스트
- 로드 밸런서에 등록이 완료된 대상 그룹은 상태 값이 사용 중으로 변경된다.
- 예외적으로 EC2 서버를 Private로 생성 하고 로드밸런서를 Public으로 구성할 경우
- 먼저 Public 주소를 가진 EC2 서버를 통해 서버 세팅 후 이미지로 만들어 Private EC2 서버를 구성한다.(Private 주소에서는 외부 망 연결이 되지 않아 패키지 설치 불가)
- AWS Auto Scaling
- 서버의 특정 조건에 따라 Auto Scaling
- 실행 중인 EC2 인스턴스의 수량을 일정하게 유지
- 기능은 무료이나 인스턴스 수량 증가로 인한 비용 발생
- Scale up - 단일 시스템에 대한 하드웨어 사양 변경
- Scale out - 시스템 수량을 변경(분산 시스템)
- AWS Lightsail
- VPS(가상사설서버)
- 간단한 웹 서버 운영 시 사용
- AWS Workspace
- 데스크톱 가상화 서비스
- 문서 및 데이터를 서버에 보관
네트워킹 서비스
- Amazon Route 53
- 클라우드 기반 DNS 서비스
- 사람이 읽을 수 있는 도메인 이름을 실제 접속에 필요한 IP로 변환
- 로드 밸런서, 라우팅, 도메인 구매 지원
- Amazon VPC
- 가상 사설 네트워크 인프라를 클라우드 내 구성
- 네트워크를 이용한 접근 제어
- DHCP, VPN, 인터넷 게이트웨이 사용 가능
- Amazon Direct Connect
- 기존 온프레미스 인프라와 AWS 를 낮은 지연으로 연결시켜 데이터 및 정보 공유
- Amazon ELB(Elastic Load Balancer) 단일 가용 영역 또는 여러 가용영역에서 네트워크 트래픽 분산
- 로드밸런싱
- 네트워크 트래픽을 하나 이상의 서버나 장비로 분산하기 위한 기술
- 로드 밸런싱 방식
- 라운드 로빈(Round Robin) - 현재 연결 세션과 무관하게 순차 연결 전달
- 해쉬
- 해시 알고리즘을 사용한 로드 밸런싱 방식 클라이언트(세션 유지)
- 최소 연결 우선
- 현재 연결된 세션 수에 따라 부하 분산(세션 보장 X)
- 응답 시간 우선
- 빠른 응답이 가능한 서버로 세션 연결(세션 보장 X)
- L4 Load Balancer 역할 수행
- 부하분산 대상
- 3가지 방식의 로드밸런서 제공
- Application Load Balancer - 7계층(App) LB으로 웹서버에 주로 사용
- Network Load Balancer - 4계층(Transport) LB
- Classic Load Balancer
- 별도의 서비스가 존재하지 않고 EC2 등 서비스에서 설정 가능
스토리지
- DAS(Direct Attached Storage) - 케이블 직접 연결 방식
- NAS(Network Attached Storage) - 네트워크 연결 방식
- 파일 수준 데이터 저장
- OS 연결 시 파일 서버로 표현
- 네트워크로 파일시스템까지 만들어서 디렉토리 공간을 공유(NFS)
- SAN(Storage Area Network) - 저장 공간 네트워크
- 확장 용이
- 대규모 엔터프라이즈 환경에 적합한 고속 전용 네트워크로 구성되어 빠른 속도
- 네트워크로 스토리지 자체를 제공, 블록 수준 데이터 저장(=iSCSI)
- OS 연결 시 디스크로 표현
클라우드 스토리지
- 블록 스토리지 - 인스턴스에 직접 연결해 사용(EBS)
- 오브젝트 스토리지 - 인스턴스와 관계 없이 사용하는 저장 장치(S3)
- 파일시스템 기반 스토리지 - 인스턴스 사이의 데이터 공유 시 사용(EFS)
스토리지 서비스
- Amazon S3
- 범용 스토리지
- 데이터 보관 및 정적 웹 사이트 호스팅 제공
- 버킷 이름 작성 시 모든 AWS 범위에서 겹치지 않는 고유의 이름으로 지어야 한다.
- 버킷 비우기 - 버킷 내 모든 자료 삭제
- 사용 용도에 맞는 클래스를 이용해 스토리지 최적화 가능
- Amazon S3 Glacier
- 사용 빈도가 낮은 데이터 보관용
- 비용이 저렴, 무제한 데이터 보관
- Amazon EBS(Elastic Block Store)
- EC2 등 서버에 스토리지로 추가해 데이터 보관
- SSD를 사용해 입출력 속도가 빠름
- 마그네틱의 경우 발생하는 I/O 횟수에 따라 비용 과금
- EC2 인스턴스와 독립적으로 사용 가능하며 다른 EC2 인스턴스에 교체 가능
- 데이터는 영구적으로 저장되며, 원하는 가용 영역에 생성 가능
- 백업된 스냅샷에서 EBS 볼륨을 생성/복원 가능
- 볼륨 유형
- 범용 SSD - 다양한 트랜잭션 워크로드 처리
- 프로비저닝된 IOPS - 지연 시간에 민감한 고성능 처리
- 처리량 최적화 HDD - 처리량 집약적 HDD
- 콜드 HDD - 액세스 빈도가 낮은 저비용 HDD
- 마그네틱 - 빈도가 낮으며 성능 낮은 HDD
- Amazon Storage gateway
- 온프레미스 데이터를 클라우드로 저장 및 보관하기 위한 Gateway
- Amazon Snowball
데이터베이스
여러 사람에 의해 공유되어 사용될 목적으로 통합 관리되는 데이터 집합
- DB 트랜잭션 원칙(ACID)
- Atomic(원자성)
- Consistency(일관성)
- Isolation(격리성)
- Durability(내구성)
- AWS DB 서비스
- Amazon RDS
- 관계형 데이터베이스 서비스 제공
- 서비스를 직접 관리하지 않고 아마존이 관리하는 DB
- 하드웨어 프로비저닝
- DB 설정
- 패치 / 백업
- 장애대응/재해복구
- 제공 DBMS
- Amazon Aurora - MySQL, PostgreSQL 호환
- MySQL
- PostgreSQL
- MariaDB
- Oracle DB
- SQL Server
- Amazon DynamoDB
- NoSQL 서비스
- 대량 데이터의 저장 및 분석을 위한 서비스
- 무중단 확장 제공
- Amazon ElasticCache
- Amazon RedShift
AWS 기본 용어
- Region
- 물리적으로 구축된 AWS 서비스 지역 분류
- 리전 별로 지원 기능이 다를 수 있음
- 가용 영역
- = 데이터 센터
- 하나의 영역 아래 여러개의 가용 영역이 존재
- 리전 내 각각의 가용 영역은 물리적으로 떨어져 있음
- 엣지 로케이션
- CDN 을 위한 캐시 서버
- AWS CloudFront를 위해 사용
VPN(Virtual Private Network)
큰 규모 조직의 네트워크가 분산되어 있을 경우 각 네트워크를 연결
암호화 기술을 적용시켜 보안 강화
클라우드와 온프레미스 간 연결을 통해 보안을 강화한 하이브리드 클라우드 구축
VPC(Virtual Private Cloud)
직접 정의 가능한 가상 네트워크에서 AWS리소스를 구동할 수 있는 논리적으로 격리된 네트워크
- 주요 설정
- IP 주소 범위
- 퍼블릭 IP
- 인터넷을 통해 연결할 수 있는 IP 주소
- EC2 생성 시 옵션으로 Public IP 사용 여부를 선택
- 재부팅 시 새 IP 주소 할당
- 프라이빗 IP
- VPC에서 시작된 인스턴스 서브넷 범위에서 자동 할당
- Elastic IP
- 동적 컴퓨팅을 위해 사용되는 고정 퍼블릭 IP 주소
- 실행, 중지된 인스턴스, 분리된 인터페이스 연결 시 요금이 부과되며 최대 5개 사용 가능
- 서브넷
- VPC 내에서 동일한 대역으로 구분되는 네트워크 영역
- 퍼블릭 서브넷
- 네트워크 트래픽이 게이트웨이로 라우팅되는 서브넷
- 퍼블릭 IP + 퍼블릭 서브넷 = 외부 망 사용 가능
- 프라이빗 서브넷
- 네트워크 트래픽이 게이트웨이로 라우팅되지 않는 서브넷
- NAT 게이트웨이 설정이 된다면 Private 망에서도 외부 망 사용이 가능
- 라우팅 테이블
- 아웃바운드 트래픽에 대한 경로 지정
- 서브넷 및 VPC 간 통신을 위해 구성
- 보안 그룹 / 네트워크 ACL
- IP와 포트를 기준으로 통신을 허용 및 차단
- ACL과 보안그룹이 같이 설정된 경우 = ACL > 보안그룹
- 보안 그룹
- 인스턴스 레벨 접근 규칙 설정
- 허용만 설정
- 반환 트래픽 허용
- 네트워크 ACL
- 서브넷 레벨 접근 규칙 설정(연결된 서브넷의 모든 인스턴스에 자동 적용)
- 허용 및 거부 규칙 설정 가능
- VPC 피어링
- 서로 다른 VPC 사이의 트래픽을 라우팅할 수 있게 VPC 간의 네트워크 연결 제공
- 리전 사이의 VPC 피어링을 지원
- VPC 피어링 후 실제 연결까지 하려면 라우팅 테이블에서 피어링 된 VPC의 IP를 추가해 등록해주는 작업이 필요
- NAT 게이트웨이
- 내부 IP 주소를 외부 IP주소로 변환해주는 서비스
- 프라이빗 망에서 보안상 중요한 서비스의 패치나 보안 업데이트가 인터넷으로 제공되는 경우 설정해 받을 수 있도록 만들어준다.
- NAT 인스턴스로 대체 가능(퍼블릭 서브넷에서 직접 관리하는 인스턴스)
- VPC Endpoint
- 특징
- AWS에 사설 네트워크 구축
- 회사와 AWS간 VPN을 연결하거나 가상 네트워킹 구현
- 모든 리전에서 이용가능
- AWS를 회사 인프라의 일부처럼 사용 가능
- VPC 자체 비용은 발생하지 않으나 네트워크 송수신에 따른 비용 발생
- VPC 피어링을 통해 VPC 끼리