Amazon Elastic Compute Cloud로 AWS에서 제공하는 클라우드 컴퓨팅이다. (독립된 컴퓨터를 임대해주는 서비스.)
AWS에서 가장 기본적이면서 널리 쓰이는 인프라로, 물리 환경의 컴퓨터처럼 컴퓨팅 리소스를 제공하는 서비스다.
ex) PC방에 가면 요금을 내고 컴퓨터를 이용하는 것처럼 AWS에서 컴퓨터를 대여해준다고 생각하면 된다. (내가 사용한 만큼 비용 지불)
EC2는 컴퓨터를 주문하면 바로 1분 안에 생성되고, 삭제 역시 즉시 제거된다. 초기 구입비, 세팅비용 등 없이 그냥 사용한 만큼만 비용을 지불한다.
컴퓨터 하나 장만할 때마다 반복되는 설치 작업이 필요하지도 않다.
이를 통해 하드웨어 구매없이 더 빠르게 애플리케이션을 개발하고 배포할 수 있다. 원하는 만큼 가상 서버를 구축하고 보안 및 네트워크 구성과 스토리지 관리가 가능하고 요구 사항이나 갑작스러운 트래픽 증가 등 변동 사항에 따라 신속하게 규모를 확장하거나 축소할 수 있어 서버 트래픽 예측 필요성이 줄어든다는 장점이 있다.
가상 머신으로 제공되며 인스턴스라고 불린다.
안전성을 위해 여러 AWS 리전과 가용 영역에 걸쳐 배포된다.
EC2 인스턴스가 연산과 관련된 (CPU, 메모리 등) 처리를 한다면 EBS는 데이터를 저장하는 역할을 한다.
클라우드에서 사용하는 가상 하드디스크라고 생각하면 도니다.
사용량을 많게 또는 적게 확장할 수 있고 프로비저닝한 부분에 대해서만 저렴한 비용을 지불할 수 있다.
특징
인스턴스가 종료되어도 별개로 작동하여 유지가 가능하다.
보통 컴퓨터가 종료되면 하드도 종료되어 이용할 수 없지만 EBS는 별개의 네트워크로 연결된 서비스이기 때문에 유지가 가능하다.
만일 잠시 인스턴스의 처리 기능이 필요하지않고 저장 장치 기능만 필요할떄는, 인스턴스를 정지시켜도 EBS는 독립적으로 살아있기 때문에 스토리지 기능만 이용하는데 인스턴스의 추가 요금을 내지 않아도 된다.


EC2 인스턴스와 EBS는 네트워크로 묶여있어 인스턴스를 upgrade 또는 downgrade할 때 용이하다.
또한, 하나의 EBS를 여러 EC2에 장착시키는 것도 가능하다.
EBS는 AZ가 같아야 연결 및 통신이 빠르기 때문에 EC2와 같은 가용영역인 AZ에 존재한다.
만일 다른 AZ로 생성해서 EC2에 붙이려고 하면 에러가 발생한다.

AMI는 EC2 인스턴스를 실행하기 위한 정보를 모은 단위이다. 즉 일종의 EC2를 시작하기 위한 기본 설정의 모음이다.
EC2를 실행하기 위해서는 CPU 프로세서 타입, 저장 공간, OS가 리눅슨지 윈도운지 MAC인지 등 정보가 있는데 이러한 설정(템플릿)을 저장한 단위이다.
스냅샷이란
스냅샷은 incremental 이다. 100GB 짜리 EBS에 대한 이미지를 생성
그 후 바뀔때마다 기존이미지에서 바뀐 부분만 저장(생성,삭제 모두 다)하기 때문에 용량이 비약적으로 줄어든다. 돈을 아낄 수 있다.
사용자의 접근 권한을 관리하는 서비스다.
IAM을 통해서 회사 내 AWS를 사용하는 사람들에게 부서 마다 사용자별로 AWS에서 제공하는 서비스들, 서비스에 생성된 자원 등에 대해 세분화된 권한을 지정할 수 있다.

user에게는 S3 접근과 S3 쓰기에 대한 정책을 주고 다른 그룹에 EC2나 RDS 같은 액세스 권한을 줄 수 있는 것처럼 세분화가 가능하다.
최고 관리자가 Root 계정을 관리하고, 그 밖의 사용자들은 각자 계정을 발급받아 제한된 권한을 가지고 AWS를 사용한다.

**(1) 권한(Action)**
가능여부의 소단위 = 권한
(2) 정책(Policy) = 권한들(Actions)
가능여부의 집합 = 정책
사용자와 그룹, 역할이 무엇을 할 수 있는지에 대한 permission 설정 모음 데이터 문서.
하나 이상의 AWS 리소스에 대한 어떤 작업을 수행할 수 있는지 허용 규칙을 JSON 형식으로 작성된다.
정책 문서는 IAM 사용자와 그룹, 역할에 연결한다.
(3) 계정(User, Group, Role) = 정책들(Policies) + 권한들(Actions)
계정에는 미리 잘 정의된 정책을 할당할수도, 당장 필요할땐 급하게 권한을 할당해서 쓸수도 있다.
(3.1) 사용자(User)
예를 들어, 어떤 사람이 자신의 컴퓨터로 AWS CLI 프로그램을 통해 외부에서(로컬 서버에서) 접근할때
(3.2) 사용자 그룹(User Group)

(3.3) 역할(Role)
예를 들어, AWS 서비스(예, EC2)에서 AWS 서비스(예, S3)에 접근할때
IAM 역할 장점
-보안 자격증명을 공유할 필요가 없다. (보안 향상)
🔗 https://velog.io/@flfns333/AWS-EBS%EC%97%90-%EB%8C%80%ED%95%B4-%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90 - EBS에 대해 알아보자
🔗 https://kyounggu.tistory.com/49 - 이미지 서비스 (AMI), 시작 템플릿
🔗 https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/ec2-instances-and-amis.html - Amazon AMI
🔗 https://velog.io/@ghldjfldj/AWS-IAM%EC%9D%B4%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80 - IAM
🔗 https://somaz.tistory.com/181 - AWS-IAM이란