autoscale group에 인스턴스를 추가하고 최소대수, 최대대수, 스케일링 정책 주면 확대 축소 됨
확대시에는, launch configuration에 서버 실행 환경 구성 ( 실행환경에 템플릿으로 AMI 상세정보, 인스턴스 타입, 키 페어, 시큐리티 그룹, IAM 인스턴스 프로파일, 유저 데이터, 부착 스토리지 등 ) 을 가지고 인스턴스 생성 후 ELB에 attach하여 서비스의 traffic을 load balacing하는 형태
EC2는 VM에서 하나의 가상머신이다. VMware나 VirtualBox 등을 사용하여 본인의 PC에서 가상머신을 구동해 본 경우라면 이해가 쉬울 것이다.
하나의 가상머신에는 PC혹은 서버와 마찬가지로, OS, CPU, MEM, DISK, Controller 및 NETWORK IF가 attach 된다. 물론 가상의 자원이지만 OS는 일반 자원으로 인식한다.
그럼 그렇게 가상머신을 만들면 말 그래도 가상의 서버 혹은 PC가 하나 셋업이 된 것과 동일하다. 그리고 OS 이미지를 attach 한 다음에 설치하면 일반 서버에 OS 설치과정과 동일하다. 이렇게 OS 를 설치 완료하고 가상머신의 전원을 끄면 메모리까지 해제되는데, 이때 설치된 전체 OS 파일은 설치 이미지로 export가 가능하고 이후에도 이미지를 가지고 가상머신을 만들면 처음부터 설치할 필요없이 동일한 가상머신이 만들어진다.
AWS에서는 이를 AMI (Amazon Machine Image) 라고 한다. AMI 즉 가상머신의 이미지는 OS 뿐만 아니라 환경실행정보 config, 부차적인 application, database 등 OS 설치 가능한 자원을 설치 후에 저장가능하다. 즉 사용자 정의 AMI가 생성가능하다는 의미이다.
AMI 하나로 여러대의 가상머신을 띄울 수 있는데, 이때 IP자원과 여러가지 config 등이 외부 구성으로 가능해야하는데 AWS의 장점이 이런 config가 다 서비스로 되어 있는 점 (예를 들어 EIP 등) 이다.
즉 Amazon 내부에는 가상이미지를 관라하고 띄우는 가상머신 farm이자 Virtual Machine Server 가 구성되어 있고, 이러한 가상머신이 disk, network, cpu, memory 자원을 공유(혹은 독점)하는 형태로 운영될 것이라고 추측할 수 있다.
placement group에서 인스턴스를 launching 하면 단일 AZ 내에서 인스턴스를 논리적 그루핑하여 네트워크대역폭 더 많이 사용가능함.
초기에 AMI 이미지 자체는 S3에 저장되어 있으며 로딩시 인스턴스 스토에에 copy되어 로딩(instance store backed AMI)되면서 인스턴스의 블록 디바이스로 인식되고 마운팅 됨. 하지만 EBS를 제공하면서 이미지를 EBS 볼륨기반(EBS backed AMI)으로 운영함. 인스턴스 스토어 기반은 stop 이 지원되지 않음, EBS 기반은 스냅샷도 제공됨 (EBS는 해당 VMS에 붙어 있는 SAN 일 것으로 추측, EFS는 NAS 일 것이고), AMI는 리젼별 리소스임
EC2 생성 순서 :
EC2 시작
AMI 선택
인스턴스 유형
vCPU, 메모리, 인스턴스 스토리지, 네트워크 성능
인스턴스 세부정보
구매옵션 : spot instance 네트워크 : VPC 서브넷 : VPC에 할당된 subnet 선택 PUBLIC IP 할당 : 배치 그룹 : 배치그룹에 인스턴스 추가 용량 예약 : IAM 역할 : 종료 방식 : 중지