(다음 인용문들은 전부 AWS의 공신 사이트에서 가져온 것이다.)
클라우드 컴퓨팅은 IT 리소스를 인터넷을 통해 온디맨드로 제공하고 사용한 만큼만 비용을 지불하는 것을 말합니다. 물리적 데이터 센터와 서버를 구입, 소유 및 유지 관리하는 대신, Amazon Web Services(AWS)와 같은 클라우드 공급자로부터 필요에 따라 컴퓨팅 파워, 스토리지, 데이터베이스와 같은 기술 서비스에 액세스할 수 있습니다.
-
온디맨드란?
- Wikipedia를 보면 주문제작 같은 의미로 볼 수 있다.
- 필요에 따라 요청하고, 그 이후 자원을 제공하는 형태 - 미리 제공하지 않음
-
온프레미스 vs 클라우드
- 나중에 읽으면 좋을 내용 - AWS 클라우드와 온프레미스 비용 비교 모델 만들기
- geeksforgeeks - On Premises VS On Cloud - 아래는 요약
- 유지보수: 회사가 유지보수 해아 하는가?
- 온프레미스: Yes - (비용 더 듬)
- 클라우드: No
- 데이터 보안: 제 3자(CSP)가 접근 가능한가?
- 온프레미스: No - (보안성 높음 - 회사 외부에선 접근 불가)
- 클라우드: Yes
- 확장성: 확장/축소가 쉬운가? - 비용 문제로도 볼 수 있음
- 온프레미스: No - (물리적 확장 필요)
- 클라우드: Yes
- 초기 투자 비용: 초기 투자 비용이 높은가?
- 온프레미스: Yes - (비용 더 듬)
- 클라우드: No
- 유지보수: 회사가 유지보수 해아 하는가?
- 그래서 온프레미스, 클라우드는 상황에 따라 다른 선택을 할 수 있다.
-
클라우드 컴퓨팅의 이점
- 민첩성
-
단 몇 분 만에 기술 서비스를 배포할 수 있으며 이전보다 몇 백배나 더 빠르게 아이디어를 구현할 수 있습니다.
-
- 탄력성
-
실제로 필요한 만큼 리소스를 프로비저닝하면 됩니다. 비즈니스 요구가 변화함에 따라 이러한 리소스를 확장하거나 축소하여 용량을 즉시 늘리거나 줄일 수 있습니다.
-
- 비용절감
-
사용한 만큼만 IT 비용을 지불할 수 있습니다. 또한 규모의 경제 덕분에 직접 운영할 때보다 가변 비용이 훨씬 더 저렴합니다.
-
- 몇 분 만에 전 세계에 배포
-
클라우드를 사용하면 몇 분 만에 새로운 지리적 리전으로 확장하고 전 세계에 배포할 수 있습니다 예를 들어 AWS는 전 세계에 인프라가 있으므로 사용자는 클릭 몇 번으로 여러 물리적 위치에 애플리케이션을 배포할 수 있습니다
-
- 민첩성
-
IaaS, PaaS, SaaS
-
클라우드 인스턴스
- AWS는 가상 머신 기술을 사용해 인스턴스를 제공
-
클라우드 컴퓨팅에서 인스턴스는 타사 클라우드 서비스에서 제공하는 서버 리소스입니다. 온프레미스에서 물리적 서버 리소스를 관리하고 유지할 수도 있지만, 그럴 경우 비용이 많이 들고 비효율적입니다. 클라우드 제공업체는 데이터 센터에서 하드웨어를 유지 관리하고 인스턴스라는 형태로 컴퓨팅 리소스에 대한 가상 액세스를 제공합니다.
-
클라우드 인스턴스는 가상 머신 기술을 사용하여 물리적 컴퓨팅 인프라를 추상화합니다.
- 어떤 가상화 기술인지는 아래 Xen, KVM, HVM, PV 키워드로 찾아보기 (나도 아직 모름, 이런거 쓰는거 같긴 함)
(다른 클라우드도 상당수 개념을 공유함)
-
- 서비스가 제공되는 지역에 따라 글로벌/리전 서비스로 분류
- 글로벌 서비스: 데이터 및 서비스를 모든 인프라가 공유
- CloudFront
- IAM
- Route53
- WAF
- 지역 서비스: 특정 리적을 기반으로 데이터 및 서비스 제공
- 대부분의 서비스, S3(접근은 글로벌하나 데이터 자체는 리전에 종속)
- ARN(Amazon Resource Number)
-
AWS 리소스를 고유하게 식별합니다.
-
-
리전 및 가용 영역(AZ) - 참고
- 리전
-
AWS가 전 세계에서 데이터 센터를 클러스터링하는 물리적 위치를 리전이라고 합니다.
- AWS 클라우드 서버의 물리적 위치
- 예시: 미국 동부(버지니아 북부):us-east-1, 아시아 태평양(서울):ap-northeast-2
-
- 사용 가능한 서비스 (리전 별로 제공하는 서비스가 다를 수 있음)
- 법률 (ex: "한국의 OO사업 데이터는 한국에만 저장해야 한다" 같은 경우)
- 네트워크 속도
-
- 가용 영역(AZ)
-
논리적 데이터 센터의 각 그룹을 가용 영역이라고 합니다.
- 리전의 하위 단위, 하나의 리전은 최소 3개의 가용 영역을 가짐
- (이전에는 2개였던거 같은데, 아마 늘린듯?)
- 매우 빠른 네트워크로 연결되어 있음
- 재해에 대한 대비
- 각 사용자 계정별로 표시되는 리전과 실제 리전이 다름
- 사용자 A는 AZ A,B,C가 물리적 1,2,3, 사용자 B는 물리적 3,2,1일수 있음
- 보안/트래픽 분산 목적
-
- 리전
-
-
AWS Identity and Access Management(IAM)를 사용하면 AWS의 서비스 및 리소스에 액세스할 수 있는 주체를 지정하고 세분화된 권한을 중앙에서 관리하며 액세스 권한을 분석하여 AWS 전체의 권한을 세분화할 수 있습니다.
- 글로벌 서비스 - 모든 리전에 적용됨
- 특징
- 권한 제어
- 누가 무엇(리소스)에 어떤 행동(IAM policies, 읽기/쓰기 등)을 할 수 있는지 제어 가능
- 사용자 생성 및 관리
- 보안 설정
- 권한 제어
- (일단 이정도만 정리, 실제로 사용하게 되면 추가로 정리하기)
-
-
- VPC(Virtual Private Cloud): 클라우드 환경의 가상 네트워크
- 외부와 격리된 네트워크를 만들기 위해 사용
- 기본적으로 VPC 내부 영역에는 Public하게 접근 불가능
- 리전 단위
- VPC의 구성 요소 - 대표적인 부분만
- 서브넷
- VPC의 하위 단위, VPC에 할당된 IP를 더 작은 단위로 분할
- 하나의 서브넷은 하나의 AZ에 위치
- 퍼플릭 서브넷: 외부에서 인터넷을 통해 연결할 수 있는 서브넷
- 인터넷 게이트웨어(IGW)를 통해 외부의 인터넷과 연결되어 있음
- 외부에 노출되어야 하는 인프라 (서버 등)
- 프라이빗 서브넷: 외부에서 인터넷을 통해 연결할 수 없는 서브넷
- 외부에 노출될 필요 없는 인프라 (DB 등)
- 인터넷 게이트웨이(IGW)
- VPC가 외부와 통신할 수 있는 경로를 제공
- 한 VPC에 하나만 존재할 수 있음
- 라우팅 테이블(Route Table)
- VPC 내의 트래픽을 어떻게 라우팅할지 결정하는 요소
- 각 서브넷은 하나의 라우팅 테이블을 가진다.
- 보안 그룹(Security Group)
- NACL과 함께 방화벽 역할을 하는 서비스
- Port를 허용할 수 있음 (인바운드/아웃바운드)
- 기본적으론 비활성화
- Deny는 불가능 - 명시적으로 허용하거나 명시하지 않아 비활성화만 가능
- Stateful해서 인바운드로 들어온 요청을 기억하고 응답을 보낼때, 아웃바운드에 없어도 통과시켜줌 (인바운드에서 통과되었으므로)
- 한 리소스에 여러 보안 그룹 적용 가능
- 리소스에 적용 (생성 자체는 독립적으로 가능)
- NACL(Network Access Control List)
- 방화벽 역할
- 서브넷 단위
- 포트 및 IP를 Deny 가능
- 외부 공격 등 막을 수 있음
- Stateless해서 인바운드에 허용해도 아웃바운드에서도 검사함 (SG보다 깐깐함)
- 규칙으로 설정하는데, 겹치는 부분은 번호가 낮으면 그걸 사용
- (CSS z-index 역순으로 하는 느낌?)
- NAT Gateway/Instance
- Private 인스턴스가 외부의 인스턴스와 통신하기 위한 통로
- 퍼블릭 서브넷에 있어야 함(외부와 통신을 위해)
- NAT Instance: 단일 EC2 인스턴스에서 제공 (잘 사용 안함)
- NAT Gateway: AWS에서 제공하는 서비스
- Bastion Host
- 외부에서 사설 네트워크에 접속할 수 있도록 경로를 확보해주는 서버
- 실제로는 사용 잘 안하고 Session Manager(관리, 감사 용이) 사용함
- VPC Endpoint
- VPC 내부에서 퍼블릭 IP 없이 외부의 AWS 서비스와 통신할 수 있도록 하는 기능 제공
- 인터넷을 통한 방식보다 안전함
- 서브넷
- 참고할만한 이미지
- VPC(Virtual Private Cloud): 클라우드 환경의 가상 네트워크
-
- EC2(Elastic Compute Cloud) 컴퓨팅 플랫폼(IaaS) 제공, 다양한 옵션
- 여러 AWS 서비스와 연동 가능
- Autoscaling, Cloudwatch
- 구성요소
- 인스턴스
- 실행중인 머신
- 인스턴스 자체의 저장 공간도 있음 (EC2와 생명주기 공유, Auto~ 해서 바뀌면 없어짐)
- EBS(Elastic Block Storage)
- 영구 블록 스토리지
- EC2 인스턴스와 별개의 서비스(네트워크로 연결됨, 다른 생명주기, N;N 관계)
- AZ 단위, 같은 AZ 내의 EC2만 통신 가능
- 다양한 타입 제공
- Snapshot
- 특정 시간 EBS 상태의 저장본
- 스냅샷을 통해 EBS 복구 가능
- S3에 보관
- 증분식 저장(변화된 부분만 저장)
- AMI(Amazon Machine Image)
- EC2를 실행하기 위한 필요한 정보를 모은 단위
- 스냅샷을 기반으로 AMI 구성 가능
- AMI를 사용해 EC2 복제, 다른 리전 or 계정으로 전달 가능
- 보안 그룹: (위에서 설명함)
- ELB(Elastic Load Balancer)
- 핵심은 네트워크 트래픽 분산, 그리고 보안(로깅, 차단 등), 가용성 등 기능을 제공한다.
- ALB(L7), NLB(L4), GLB(L3+L4)
- 인스턴스
-
- S3(Simple Storage Service) 객체 스토리지 서비스, 고가용성, 내구성, 확장성 보장
- 블록, 객체, 파일 스토리지는 어떻게 다른가요?
- 객체: 객체(개별 데이터 단위) 단위로 저장, flat구조(검색 쉬움), 상세(커스텀 추가 가능) 메타데이터, 수정 불가능(덮어쓰기)
- 블록: 블록 단위로 저장, flat함, 대용량 데이터에 적합, 수정 용이함, 비용 비쌈, 메타데이터 거의 없음, SAN에서 사용, 파티션으로 분리해서 다양한 OS에서 접근 가능
- 파일: (우리에게 익숙한) 파일의 계층 구조로 구성됨, 메타데이터 제한적임, 파일 크기가 많을수록 성능 저하
- 블록, 객체, 파일 스토리지는 어떻게 다른가요?
- S3(Simple Storage Service) 객체 스토리지 서비스, 고가용성, 내구성, 확장성 보장