2주차 - 섹션 5 ~ 8
개요
섹션 5 ~ 8
7, 20, 21,
본문
섹션 5 : EC2 기초
예산 관리부터 들어가는데, 아무리 프리 티어를 사용한다고 해도 돈이 빠져 나가기 마련이라.. 인상 깊게 봤다.
그리고 매번 IAM으로 들어가도 돈이 안나와서 그냥 root 계정으로 들어가서 확인했는데, 관리자 권한만 주면 가능하다는 걸 보고 좋다고 생각함..
지금은 핸즈온이나 공부 중이라서 많이 사용하지 않겠지만, 나중에 프로젝트 해볼 때면 한 번 해보고 싶다고 생각했다
EC2 : Elastic Compute Cloud
- aws에서 제공하는 서비스형 인프라, 가상 서버
- EC2, EBS, ELB, ASG,
- 구성 요소
- 운영체제(OS) : linux, windows, mac os
- 컴퓨터 성능 & 코어(CPU)
- RAM
- stoage : netword-attached, hardware
- netword card
- security group
- bootstrap script
- bootstrapping
- 컴퓨터(머신)가 시작할 때 시작되는 명령어들
- 부팅 시 인스턴스가 할 모든 작업
- EC2 만들기
advanced로 들어가서 종료 시 삭제 설정을 여기서 만들 수도 있음.
매번 그냥 나중에 설정했는데, 시작하면서도 할 수 있어서 신기함.
ec2 만들면서 처음에 실행시키고 싶은 명령어 해도 됨.
처음에 환경 설정할 때, sudo로 일일히 전부 설치했는데, 여기서 가능하면 그냥 여기서 해도 될듯
EC2 Instance Types
- instance class
- generation
- size within the instance class
- type 마다 각 성능과 특성이 다름
- General Purpose
- Compute Optimized
- Memory Optimized
- Storage Optimized
https://aws.amazon.com/ko/ec2/instance-types/
컴퓨팅 - Amazon EC2 인스턴스 유형 - AWS
aws.amazon.com
Security Groups
- aws의 네트워크 보안을 위해 사용
- ec2 안팎으로 트래픽을 어떻게 할지 결정
- ip주소를 기준으로 규칙 생성 가능
- ec2의 방화벽, 포트에 대한 접근을 관리
- 인바운드 규칙, 아웃바운드 규칙 생성 가능
- 보안 그룹과 ec2는 1:1 관계가 아님
- 중복되는 거는 따로 보안 그룹으로 만들어서 줘도 된다.
- 나중에 배우는 로드 밸런서랑 관련이 있다.
- 문제 발생
- time out -> 무조건 보안 그룹 문제
- block
IAM DemoRole
ec2의 인스턴스에 aws configure로 자신의 access key, secret key를 입력하면 절대 안된다. -> 다른 사람도 전부 볼 수 있기 때문에!
하지만 설정을 하지 않음 연결을 할 수 없는데..
그렇지만 ec2에 IamReadOnly 권한이 있는 role을 주면,
이렇게 된다. 그러니까 권한을 ec2 자체에 주면, aws configure로 로그인할 필요가 없다!
EC2 Spot Instance Requerts
사용자가 정의한 max price보다 낮은 경우에만 스팟 인스턴스를 가질 수 있음. 그래서 인스턴스 가격을 줄일 때 사용함
- Spot Fleets
구매 옵션
- 예약 인스턴스 : 장기적인 워크로에 적합함. 1년, 혹은 3년의 기간으로 예약 가능
- 스팟 인스턴스 : 할인율이 가장 높은 인스턴스
- 온디맨드 인스턴스 : 단기간에 가격을 예상할 수 있는 인스턴스
섹션 6 -
Placement Groups : 배치 그룹
- aws 하드웨어에 ec2가 어떻게 배치될지 알려주는 것
- cluster : 단일 AZ라서 낮은 지연
- spread : 인스턴스가 분산됨
- partition : 여러 파티션에 분리되어 있음
Cluster
- 지연시간이 짧음
- 뛰어난 성능
- 가용 영역이 맛가면 인스턴스도 맛감
Spread
- cluster와 정반대
- 동시 실패의 위험을 감소하기 위함
- 가용 영역 당 7개의 인스턴스로 제한이 생김
Partition
- Spread랑 비슷하긴 한데, ec2를 따로 분리한다기 보다는 파티션 안에 ec2가 또 있는 느낌?
- AZ에 파티션 최대 7개 가능
ENI : Elastic Network Interfaces
- vpc의 논리적 구성 요소
- 가상 네트워크 카드
- ec2 인스턴스 외부에서도 가능
- 속성
- 하나의 이상의 보안 그룹
- 하나의 public ip4
- 하나 elatic ip per private ip4
- ec2 간에 ip 주소를 이동시킬 수 있다?
- eni랑 ec2는 하나씩 연결됨
- 새로운 eni만들고, 특정 AZ에 연결할 수 있음
- 네트워크 장애 조치를 빠르게 해결할 수 있음. detch하고 다른 인스턴스로 네트워크를 옮겨주기만 하면 됨
- ec2를 종료 -> 직접 만든 eni는 살아있고, ec2랑 같이 생성된 eni는 같이 사라짐
- https://aws.amazon.com/ko/blogs/aws/new-elastic-network-interfaces-in-the-virtual-private-cloud/
New – Elastic Network Interfaces in the Virtual Private Cloud | Amazon Web Services
If you look closely at the services and facilities provided by AWS, you’ll see that we’ve chosen to factor architectural components that were once considered elemental (e.g. a server) into multiple discrete parts that you can instantiate and control in
aws.amazon.com
EC2 Hibernate
- 절전모드
- 실행 중인 ec2 -> 중지, ram의 내용은 ebs에 덤프, ram 삭제 -> 재시작, ram 생성
- 빠르게 재부팅을 하고 싶을 때, 서비스가 재시작할 때 빠르게 하고 싶을 때
- 절전모드를 사용하려면, 1) ebs가 암호화되어 있는지 확인, 2) RAM 크기가 충분한지 확인
섹션 7 - ec2 저장
EBS 볼륨
- elastic block store
- 인스턴스가 실행 동안 연결 가능한 네트워크 드라이브
- 인스턴스가 종료되도 데이터를 저장 가능
- 특정 가용 영역만 가능 - 다른 가용 영역이면 연결 불가능
- 네트워크를 통해서 연결됨 -> 지연 존재
- 특정 인스턴스에 연결이 해제되고 다른 인스턴스에 연결 가능
- 스냅샷을 이용하면 다른 가용영역도 연결 가능
- 기본으로 만들어진 볼륨 -> 인스턴스가 삭제되면 삭제
- 새로 만든 볼륨 -> 인스턴스가 삭제되도 삭제 x
EBS 스냅샷
- 다른 영역의 ebs 볼륨을 옮길 수 있는 기능
- EBS Snapshot Archive
- Recycle Bin for EBS Snapshots ebs 영구 삭제 대신 휴지통에 넣음
- Fast Snapshot Restore 빠른 스냅샷
AMI
- amazon machine image
- ec2 instance를 커스텀할 수 있음
- 종류
- public ami
- your own ami
- an aws marketplace ami
- 이미 명령어를 실행시켜 놓은 걸 ami로 만드는 거라서 부팅 시간이 훨씬 빨라짐
EBS Voulme Tyeps
- gp2 / gp3 - 범용
- 효율적, 낮은 지연
- io1 / io2 block express - provisioned IOPS
- 성능이 좋음
- create for DB workloads
- 멀티 ebs 볼륨
- st1 / sc1 - hard disk drive
- boot volume이면 안됨
- 가격이 저렴함
☆ 인스턴스 스토어 확인
EBS Multi-Attach
- multiple 볼륨 하나를 여러 개의 ec2에 연결 가능
- 동시에 읽고 쓸 수 있음
- 해당 가용 영역 내에서만 가능
- 한번에 16개의 ec2 연결 가능
- 클러스터 인식 시스템 필요
EBS 암호화
- 저장 데이터 -> 볼륨 내부에서 암호화
- 지연 시간에는 영향 x
- 암호화 x 볼륨 -> 스냅샷 -> 암호화 되지 않은 스냅샷
- 암호화 x 스냅샷 -> 스냅샷 -> 암호화된 스냅샷
- 암호화 o 스냅샷 -> 스냅샷 -> 암호화된 볼륨
EFS - Elastic File System
- 다른 가용 영역의 ec2를 연결 가능
- linux 기반 ami만 가능
- 파일 시스템이 자동으로 확장 -> 쓴 만큼 비용
☆ 솔직히 무슨 소리인지 모르겟다.. 다시 듣기
- 한 ec2가 특정 파일을 만들면, 같은 가용 영역의 다른 ec2도 파일 시스템을 통해서 그 파일을 확인할 수 있다.
EBS vs EFS
- EBS
- 한 번에 하나의 인스턴스
- AZ 수준에서만 사용 가능해서 스냅샷으로 옮겨야 함
- IO를 사용해서 백업하므로 많은 작업 중이면 성능에 영향을 줄 수 있음
- EFS
- 네트워크 파일 시스템
- 여러 AZ에 걸쳐 연결 가능
- 리눅스 인스턴스에만 가능
- EBS 보다는 가격이 비싸지만 스토리지 계층을 활용해 가격 절감 가능
섹션 8 - 고가용성 및 스케일링성 : ELB 및 ASG
ELB - Elastic Load Balancing
- 트래픽을 여러 서버들 중 하나의 서버로 전달하는 역할
- DNS
- SSL 종료 가능
- 관리형 로드 밸런서
- 고가용성, 유지 좋음
- aws가 계속 동작함을 보장함
- ec2가 로드 밸런서의 보안 그룹만 받음으로써 보안이 강화됨
ALB - Application Load Balancer
- http 전용 로드밸런서
- 대상 그룹으로 묶임
- 컨테이너와 ecs 사용
- 리다이렉트 사용 가능
- url 대상 경로로 다른 대상 그룹에 또는 url에 라우팅 가능
- 하나만으로 다수의 애플리케이션 연결 가능
- 타겟 그룹
- ec2 인스턴스
- ecs tasks
- 람다
- private ip 주소