클라우드 컴퓨팅이란?
클라우드 컴퓨팅을 사용하면 인프라를 더는 하드웨어로 사용하지 않고, 소프트웨어로 생각하고 사용할 수 있다.
클라우드의 장점은?
1. 초기비용을 가변비용으로 바꿀 수 있다.
초기비용은: 기술 리소스를 사용하기 전에 미리 투자한 비용이다.
가변비용은: 사용한 만큼만 지불하는 비용을 의미한다.
2. 비용을 최적화할 수 있다.
데이터센터의 유지비를 지출할 필요가 없게 되고, 이로 인한 잉여 리소스를 애플리케이션과 고객에 더 집중할 수 있게 된다.
3. 용량을 추정할 필요가 없다.
필요한 인프라 용량을 추정할 필요가 없고, 필요에 따라 축소 및 확장할 수 있다.
4. 거대한 규모의 경제를 활용할 수 있다.
인프라를 소유할 때보다 가변비용이 낮아지고, 사용고객이 많아질수록 할인율이 높아지는 구조
5. 속도 및 민첩성
- 비즈니스 민첩성: 클라우드 컴퓨팅의 유연성 덕분에, 사용자들은 애플리케이션을 더 쉽게 개발하고 배포할 수 있다. 이러한 유연성으로 실현과 혁신에 더 많은 시간을 쓸 수 있다. 데이터센터에서 컴퓨팅을 수행할 경우, 필요한 새 리소스를 확보하는데 일반적으로 몇 주가 걸릴 수 있다. 그러나 클라우드 컴퓨팅을 활용하면 더 쉽게 서비스를 확보할 수 있다.
6. 몇 분 만에 전 세계에 배포
- 빠르게 애플리케이션을 배포하고, 지연시간 또한 최소화할 수 있다. AWS 글로벌 인프라를 사용할 수 있다.
클라우드 컴퓨팅 배포 모델
1. 클라우드
- 클라우드 애플리케이션은 클라우드에 모두 배포되는 것을 의미한다. 클라우드 애플리케이션은 클라우드 내에서 실행되거나, 클라우드 컴퓨팅의 이점을 활용하기 위해서 기존의 인프라에서 클라우드로 마이그레이션을 fully 하거나, 처음부터 서비스를 클라우드에서 시작하는 것을 말한다.
- 클라우드 기반 애플리케이션은 낮은 수준의 인프라를 구축하거나, 인프라를 관리/설계/확장할 필요 없이 높은 수준의 서비스를 활용할 수 있다.
2. 하이브리드
- 일반적으로 많이 사용하는 방식, 기존에 클라우드 기반 리소스와 클라우드에 위치하지 않는 데이터센터와 같은 인프라 간의 애플리케이션을 연결하여 활용하는 방식이다.
- 가장 일반적인 방법은 클라우드와 기존 온프레미스 인프라의 중간으로, 데이터 센터 모델을 활용하면서 클라우드의 이점을 활용할 수 있다
3. 온프레미스(프라이빗 클라우드)
- 클라우드 컴퓨팅이 가진 많은 장점을 제공하진 않지만, 전용 리소스를 필요로 할 때 온프레미스 기능이 필요할 수 있다.
- 대부분의 온프레미스 모델은 리소스 활용도를 높이기 위해 애플리케이션 관리 및 가상화기술을 사용한다는 점에서 Legacy IT 인프라와 동일하게 볼 수 있다.
AWS란?
Amazon Web Service의 줄임말로, 다양한 글로벌 클라우드 기반 제품을 제공하는 보안 클라우드 플랫폼이다.
- 인터넷을 통해 제공되므로, 컴퓨팅, 스토리지, 네트워크, DB 및 기타 IT 리소스와 관리 도구에 대한 온디맨드 액세스를 제공한다.
- 유연성을 제공한다.
AWS환경은 필요에 따라 재구성, 업데이트하거나, 사용패턴이 자동으로 확장 축소되거나, 지출을 최적화하거나, 일시적으로 또는 영구적으로 종료할 수 있다.
- 필요한 개별 서비스에 대해 사용한 만큼만 추가비용을 지불하면 된다. AWS서비스 요금은 자본지출이 아니라 운영비용이 된다.
- AWS 서비스는 빌딩 블록처럼 서로 유기적으로 작동한다. 거의 모든 유형의 애플리케이션 또는 워크로드를 지원하도록 설계되었다. 이러한 서비스는 빠르게 결합하여 정교하고 확장가능한 솔루션을 구축하고, 요구사항에 따라 조정가능한 빌딩블록이라고 할 수 있다.
AWS 기초 서비스는?
AWS 인프라 구성을 AWS 글로벌 인프라라 부르며, 세 가지 요소, 즉 리전, 가용 영역, 엣지 로케이션이라 부르는, 소위 말해 팝 서버라 불리는 것으로 분류할 수 있다.
AWS 글로벌 인프라란?
AWS 글로벌 인프라는 우수한 품질의 글로벌 네트워크 성능으로 유연하고, 안정적이며, 확장 가능하고, 안전한 클라우드 컴퓨팅 환경을 제공하도록 설계되고 구축되었다.
리전이란?
AWS 클라우드의 인프라는 리전을 중심으로 구축된다. 전세계에 31개의 리전이 있다. AWS 리전은 지리적 영역이고, 3개 이상의 가용영역이 있는 물리적 지리 위치이다. 가용영역은 1개 이상의 데이터센터로 구성된다. 리전은 내결합성 및 안전성을 위해 서로 격리되어 있다. 리전 전체의 데이터 복제는 고객이 제어한다. 리전의 통신에는 AWS 백본 네트워크 인프라가 사용된다. 각 AWS 리전은 완전한 이중화 및 네트워크 연결을 제공한다. 하나의 리전의 리소스는 다른 리전으로 자동으로 복제되지는 않는다. 특정 리전의 데이터를 저장하는 경우, 데이터는 해당 리전 내에서만 복제된다. 비즈니스 요구사항에 따라 여러 리전에 데이터를 복제해야 하는 경우, 고객이 복제를 직접 수행해야 한다.
가용 영역은 AWS인프라의 완전히 격리된 파티션이다. 하나 이상의 데이터센터의 클러스터를 의미한다.
- 현재 전 세계에는 99개의 가용 영역이 있다.
- 가용 영역은 개별 데이터 센터로 구성된다.
- 내결함성을 제공하도록 설계되었다.
- 고속 프라이빗 네트워크를 통해 다른 가용 영역과 상호 연결된다.
- 가용 영역은 고객이 선택한다. (데이터센터를 선택할 수는 없다)
복원력을 위해 전체 가용 영역에 데이터와 리소스를 복제하는 것이 좋다.
고가용성: 가용영역을 이용해 고가용성 애플리케이션을 구축할 수 있다.
AWS 데이터센터란?
- AWS인프라의 기반은 데이터센터이다.
- 보안을 고려하여 설계되었고, 고객은 리소스 배포에 사용할 데이터센터를 지정하지 않는다.(고객의 가용한 최소단위는 가용영역)
- 실제 데이터가 상주하는 위치는 데이터센터이다.
고객이 리전을 사용하기 위해 다음과 같은 것들을 고려해야 한다.
1. 데이터 거버넌스, 법적 요구사항
- 현재 법률에 따라 특정 정보를 지리적 경계 내에 보관해야 할 수 있다. 이러한 법률은 컨텐츠 또는 서비스를 제공할 수 있는 리전을 제한할 수 있다. 예를 들어 EU의 데이터 보호지침이 있다. 해당 법률에서 유럽의 데이터는 유럽 외의 서버 및 저장소에 저장할 수 없다. 유럽을 대상으로 서비스를 구성할 경우 유럽 리전을 선택해야 한다. 다른 모든 것이 동일할 경우에는, 일반적으로 애플리케이션에 액세스할 사용자 및 시스템과 최대한 가까운 리전에서 애플리케이션을 실행하고 데이터를 저장하는 것이 바람직하다. 이는 지연시간을 줄이기 위함이다.
2. 고객에 대한 근접성(지연 시간)
3. 리전 내에서 사용 가능한 서비스
- 모든 리전 내에서 모든 서비스를 사용 가능한 것은 아니다. 사용자에게 필요한 서비스가 출시된 경우, 해당 서비스가 리전에 즉시지원되는지 확인하는 것이 선행되어야 한다. AWS는 준비된 리전부터 조금씩 전파되는 식으로 배포된다.
4. 비용(리전 별로 다름)
- 서비스 실행 비용은 선택한 리전에 따라 다를 수 있다.
기초 서비스에 대해 알아보자.
컴퓨팅이란?
1. Amazon EC2(Elastic Computer Cloud), 크기조정이 가능한 컴퓨팅 용량을 가상머신의 형태(VM)로 제공
2. Auto Scailing 사용자의 정의 조건에 따라 EC2 인스턴스를 자동으로 추가하거나 제거할 수 있다. 예를 들어 서비스 트래픽이 출렁일 때, 용량을 추정하지 않고 Scail Out(예를 들어 기존에 코어가 2개인 EC2 컴퓨팅 노드가 있을 때, 네 개의 컴퓨팅파워를 내기 위해 2개의 추가 EC2 컴퓨팅 노드를 프로비저닝하여 컴퓨팅 파워를 내는 것), Auto Scail 방식으로 필요에 따라 컴퓨팅 파워를 조절해 트래픽을 따라갈 수 있다.
3. ECS 컨테이너의 오케스트레이션(?) 서비스로, 컨테이너에 대한 관리를 제공하는 AWS 전용 서비스이다. 컴퓨터는 image라 불리는 형태를 저장하기 위한 중앙저장소가 필요한데, 이 ECR(EC2 Container Registry) 서비스를 이용해서 AWS 클라우드 내에서 이미지를 저장할 수 있다.
4. Elastic Beanstalk - 이용자가 네트워크나 인프라에 대한 지식이 부족하거나, 애플리케이션 코드에 대해서만 관심이 있어 백엔드가 자동으로(파스라 불리는 형태로) 구성되어 연결되었으면 좋겠다고 생각할 때 활용하면 좋다. 초기 환경설정을 한 이후에는 다른 인프라에 대한 구성을 건드릴 필요 없이 애플리케이션 코드에만 집중할 수 있다.
5. AWS Lambda - 서버리스 서비스로, 이용자가 인프라를 관리할 필요 없이 원하는 코드만 올리면 코드가 정상적으로 수행되고 원하는 결과가 리턴되는 것을 말한다. 서버리스 애플리케이션을 구축할 수 있다.
6. Amazon EKS - Kubernetes의 관리형 서비스이다. 컨테이너의 관리형 서비스가 두가지 있는데, 첫번째는 ECS, 두번째는 EKS라 불리는 두 가지의 서비스가 있다.
7. Amazon Fargate - ECS나 EKS에 대한 관리형 인프라가 필요한 부분을 아예 없앤 것이다. 컨테이너의 서버리스 서비스라 보면 된다.
핵심적인 컴퓨팅 서비스 - Amazon EC2란?
Amazon EC2란 클라우드에서 안전하고 크기조정이 가능한 컴퓨팅 파워를 제공한다. 개발자가 보다 쉽게 웹 규모 앱 클라우드 컴퓨팅 작업을 할 수 있도록 설계되었다. 컴퓨팅파워란 전통적으로 가상 또는 온프레미스 환경의 물리적 서버에 의해 제공되었던 기능을 말한다. 클라우드에서는 그 기능을 온프레미스환경과 다르지 않게 제공해준다. EC2 컴퓨팅 리소스를 구성하고자 할 때, Family라 불리는 다양한 유형을 제공해준다.
Elastic Load Balancing이란?
- 수신되는 애플리케이션 또는 네트워크 트래픽을 단일 가용영역 또는 여러 가용 영역의 여러 대상에 분산한다.
- 시간이 지나면서 애플리케이션에 대한 트래픽이 변화하면 로드 밸런서를 자동으로 조정한다.
EC2 Auto Scailing이란?
- 클라우드에서는 컴퓨팅 파워가 프로그래밍 방식의 리소스이다.(즉, 논리적으로 구성할 수 있는 리소스이므로 유연하게 조정할 수 있다.)
- 애플리케이션 가용성을 유지하도록 지원되었다.
- 사용자가 정의한 조건에 따라 EC2를 자동으로 추가하거나 제거할 수 있는 AWS 서비스이다.
- 손상된 EC2 인스턴스 및 비정상 애플리케이션을 감지하고 사용자의 개입 없이 인스턴스를 교체한다.
- EC2 Auto Scailing의 플릿 관리 기능을 이용해 플릿의 상태와 가용성을 유지할 수 있다. 애플리케이션의 요구사항에 따라 트래픽의 규모를 조정할 수 있는 몇가지 방법이 존재한다.
- 수동, 예약, 동적 또는 온디맨드, 예측 등 다양한 조정 옵션을 제공한다.
스토리지 서비스의 종류는?
1. Amazon S3
- 데이터를 버킷이라고 불리는 리소스 내 객체로 저장하는 객체 스토리지이다.
- 버킷이라는 일종의 양동이를 만들고, 양동이 안에서 객체를 저장하고 쓰고 읽고 삭제할 수 있다.
- 단일 객체는 최대 5TB로 제한된다.(갯수는 제한이 없다!)
- 무제한 데이터 저장 가능, 99.99999999% 내구성(매우 뛰어남)
- 버킷 및 객체에 대한 모든 액세스를 추가적으로 제어할 수도 있고, 버킷에서 객체를 생성, 삭제, 검색할 수 있는 사용자를 제어하는 것도 충분히 가능, 버킷과 해당 객체 액세스 로그를 볼 수 있고, 지연시간 최적화, 비용 최소화, 규정 요구사항 준수 등 다양한 필요에 따라 버킷을 저장할 AWS 리전을 선택할 수 있다.
- S3의 서비스 범위는 리전 레벨이다.
2. Amazon EBS
- AWS 클라우드의 EC2 인스턴스에 연결할 영구 블록 스토리지 볼륨을 제공한다.
- 각 볼륨은 가용영역 내에서 복제되므로, 구성요소 내에서 장애가 발생하더라도 안전하고, 고가용성과 내구성을 제공한다.
- 일반적으로 SSD를 선택할 수 있고, 대량의 연결된 데이터(로그 정보, 미디어 스트리밍)를 선택할 경우 하드디스크를 선택하면 효율적으로 스토리지를 연결할 수 있다. (다만, OS 부팅 볼륨은 무조건 SSD 타입을 선택해야 함!!!!)
- 몇 분 만에 스토리지 사용량을 많게/적게 확장할 수 있고, 프로비저닝한 부분에 대해서만 저렴한 비용을 제공하면 된다.
- 특정 시점 스냅샷 기능과 백업 및 복구 기능을 제공해준다. 스냅샷 안에서 얼마든지 새로운 볼륨을 생성할 수 있다.
- 기본적으로 가용영역 레벨의 서비스이기 때문에, 사용자의 서비스가 매우 크리티컬한 서비스여서 다른 리전에 백업이 필요할 경우 스냅샷 기능을 다른 리전으로 복사하는 방법을 사용할 수 있다.
3. 공유 파일 시스템
- 여러 가용영역의 인스턴스에서 실행되는 애플리케이션이 동일한 스토리지를 사용해야 하는 경우
- Amazon EBS는 기본적으로 하나의 인스턴스에만 연결된다.
- Amazon S3는 하나의 옵션이지만, 이상적인 것은 아니다.
- AWS 클라우드 네트워크 안에서 공유 파일 시스템 측면으로 접근하고자 하면, Amazon EFS 및 Amazon FSx를 사용하는 게 좋다.
- 리눅스의 경우 Amazon EFS, 윈도우즈 OS의 경우 Amazon FSx를 사용한다.
비용에 대해
계속해서 늘어나는 환경에서 데이터 저장비용을 줄이고 싶을 때
Amazon S3 Glacier - 데이터 아카이빙, 장기 백업을 위한 스토리지
- S3와 마찬가지로 eleven nine 데이터 내구성을 자랑하고, 엄격한 규제 요구성도 충족할 수 있음
- S3에 있는 데이터는 쿼리를 제공하여, 저장된 아카이브 데이터셋을 직접 분석할 수도 있지만, 데이터에 접근하는데 3~5시간 정도가 소요된다. vulk형 데이터의 경우 12시간 정도가 소요된다.
- Amazon S3 버킷으로 최신 데이터를 활용하고, 30일 후 S3 Glacier에 보관한 후, 5년 후 삭제하는 방식으로 이용할 수도 있다.
DB 서비스에 대해
일반적으로 DB형태를 두 가지로 구분해볼 수 있다.
1. Do it yourself, 비관리형 데이터베이스 서비스
- Amazon EC2의 데이터베이스, 기존의 온프레미스 환경에서 데이터베이스 환경을 설치하여 고가용성 프로그램을 설치하고 사용했듯이 그대로 사용하는 것
- OS에 대한 직접적인 접근이 필요할 때 (특정 애플리케이션의 기능이 필요할 때) 선택할 수 있다
- 서드파티 프로그램을 반드시 설치해야 할 때
2. 관리형 데이터베이스 서비스
- 인프라 관리에 대한 부분을 최소화하고 데이터베이스를 활용하고 싶을 때
- 고가용성 소프트웨어, 다양한 서드파티 소프트웨어 등을 고려하지 않고 체크 한 번으로 구성하고 싶을 때
- 즉 관리에 대한 거의 모든 부분을 AWS에 맡기고 애플리케이션에 집중할 때 선택하면 좋
3. 관계형 데이터베이스(RDS 서비스)
- 클라우드에서 관계형 데이터베이스의 설, 운영 및 확장을 손쉽게 해주는 데이터베이스 서비스
Amazon Aurora, PostgreSQL, MariaDB같은 오픈소스 엔진부터 시작해서 Oracle, SQL서버와 같은 상용 DB엔진까지 그대로 활용 가능하다
* Amazon Aurora란?
- Amazon이 자체적으로 구성한 엔터프라이즈급 관계형 데이터베이스 서비스
- 내부 아키텍처는 완전히 다르지만, MySQL이나 PostgreSQL과 그대로 호환 가능
- 표준 MySQL DB 대비 5배 빠른 성능
- 표준 PostgreSQL DB 대비 3배 빠른 성능
* Amazon DynamoDB란?
- 규모에 관계없이 10밀리초 미만의 지연시간을 가지는 어떤 서비스에서도 빠르고 유연한 DB서비스
- 완전관리형/비관계형 클라우드 DB로, 문서모델/티가스토어모델(?) 모두 지원함
- 사용자가 DB테이블을 생성 조정할 경우에 목표처리를 설정하면 나머지는 시스템에서 알아서 처리됨
- 일종의 서버리스 데이터베이스 서비스이자, 서버리스 NoSQL DB 서비스
- 문서의 저장, 쿼리, 업데이트를 지원해줌(AWS SDK 라이브러리 활용, JSON문서를 DynamoDB 및 테이블에 바로 저장하는 애플리케이션을 작성할 수 있음)
* 그 외에는 Amazon Redshift(빠르고 확장가능한 데이터 웨어하우스), Amazon DocumentDB(MongoDB호환), Amazon Neptune(그래프 DB)등의 서비스가 존재함
네트워크란?
- AWS서비스는 대부분 네트워크 구성을 통해 제공됨
- 네트워크 서비스에 따라 비용, 보안, 가용성 등 많은 부분이 달라짐
1. Amazon VPC(Virtual Private Cloud)
- AWS클라우드 안에서 물리적으로 격리된 섹션을 프로비저닝할 수 있음
2. Amazon Route 53
- 최종 사용자를 인터넷 애플리케이션으로 라우팅하는 안정적인 방법을 제공하는 확장가능한 클라우드 DNS 서비스
3. AWS Direct Connect
- 전용선 연결을 통해 안정적 성능과 대역폭을 확보하고 싶을 때
4. AWS VPN
* Amazon VPC에 대해
- VPC라 불리는 거대한 땅에 서브넷이라 불리는 영역으로 나눠 서비스와 리소스를 배포하는 방식
- 기본적으로 리소스는 외부에서 접근할 수 없음(Private Subnet)
- 서비스 중 외부에서 접근할 필요가 있을 때 (Public Subnet)
보안에 대해
- AWS 클라우드 인프라는 현존하는 플랫폼 중 가장 유연하고 안전한 클라우드 컴퓨팅 환경으로 설계됨
- 고객이 애플리케이션 및 데이터를 신속하고 안전하게 배포할 수 있도록 확정성과 안정성이 뛰어난 플랫폼을 제공
1. 공동책임모델
- 클라우드의 영역은 AWS의 책임이지만, 애플리케이션 영역의 책임은 이용자가 같이 가져간다는 개념
2. IAM
- AWS Identity and Access Management
- AWS 서비스와 리소스에 대한 권한과 인증에 대한 부분을 처리하는 것
3. AWS Organizations
- 고객이 중앙 위치에서 여러 AWS계정을 통합하고 관리할 수 있도록 지원
- 서비스 제어 정책(SCP)을 사용하여 조직의 계정에 대한 권한을 중앙에서 제어
4. Multi-Factor Authentication
요금은?
AWS 프리티어에 대해
1. 최초가입 시 1년 간 무료
- EC2같은 경우, T2 Micro, T3 Micro Family와 같은 오픈소스 운영체제를 기반으로 한달 간 최대 50시간, 1년 무료로 사용 가능
2. 항상 무료
- 12개월이 지나도 만료되지 않고 무료로 사용
- 예를 들어 Lambda와 같은 서버리스 컴퓨팅 서비스를 활용할 때 월별 백만건 요청에 대한 비용은 항상 무료
3. 평가판
- 단기간 적용 가능한 할인 혜택
- 사용량에 따라 비용 청구
'AWS > AWS builders' 카테고리의 다른 글
| Track2) FMOps/LLMOps와 MLOps 차이점 비교 및 생성형 AI 운영하기(작성중) (0) | 2024.02.23 |
|---|---|
| (AWS기초) Amazon EC2로 첫 워크로드 시작하기 (2) | 2024.01.18 |
| (AWS기초) 서버는 맡겨두세요! 스타트업을 위한 AWS로 쉽고 빠르게 웹 애플리케이션 구축하기 (0) | 2024.01.18 |
| (AWS기초) Amazon VPC와 On-premise 연결하기 (0) | 2024.01.18 |
| (AWS기초)초보자를 위한 컨테이너 시작하기 (0) | 2024.01.18 |