안녕하세요 levin 입니다.
AWS study 두번째 시간으로 EC2와 EBS에 대한 내용입니다.
사용자는 인스턴스의 운영체제 및 소프트웨어 스택, 하드웨어 스펙, 실행 환경을 설정할 수 있다. 운영체제는 사용자가 선택한 Amazon Machine Image (AMI) 에 정의돼 있고, 하드웨어 사양은 인스턴스 타입에 따라 달라진다. 또한 모든 인스턴스는 최소 하나 이상의 프라이빌 IPv4 주소를 지닌다.
주소 범위
10.0.0.0 - 10.255.255.255
172.16.0.0 - 172.31.255.255
192.168.0.0 - 192.168.255.255
AMI : 인스턴스를 런칭 할 시 어떤 OS와 어떤 소프트웨어가 포함 되는지 설명하는 정보가 담긴 템플릿 문서이며 Amazon 퀵 스타트 AMI, AWS 마켓플레이스 AMI, 커뮤니티 AMI, 프라이빗 AMI 로 제공된다.
인스턴스 타입 : 사용자가 컴퓨트, 메모리, 스토리지 용량 등에 대한 균형 혹은 각 최적화 된 인스턴스 타입으로 선택이 가능하다.
EC2 인스턴스 생성 위치는 성능의 환경 설정 측면에서 중요하고 Region 은 Region별 비용과 기능, 특징 등이 다를 수 있고, VPC는 사용이 간편한 AWS 네트워크 생성 및 관리도구이자 클라우드 인프라 관리도구로 인스턴스를 쉽게 격리 시킬 수 있으며, 프로젝트별 별도의 VPC를 생성해서 관리할 수도있다. 그리고 사용 할 서비스나 수요에따라 인스턴스 유형 및 온디맨드 혹은 구독형으로 구매해서 사용할 수 있다.
EBS 볼륨
물리 서버에서 사용 하는 하드 드라이브, 플래시 드라이브, USB 드라이브처럼 인스턴스에 다수의 EBS를 부착 할 수 있고, 99.99%의 신뢰성을 보장한다고 한다. (평상 시 다른 스토리지에 복제 해 두었다가 데이터 오류 시 빠르게 복구한다고 한다. 책에선 사용자가 눈치 채기 전에 복구가 되어있을것이라고 한다..)
유형별(프로비전 IOPS SSD / 범용 SSD / 처리량 최적화 HDD / 콜드 HDD)로 성능과 그에따른 비용이 차이난다고 한다.
모든 EBS 볼륨은 스냅샷 생성 방식으로 복제할 수 있으며, 기존의 스냅샷으로 다른 인스턴스에 부착할 수 있는 볼륨을 만들거나, AMI 생성을 위한 이미지로 변환할 수 있다. (이 볼륨이 부착된 채 실행중인 인스턴스를 AMI 를 생성할 수 있음)
인스턴스 스토어 볼륨
EBS 볼륨과 달리, 인스턴스 스토어 볼륨은 비지속형 스토리지이며, 인스턴스를 종료시키면 인스턴스 스토어에 저장된 데이터가 소실된다.
Security Group : 방화벽과 같은 역할을 하며, 인스턴스로 향하는 모든 유입 트래픽은 거부하고, 인스턴스에서 나가는 모든 유출 트래픽은 허용한다. 그룹 동작은 특정 트래픽의 거부 또는 허용과 관련된 정책 규칙으로 정의하며, 그룹 동작 정의 후 유입 및 유출되는 트래픽에 대한 처리는 모두 이들 정책 규칙을 따르게 된다.
IAM Role : EC2 인스턴스는 물론 다른 AWS 리소스에 대한 접속을 제어할 수 있으며, AWS 계정으로 연결된 특정 서비스와 리소스에 대한 동작을 허용하는 방식으로 IAM 롤을 정의할 수 있다. 특정 롤을 유저 또는 리소스에 할당하면 롤 정책에 포함된 리소스에 접근할 권한을 얻게 된다.
NAT 디바이스 : 인터넷 연결 허용 없이 프라이빗 IP 주소를 통해 인터넷에 접속할 수 있다. NAT 인스턴스와 NAT 게이트웨이 두 가지 방식이며 두 가지 모두 월단위 과금되고, NAT 게이트웨이가 관리형 서비스로서 좀 더 많은 편의를 제공하므로 사용이 권장된다.
애플리케이션 실패 및 복구 상황을 방지하기 위한 서비스로서 실패 상황 발생시 사용자가 미리 지정한 수만큼의 인스턴스를 프로비저닝하고 시작하며, 요구 수준에 맞춰 인스턴스 수를 동적으로 추가할 수 있다. 인스턴스 실패 또는 예기치 못한 종료 발생 시 Auto Scaling이 자동으로 해당 인스턴스를 대체한다.
론치 환경설정 : 인스턴스를 직접 생성하는 경우 AMI, 인스턴스 타입, SSH 키 페어, 시큐리티 그룹, 인스턴스 프로파일, 블록 디바이스 맵핑, EBS 최적화 여부, 플레이스먼트 테넌시, 앱 설치 및 환경설정을 위한 커스텀 스크립트 등 유저 데이터를 포함한 다양한 환경설정 파라미터를 지정해야 한다.
론치 템플릿 : Auto Scaling 작업시에도 사용할 수 있지만 EC2 인스턴스 사본 생성 또는 스팟 플릿 생성의 목적으로도 사용할 수 있다. 생성 후에도 내용 변경이 가능하며, 수정한 론치 템플릿은 새 버전으로 템플릿 목록에 추가된다.
Auto Scaling 그룹 : Auto Scaling이 관리하는 EC2 인스턴스 그룹이며, Auto Scaling 그룹 생성에 앞서 론치 환경설정 또는 론치 템플릿을 생성해야 한다. 생성 시 론치 환경설정 또는 론치 템플릿으로 몇 개의 인스턴스를 프로비전하고 실행할 것인지 지정해야 하며, Auto Scaling 그룹의 최소 및 최대 용량도 지정해야 한다. 또한 희망하는 인스턴스의 수를 지정하는 것도 가능한다. (최소 용량, 최대 용량, 희망 용량) Auto Scaling 옵션에는 최소,희망,최대 값을 변경하면 해당 내용이 즉시 반영 되는 수동 스케일링, 트래픽에 따른 리소스 사용율에 맞게 인스턴스 조절이 가능한 동적 스케일링 정책, 지표가 한계치에 도달하면 Auto Scaling이 희망 용량대로 인스턴스를 증가시키는 단순 스케일링 정책이 있다.
EC2 Systems Manager 또는 Simple System Manager 등으로 알려졌던 AWS System Manager는 AWS 리소스 및 온프레미스 서버의 자동 및 수동 작업을 관리한다.
수작업 및 스크립트 작성 등의 필요한 유지보수 작업을 돕는 도구로서 온프레미스와 EC2 인스턴스의 패키지 업그레이드, 설치 소픝프웨어 목록 생성, 새 애플리케이션 설치 등의 업무를 돕고 EBS 스냅샷을 이용한 AMI 이미지 생성, IAM 인스턴스 프로파일 부착은 물론, S3 버킷에 대한 퍼블릭 접근 차단 등의 업무도 수행한다.
- Action : AWS 리소스에 대해 일괄적으로 작업을 수행할 수 있는 자동화 액션, 관리 대상 인스턴스에 대한 작업 수행을 도우며, 로그인 없이 접속하거나 커스텀 스크립트 실행을 위해 서드파티 도구를 실행하는 명령 액션이 있고 세션 매니저라는 것이 있는데 시큐리티 그룹, NACL에서 인바운드 포트 개방 없이 혹은 퍼블릭 서브넷에 인스턴스를 두지 않고도 Linux 와 Windows 인스턴스에 대한 Bash 및 PowerShell 접속을 지원한다. 배스티온 호스트 설정이나 SSH 키 문제를 걱정할 필요가 없으며, 모든 Linux 버전 및 Windows Server 2008 R2 부터 최신의 2016까지 지원한다고 한다. 이 세션 매니저는 웹 콘솔 또는 AWS CLI 로 시작하고 시작하기에 앞서 사용자의 로컬 머신에 Session Manager 플러그인을 설치해야 한다고 한다. 추가로 Linux 및 Windows 인스턴스 패치 업무의 자동화 도구인 패치 매니저라는 것도 있는데 Windows Server, Ubuntu Server, RHEL, SUSE Linux Enterprise Server, CentOS, Amazon Linux, Amazon Linux2 의 OS를 지원하고 패치 대상 인스턴스는 태그 등을 기준으로 선택할 수 있으며, 패치 그룹(태그 키를 지닌 인스턴스 모음)을 생성해서 작업을 진행할 수 있다고 한다.
마지막으로 스테이트 매니저이다. 사용자가 정의한 방식대로 소프트웨어를 가져오고 환경을 설정하는 환경설정 도구라고 할 수 있다. 인스턴스에 대해 일회성으로, 혹은 미리 정해진 일정에 따라, 자동으로 명령 및 정책 도큐먼트를 실행한다.
이상입니다. 내용이나 추가 실습 화면 등 업데이트 예정입니다 :)