계기
1월 30일부터 2월1일까지 1박 3일로 진행되는 동계 빅데이터 AWS 캠프를 신청했다. 캠프에서 해커톤으로 실제 프로젝트를 해야하기 때문에 기본적인 AWS사전교육 수료를 요구했다.
![](https://velog.velcdn.com/images/rkdghwjd1999/post/fa486c89-3a9e-43db-bb9f-8acc1dd368e0/image.png)
따라서 https://explore.skillbuilder.aws/learn/lp/977/cloud-essentials-learning-plan-korean AWS 공식 사이트에서 제공하는 Cloud Essentials Learning 과정을 수료했다. 과정은 7시간 10분으로 이루어져 있으며 5개의 코스로 나눠져있다. 각 코스마다 강의가 또 세분화 되어있고 , 중간중간 확인 문제들도 있어 내용을 잘 이해하고 있는지 체크한다. 교육에서 배웠던 내용들을 간단하게 포스팅 해보겠다.
다양한 개념
온-프레미스 vs AWS
기업이 자체적으로 IT 인프라를 소유, 관리 및 운영하는 경우를 온-프레미스라고 한다 . 따라서 기업은 자체 데이터 센터를 보유하고 필요한 하드웨어, 서버, 네트워크 장비 등을 구매하고 유지보수해야 한다.
반면에 온-프레미스 방식과 다르게 AWS는 클라우드 컴퓨팅 서비스를 제공하는 아마존의 클라우드 플랫폼이다. 그렇다면 클라우드 컴퓨팅은 무엇인가 ?
클라우드 컴퓨팅이란 IT리소스를 인터넷을 통해 온디맨드로 제공하는것을 말한다. 여기서 온디맨드는 필요한 리소스를 필요한 시간에 제공하는것이다. 따라서 AWS는 사용자가 필요한 만큼의 컴퓨팅 리소스를 유연하게 확장하거나 축소할 수 있도록 하는 서비스를 제공하며, 다양한 클라우드 기반의 서비스를 포함하고 있다. AWS는 인프라를 관리하므로 사용자는 물리적 자원을 구매하거나 유지보수할 필요가 없게된다.
AWS 리전
AWS는 리전이 존재한다. 특징은 다음과 같다.
- 자체데이터 센터 구축
- 리전끼리는 격리
- 여러개 가용영역이 있음
- 가용영역 : 특정 지역 내에서 독립적인 데이터 센터로 구성된 물리적인 영역
AWS 리전은 여러 개의 가용 영역으로 이루어져 있어 사용자는 가용 영역 간에 리소스를 분산 배치함으로써 안정성과 가용성을 높일 수 있습니다.
AWS 다양한 서비스
![](https://velog.velcdn.com/images/rkdghwjd1999/post/a1984edf-7c43-4494-b9a6-17fd5bfe1f9f/image.png)
우선 다양한 서비스를 크게 보자면 위와 같다 .
AWS 컴퓨팅 서비스
Amazon Elastic Compute Cloud(Amazon EC2)
- AWS에서 제공하는 클라우드 컴퓨팅 서비스
- 가상화된 서버에 엑세스하는데 사용하는 서비스
- 높은 수준 유연성과 제어기능 제공
EC2 인스턴스 종류
- 범용 인스턴스 : 컴퓨팅 , 메모리 , 네트워킹 리소스를 균형 있게 제공
- 컴퓨팅 최적화 인스턴스 : 고성능 프로세스를 활용하는 컴퓨팅 집약적 애플리케이션 적합
- 메모리 최적화 인스턴스 : 메모리에서 대규모 데이터 집합 처리하는 워크로드에 적합
- 엑셀러레이티드 인스턴스 : 그래픽처리 , 데이터패턴일치등 cpu보다 빠르게 수행
- 스토리지 최적화 인스턴스 : 데이터 집합에 대한 순차적 읽기 및 쓰기 액세스가 많이 필요한 워크로드를 위해 설계
Amazon EC2 Auto Scaling
EC2 인스턴스의 수를 자동으로 조절하여 애플리케이션의 가용성과 효율성을 향상
Elastic Load Balancing(ELB)
- AWS에서 제공하는 관리형 로드 밸런서 서비스
- 인터넷 트래픽을 여러 Amazon EC2 인스턴스로 분산
- 애플리케이션의 가용성과 확장성을 향상
ECS , EKS , AWS Fargate
3가지 모두 AWS에서 제공하는 컨테이너 관리 서비스이다. 여기서 특히 Fargate는 서버리스 컨테이너 실행을 위한 서비스이다. 여기서 컨테이너는 소프트웨어 응용프로그램과 해당 종속성을 패키징하고 격리된 환경에서 실행할 수 있도록 하는 경량 가상화 기술을 말한다.
AWS Lambda
- 코드를 업로드하고 트리거 기반 실행
- 서버를 관리할 필요 없이 코드를 실행할 수 있는 서비스
- 코드를 실행하는 동안에만 요금 부과
따라서 기존 어플리케이션 호스팅이나 OS 대한 엑세스를 하고자 할때는 주로 EC2를 사용하고 , 단기적 실행 함수/서버관리x에 적합한 상황에서는 Lambda를 사용하는것이 적합하다.
Amazon Elastic Block Store(EBS)
- ECS인스턴스용 블록 수준의 스토리지 서비스
- EC2 인스턴스에 연결된 가상 하드 디스크
- EC2 인스턴스에서 사용되는 운영 체제, 애플리케이션, 데이터 등을 저장하는 데에 활용
- 스냅샷가능 , 복제를 통해 보호 , 암호화 가능
네트워크 서비스
![](https://velog.velcdn.com/images/rkdghwjd1999/post/128bea85-9b43-4507-ab92-0c35366a07de/image.png)
용어
- vpc : 가상의 격리된 프라이벳 네트워크(암호화된 터널을 만들고 사용자의 IP 주소를 숨겨 온라인 익명성을 보장)
- 서브넷 : vpc내에 있는 ip주소 모음(리소스 그룹화)
- 게이트웨이 : 공개된 출입구(예) 컴퓨터 정문)
- DNS 프로세스 : 도메인 이름을 ip주소로 변환
- 보안 그룹 : Amazon EC2 인스턴스에 대한 인바운드 및 아웃바운드 트래픽을 제어하는 가상 방화벽
AWS Direct connect
- AWS와 기업 데이터 센터 간에 전용 및 안전한 네트워크 연결을 제공
- 빠르고 보안 good , 바로 비공개로 연결
스토리지 및 데이터베이스
데이터 베이스 서비스
![](https://velog.velcdn.com/images/rkdghwjd1999/post/49e37b93-09a2-410d-8f0b-d1b1064653c2/image.png)
Amazon RDS
- 자동패치,백업,이중화,장애조치,재해복구, 복잡쿼리가능
Amazon DynamoDB(noSql)
- 키-값 데이터베이스 서비스(NOSQL)
- 단순한방식 , 서버리스, 유연함(자동크기조절)
- 언제든지 속성 추가/제거 가능 , 복잡한 sql쿼리x , 확장성 good
ㅁ
Amazon Elastic File System(EFS)
- 완전 관리형 파일 스토리지 서비스
- 여러 EC2 인스턴스 간에 파일을 공유
- 탄력적으로 확장이 가능
Amzaon Database Migration Service(DMS)
- 개인 mysql같은 곳에서 amazon 데이터베이스에서 마이그레이션 가능
- 다양한 데이터베이스 엔진 간에 데이터를 신속하고 안전하게 이전하거나 복제
AWS 보안
![](https://velog.velcdn.com/images/rkdghwjd1999/post/dddacd45-34b9-4ce1-b763-bf2a3d783ea6/image.png)
위 공동책임 모델로 클라우드 서비스 사용자와 AWS간에 나눠지는 책임 영역을 알 수 있다.
![](https://velog.velcdn.com/images/rkdghwjd1999/post/928e0846-9c3a-4ffb-9323-d873f0da8e1d/image.png)
모니터링 서비스
aws cloudwatch
- 계속 모니터링 하면서 경보등 제공(sns로도 가능)
- 대시보드기능 제공
aws cloudTrail
-> 포괄적인 API 감사도구
aws Trusted advisor
- AWS 계정 내의 모든 API 호출에 대한 로그를 생성
- API 호출의 세부 정보와 사용자 정보를 추적
구매관련
구매 유형
![](https://velog.velcdn.com/images/rkdghwjd1999/post/515f4513-adec-4c5d-9358-52f82d80e559/image.png)
AWS Free Tier(60종류 넘게 무료 사용)
- 신규 가입자에게 12개월 동안 무료로 사용할 수 있도록 제공
- Amazon EC2, Amazon S3, Amazon RDS, AWS Lambda 등 사용 가능