EC2 = Elastic Compute Cloud = Infrastructure as a Service (IaaS)
EC2는 하나의 서비스만을 의미하는 것이 아닌 높은 수준의 여러 개로 구성됨 : 1) Renting virtual machines 버츄얼 머신 렌트 (= EC2 instances) 2) Storing data on virtual drives or EBS Volume 버츄얼 드라이브나 EBS 볼륨에 데이터 저장 (= EBS ) 3) Distributing load across machines 시스템 부하 분산 (= Elastic Load Balancer, ELB) 4) Scaling the services using an auto-scaling group 서비스 확장 (= Auto-Scaling Group, ASG)
EC2를 사용하는 것은 클라우드 작동법을 이해하는데 매우 기초적인 것이며, 요구에 따라 컴퓨터들을 빌리는 것이 가능하게 됨
EC2 sizing & configuration options
EC2 AWS에서 가상 서버를 임대하기 위한 인스턴스에 대한 옵션들
Operating System (OS) 어떤 운영체제 시스템을 선택할지 : Linux, Windows or Mac OS
How much compute power & cores (CPU) 가상 머신의 컴퓨팅 성능과 코어, CPU
How much random-access memory (RAM) 얼마나 많은 RAM을 원하는지
How much storage space 얼마나 많은 저장 공간을 원하는지 예) 저장소가 네트워크를 통해 연결될지 (EBS & EFS), 하드웨어에 연결될지 (EC2 Instance Store)
Network card EC2 인스턴스에 첨부하길 바라는 네트워크 유형 예) 빨리 실행되는 네트워크 카드, 공공 IP 주소
Firewall rules EC2 인스턴스의 방화벽 규칙을 다루기 위한 보안 그룹
Bootstrap script EC2 User data라고 불리며 첫 런칭 때 인스턴스를 구성하기 위해 사용한 Bootstrap 스크립트
→ 이외에도 다양한 옵션으로 AWS에서 머신을 빌릴 수 있다는 것이 클라우드의 힘
EC2 User Data
인스턴스에 EC2 User Data script를 사용하여 부트스트랩하는 것이 가능 부트스트랩이란 기계가 시작할 때 명령을 런칭한다는 것으로 스크립트가 처음 시작할 때 딱 한 번만 작동 EC2 User Data는 특정한 목적이 있고, 부트 작업을 자동화하기 위한 것이므로 부트스트랩이라는 이름이 붙어짐
어떤 작업을 자동화하고 싶을 때 (인스턴스 부팅, 업데이트 설치, 소프트웨어 설치, 파일 다운로드 등) 사용할 수 있으나 User Data script를 더 많이 더할수록 더 오랜 부팅 시간이 걸리게 됨
EC2 User Data script는 Root 사용자와 함께 작동하므로 모든 명령에 의사 권한을 가질 수 있음
EC2 Instance Types: example
EC2에는 어떤 인스턴스 유형을 써야할까? 예) 다른 성능, 레벨을 가진 인스턴스m5.2xlarge (m : instance class, 5 : generation, 2xlarge : size within the instance class) 위의 경우 t2.micro와 t2.xlarge는 같은 인스턴스 패밀리이고, c5d.4xlarge는 새로운 패밀리 (레벨) 이므로 다른 특성을 가짐
t2.micro는 AWS free tier의 한 부분으로 한달에 최대 750시간 사용 가능