EC2(Elastic Compute Cloud)는 AWS에서 제공하는 IAAS, 즉 Infra as a Service이다. 하나의 서비스가 아니라 서비스형 인프라라는 것이다.
가상 머신을 빌리고(EC2), 가상 드라이브에 저장하고(EBS), 부하 조절을 하며(ELB), 오토 스케일링 그룹(ASG)를 통해 서비스를 확장할 수 있다.

이게 ec2 타입이다. 원하는 거 쓰면 되는데 우리는 t2 마이크로 쓰는걸로

별건 아니고, 나머지는 하던대로 한다. 루트 계정은 쓰지 마시고..
ec2를 만드는 도중 사용자 데이터 저 칸에 부트스트랩 스크립트를 넣으면 된다.

그럼 이렇게 나온다. 퍼블릭ipv4주소 입력하면, 접속할 수 있다.
EC2는 여러 인스턴스 유형을 가지고 있다.


네임 컨벤션이라는데, 뭐 그러려니 합시다. 크기가 클수록 더 많은 메모리와 CPU를 가진다.
웹 서버, 코드 저장소 등 다양한 작업에 적합함. 컴퓨팅/메모리/네트워크 간 균형이 좋다.
T로 시작한다.
컴퓨터 집약적인 작업에 최적화되어있다. 고성능 프로세서를 이용한 데이터의 일괄 처리나 미디어 트랜스코딩(?), 혹은 고성능 웹 서버, 고성능 컴퓨팅, 머신 러닝, 복잡한 게임 서버 등등..
C로 시작한다.
메모리에서 대규모 데이터셋을 처리하는 유형의 작업에 빠른 성능을 제공한다.
대부분의 인메모리 방식인 관계/비관계형 데이터베이스, 분산 웹스케일 캐시, BI(Business Intelligence)를 위해 최적화된 인-메모리 데이터베이스, 대규모 비정형 데이터 처리하는 애플리케이션에 사용한다. R로 시작한다.
로컬 스토리지에서 대규모의 데이터셋에 접근할 때 적합한 인스턴스다.
고주파 온라인 트랜잭션 처리(OLTP) 시스템, 관계/비관계형 NoSQL db, Redis같은 데이터베이스 캐시, 분산 파일 시스템 등등에 사용된다. I,D,H1으로 시작한다.

보안 그룹은 허용 규칙들만 가지고 있으며, 다른 보안 그룹들을 참조할 수 있다.

보통 이렇게 생겼다. https는 443 포트인걸로 기억을
한 인스턴스에 여러개의 보안 그룹이 있을 수 있다.
또한 특정 리전에만 제한되며, ec2바깥에 있기 때문에 차단되면 ec2는 트래픽을 볼수조차 없다.
타임아웃이 되면 100% 인바운드 보안 그룹 문제니 알아두자.
그래서 SSH 연결을 위한 다른 보안 그룹을 만드는 것이 좋다.

다른 보안 그룹을 참조하는 경우의 이점은 그림과 같다.
IP를 생각하지 않고도, 연결하고자 하는 EC2가 Security Group2의 보안 그룹을 가지고 있다면, 바로 연결할 수 있다.

기본 포트이니 알면 좋다.
리눅스 서버는 SSH를 통해 유지/보수를 위해 내부 서버와 연결한다.

기존 연결 방식이다. SSH와 PUTTY는 완벽히 동일하며, EC2 Instance Connect는 웹서버에서 동작하지만, 아직은 Amazon Linux 2에서만 작동한다.
EC2 Instance Connect가 가장 편하다. 만약 로그인이 안된다면 ssh 포트에 대한 연결이 안된 것이니 인바운드 보안 그룹을 확인하면 된다.

EC2 Instance Connect에는 aws cli가 이미 설정되어 있지만, 절대 aws configure를 통해 개인 정보를 입력 하면 안된다.(보안 문제 때문). 그래서 우린 IAM Role을 이용한다.
인스턴스에서 작업 - 보안 - IAM 역할 수정 누르면 된다.

그러면 그림처럼 configure 안해도 잘 온다.
시험에 나오나봐요

이렇게 있고, 각각의 설명을 하겠다. 일일히 적긴 힘드니까 사진으로 대체





종합적으로 비유하자면:
Capactiy Reservations는 그럼 왜쓰지 했는데, 예상되는 트래픽 증가에 대비하기 위해서, 혹은 은행, 의료 등 서비스 가용성이 중요한 애플리케이션에 사용된다고 한다.
시험에서는 어떤 워크로드일때 뭘 쓰는게 좋냐고 물어보니, 공부를 하자.
스팟 인스턴스에 대해 좀 더 알아보자.
스팟 인스턴스는 온디맨드 방식보다 약 90%까지 할인받을 수 있다.
최대로 지불할 수 있는 Max Spot Price를 정해두는데, 현재 사용하고 있는 인스턴스의 금액이 최대 금액보다 적으면, 그대로 유지한다.
이 때 사용하고 있는 인스턴스 금액은 성능과 용량에 따라 달라진다.
만약 사용하고 있는 인스턴스 금액이 최대 금액을 넘어간다면, 인스턴스를 중지할지 종료할지 결정할 수 있다. 이 과정에는 2분의 유예 기간이 주어진다. 중지하면 나중에 인스턴스 금액이 낮아지면 다시 실행하면 되고, 아니면 종료했다가 새롭게 시작해도 된다.
Spot Block이라고 해서 1~6시간동안 AWS가 인스턴스를 회수하지 못하게 하는 방법도 있다고 한다.
이렇게 중지될 수 있다보니, 데이터 분석, 장애 복원력이 뛰어난 워크로드 등에 사용되며, 민감한 작업에는 안쓴다.

좀 헷갈리니까 공부해보자.
Spot Request는 최대 금액, 요구된 인스턴스의 수, 실행 스팩, 요청 타입, 유효 기간 을 가지고 있다. 이 request가 인스턴스를 실행하는 건데, 요청 타입을 보면 알 수 있듯이 one-time 과 persistence가 있다. one-time은 단 한번만 실행되는 것이기 때문에 인스턴스가 실행되면 request는 사라진다. 하지만 persistent인 경우에는, request가 계속 살아있다.
Spot Request를 중지한다고 인스턴스가 사라지는 것은 아니기 때문에, 인스턴스를 종료하고 싶으면 Request를 중지하고, 인스턴스도 직접 종료해야 한다. 그리고 Spot request가 살아있으면, 얘가 다시 인스턴스를 시작하기 때문에 인스턴스를 종료하려면 Spot Request를 먼저 취소하고 해야한다.
스팟 플립은 스팟 인스턴스 +(선택적으로 온디맨드 인스턴스들) 세트를 정의하는 방법이다.
정해진 가격 내에서 최대한의 용량을 사용하기 위해 여러개의 실행 환경들을 만들고, 플릿이 그 중에서 가장 적합한 것들을 고른다. 이 실행 환경에는 여러 전략이 있다.