2022년 8월 18일~8월 19일, [빅데이터 혁신공유사업] 에 연계되어 AWS Cloud Practitioner Essential 과정을 수강하게 되었다. 나는 평소 클라우드에 대하여 문외한인데, 클라우드라는 개념에 대해서 간단히 배워보고자 과정을 신청하게 되었다.
다음은 8월 18일 Amazon Cloud Practitioner Essentials 코스를 요약정리 한 것이다.
1. Amazon Web Services 소개
<클라우딩 컴퓨팅 개론>
AWS에서 서버를 미리 구축해놓음(데이터 센터)
-> 서버 virtualization : 서버의 일부를 가상화 : 서버를 소프트웨어 개념으로 만듬
-> Resource 형태로 만들어서 제공 (service의 형태으로 제공 : API(어플리케이션으로 만들어서 제공))
- ex : 컴퓨팅을 위해 난 EC2 service를 사용하겠다. 이때 이 service를 통하여 resource를 생성하는데, 이 resource의
가장 대표적 예시가 EC2 instance이다. (ec2 instance 의 예시 ; 가상화된 cpu, memory 등)
- API를 일일이 호출하는 것은 어렵다.
대안 방법 : 1. Console 이용.(GUI 환경으로 제공) 2. CLI(command line interface) 이용 : 명령문 이용하여 이용
3. SDK 이용
AWS의 가장 큰 특징.
- AWS는 인터넷 기반
- 서버를 인터넷 상에 만드는 것은 위험하다. (공격가능성)
-> 별도의 네트워크를 구축했음
- pay as you go!
-> 사용한 만큼만 비용을 지불
<AWS Detail>
- AWS 데이터센터(내에 많은 서버) 의 위치는 공개가 되어있지 않다.
- 어느 서버를 사용할 것인가? 선택 하는데 이용되는 개념이 Region, Edge Location
--cpu memory(ram), network를 가상화 -> EC2 instance(resource), 제공되는 서비스가 EC2 service
- 별도의 네트워크 필요성 -> virtual private cloud(VPC). EC2는 VPC 내에만 만들 수가 있다.
클라우드의 장점?
- 비용절감
- 필요한 인프라 용량을 추정할 필요가 없다.
- 규모의 경제 : 다수 사용자가 동시에 이용하므로 상대적 비용절감
- 구축, 배포가 빠르다.
2. 클라우딩 컴퓨팅 (EC2 - Elastic Compute Cloud)
EC2 instance는 커피숍으로 따지면 직원과 비슷하다.(cashier, barista...)
즉, 각각의 instance가 차지하는 컴퓨팅 용량이 모두 다를 수 밖에 없기 때문에, EC2에서는 서로 다른
인스턴스 유형을 제공한다. ex) 스토리지 최적화, 범용, 엑셀러레이티드 컴퓨팅 등
-인스턴스 코드 : (목적에 따른 알파벳) + 숫자(버전) . nano ~ large(성능, 용량 관련 수준)
EC2 요금제 : on-demand, 스팟(남는 자투리 자원에 대한 세일 / 서버 중단 가능성), 예약 ( 기간 약정 - 저렴) 등
EC2 Auto Scaling
- 컴퓨팅 용량이 부족해지는 경우 ( 데이터가 많이 들어오는 등)
- 1. 수직확장 : ex t3.micro에서 t3.large로 늘리기
- but, 인스턴스가 중단되게 됨, (micro를 중단하게 되므로)
- 2. 수직확장 : 자동으로 같은 기능하는 것을 늘림.
- 서버들마다 모두 다른 ip를 가지게 된다. -> 같은 ip를 가질경우 충돌발생. 이 때 user가 서로 다른 ip를 접근해야 하 는 불편함을 없애기 위해 ELB(elastic load balancing)을 통해 인스턴스에 접근, elb는 알아서 서버에 접근해줌.
- 컴퓨팅 요구사항의 변화에 따라 용량을 조정. / 동적 조정 및 예측 조정 사용. / 최소, 최대 개수는 user가 지정한다.
ELB(elastic load balancing)
-여러 리소스에 트래픽 분산
-user에게 domain 주소(DNS)를 제공. user가 서로 다른 ip를 각각 알 필요가 없다.
AWS 메시징 서비스
'SNS' / 'SQS'
sns : 일대다로, user에게 서버가 메시지를 보냄 (게시 구독 형태)
sqs ; 1대 1, 큐 구조 이용하여 대기열에 있는 메시지를 순서대로 보냄 ex) 주문 이행-대기열 개념.
서버리스 컴퓨팅 서비스
서버에 요구하는 성질들 : 고가용성 / 내결함성/ 내구성 / 확장성
서버리스 컴퓨팅 서비스? 실제로 서버가 없는 클라우드 서비스는 말이 안됨.
- 가상서버 사용 컴퓨팅 : user가 서버구축/ 코딩
- 서버리스 컴퓨팅 : user가 코드만 만들어서 업로드 / AWS가 서버구축 + 확장성 등 다른 기능 구현
- AWS Lambda : 서버를 프로비저닝하거나 관리하지 않고 코드 실행 / 코드가 실행되는 컴퓨팅 시간에 대해서만 비용지불
vs EC2 : user가 instance 만들고, ELB등 스스로 구현을 해야함. / 코드가 돌아가지 않더라고 user가 만든 infra가 돌아가는 한 비용지불
vs AWSLambda : 나머지 infra가 AWS에서 자동적으로 제공되므로 코드만 upload 하면 됨. 비용 또한 코드가 돌아갈 때만 추가됨.
- 일반적으로 항상 요청이 있거나, 24시간 돌아가는 서버를 구축할 때는 EC2가 낫다.
- AWSLambda는 서버리스 중 컴퓨팅에 특화된 서비스
- 완전관리 시스템... 다른말로 하면 커스터마이징에 불리하다.
컨테이너 서비스
Virtual Machine 과 비슷한 것 : EC2 instance
vm을 경량화 시킨 개념이 컨테이너
ex) amazon Elastic Container Service(amazon ECS)
amazon kubernetes services (Amazon EKS)
- 요즘 정말 많이 사용되는 서비스.
3. Global infra
AWS에는 여러 DataCenter 들이 있음.
데이터 센터들을 하나로 묶어서 AZ(availability Zone)이라고 부름. AZ 또한 여러개 존재.
AZ들을 하나로 묶어서 Region이라고 부름.
ex ) 우리나라의 region이름 ; Seoul (ap-northeast-2)
그리고 seoul region 내 4개의 AZ가 있다.
az 이름 : (ap-northeast-2a .~2d)
Edge Location이라는 리전과 독립된 데이터센터가 있다.(이름이 없음, 자동선택)
- 제공되는 서비스가 몇가지 없다.
cloudFront / Route 53 / WAF / shield 등.
- waf / shield : DDos 공격 방어
- Route 53 : DNS 제공
- cloudFront : 컨텐츠 캐싱 (저장)
Region + AZ+ Edge Location을 합해서 Global infra라고 함.
대부분 서버는 리전에서 제공됨.
- 즉, 처음 시작할 때 리전부터 설정한다.
- 결정요인? 법제도 / 근접성 / 리전 내 제공 서비스 / 요금
그래서 비상사태에 대비해(홍수로 az가 잠기는 등), 멀티 AZ를 사용하는 것을 권장. AZ간에는 서로 물리적으로 독립되어있기 때문.
4. 네트워크
핵심 키워드 : VPC(virtual private cloud), Subnet, Gateway
Amazon VPC
고객이 정의한 가상 네트워크에서 리소스를 실행할 수 있다.
영역을 나누는 역할도 할 수 있다. (단위가 subnet이다.)
- 외부에서 접근 가능한 서버 : 퍼블릭워크스테이션
- 외부에서 접근 불가능한 서버 : 프라이빗 워크스테이션
VPC는 기본적으로 외부랑 연결이 안되기 때문에, 퍼블릭 워크 스테이션을 구현하기 위해
Gateway가 필요하다. 이때, 인터넷이랑 연결될 gateway를 internet Gateway라고 한다.
VPC 내의 프라이빗 리소스에 엑세스 하려면 가상 프라이빗 게이트웨이를 사용할 수 있다.
(보호된 인터넷 트래픽(vpn)이 VPC로 들어오게함)
AWS Direct Connect
데이터센터와 고객 간 전용망 개설
NACL(network access control list)
: 가상 방화벽과 같은 개념 (vpc 내부)
- subnet 단위에 설정함
- 기본값 : 허용
보안그룹(방화벽 느낌)
-resource 단위에 설정함
-nacl보다 더 작은 단위에 가해지는 보안체계
-기본값 : 차단! -> 반드시 설정이 되어야 접근이 가능하다.
5. 스토리지 및 데이터베이스
AWS 스토리지 유형
-블록 스토리지 : EC2 instance 와 EBS volume을 연결하여 사용 / 한개씩만 가능 / 용량 제한
-객체 스토리지 : S3에 파일들을 object 단위로 저장
-파일 스토리지 : tree 구조 활용 / EFS를 EC2와 연결하여 사용 / EFS는 여러개 EC2에 연결 가능 / 공유할 때 유용 / 용량이 무제한
블록 스토리지
파일을 동일한 크기의 블록으로 구분.
*EBS : elastic block store : 외장하드와 유사, 블록수준 스토리지 볼륨 제공.
EBS service 내에 volume , snapshot 등 다양한 resource가 존재.
snapshot은 ebs 내 데이터를 백업할 때 사용. 증분 스냅샷(변화량 만 백업을 함)
필요하지 않은 데이터를 볼륨에서 삭제, 스냅샷에 저장 / 다시 필요하면 스냅샷에서 복원할 수 있다.
객체 스토리지
S3
각 객체가 데이터, 메타데이터, 키로 구성
객체를 버킷에 저장. 대표적인 서버리스 서비스.
- 업로드, 검색, 다운로드 기능 제공
요금 : 1. 저장비용 2. 엑세스 비용 -> 오래된 데이터는 액세스 빈도가 줄어듬..
-> 요금제를 변환해가며 비용을 낮출 수 있다.
파일 스토리지 :
amazon elastic file system
빠르지만 비쌈
자주변경되는 데이터 : EBS / EFS -> EC2 와 연결하여 사용
변경되지 않는 데이터 : S3 -> 캐싱과 밀접 / 바로 연결하여 사용 가능(http 프로토콜 이용)
데이터베이스
-관계형 데이터 베이스 : like dataframe
-비관계형 데이터베이스 : 각 객체 별 데이터 저장
amazon RDS(relational data service)
amazon DynamoDB (key- value 데이터베이스)
- 서버리스
-속도가 아주빠르다.
6.보안
AWS identity and Access Management(IAM)
'일상다반사!' 카테고리의 다른 글
2022 여름방학 checklist (0) | 2022.05.10 |
---|