EC2(Amazon Elastic Conpute Cloud)는 안전하고 크기 조정이 가능한 컴퓨팅 파워를 클라우드에서 제공하는 웹 서비스입니다.
= 컴퓨팅을 빌려 쓰는 서비스
인스턴스 : 클라우드에서 사용하는 가상 서버로 CPU, 메모리, 그래픽카드 등 연산을 위한 하드웨어를 담당합니다.
EBS : Elastic Block Storage의 줄임말로 클라우드에서 사용하는 가상 하드디스크를 말합니다.
AMI: EC2인스턴스를 실행하기 위한 정보를 담고 있는 이미지
보안 그룹 : 가상의 방화벽
EC2 -> 인스턴스 -> 인스턴스 시작
으로 들어가서 애플리케이션 및 OS 이미지를 선택해줍니다.
기본 설정된 Amazon Linux로 선택했습니다.
인스턴스 유형또한 기본인 t2.micro로 선택했습니다.
기본 설정인 8GiB에 gp3 루트 볼륨을 선택했고
이름 및 태그
키는 Name, 값은 MyServer로 설정했습니다.
키 페어 또한 myServerKeyPair로 해줍니다.
보안 그룹 설정
보안 그룹 규칙을 추가해서 HTTP 유형을 추가해줍니다.
sudo -s
root 권한으로 쉘을 실행하는 명령어입니다. (sudo : superuser do) 다른 사용자의 보안 권한으로 명령어를 실행할 수 있게 해줍니다.
yum install httpd -y
웹 서버 소프트웨어인 Apache(Httpd)를 설치하는 명령어입니다. yum은 패키지 관리 도구이고
-y는 모든 질문에 yes로 자동 응답하도록 합니다.
service httpd start
방금 생성한 Apache 웹 서버를 실행합니다.
하단의 PublicIPs 가 실제로 접속할 수 있는 url 주소입니다.
해당 주소에 접속하면 테스트 페이지가 나오게 됩니다.
임의의 index.html 파일을 만들어서 띄우기 위해
nano /var/www/html/index.html 로 들어가면 텍스트 에디터 페이지가 나오게 됩니다.
Hello world! 를 작성 후 Ctrl+X로 저장하고 나가면 저장한 문구가 등장합니다.
인스턴스는 계속해서 요금이 나가기 때문에 실습을 모두 마쳤으면 중지하거나 종료하여 삭제해야합니다. 중지를 해 놓아도 EBS비용은 계속해서 나가기 때문에 안전하게 종료시키는 것이 좋습니다.
실제 물리적인 서버를 임대하는 방식입니다.
보안상의 이유, 보안상의 이유로 사용하며
라이센스 이슈나 퍼포먼스 이슈가 존재합니다.
가격 순
스팟 < 예약 < 온디맨드 < 전용 호스트
EC2의 가격 모델은 EBS와는 별도로 EBS는 사용한 만큼 지불합ㄴ디ㅏ.
기타 데이터 통신 등의 비용은 별도로 청구되며 AWS 바깥으로 나가는 트래픽에 대해서만 요금을 부과합니다. 즉 파일을 업로드 할 땐 비용이 없지만 파일을 다운로드 할 때는 비용이 부과됩니다.
마찬가지로 내부에서 EC2끼리 통신 또한 비용이 없습니다.
사용 목적에 따라 인스턴스 유형과 사이즈를 결정할 수 있습니다.
즉 각 인스턴스 별로 사용 목적에 따라 최적화해서 사용합니다.
EX) 메모리 위주, CPU 위주, 그래픽카드 위주 등
인스턴스의 CPU갯수, 메모리 크기, 성능 등으로 사이즈가 결정되며
크기가 클수록 성능이 좋습니다.
범용적으로 사용되는 t타입 m타입이 있습니다.
Amazon Elastic Block Store의 약자로 AWS 클라우드의 Amazon EC2 인스턴스에 사용할 영구 블록 스토리지 볼륨을 제공합니다. 각 Amazon EBS 볼륨은 가용 영역 내에 자동으로 복제되어 구성요소 장애로부터 보호해주고, 고가용성 및 내구성을 제공합니다.
여기서 중요한 점은 EC2 인스턴스에 사용할 영구적인 블록 스토리지 볼륨이라는 말입니다.
즉 가상의 하드 드라이브 기능을 해주며 EC2 인스턴스가 종료되어도 유지됩니다.
EC2와 EBS가 네트워크로 연결되어 있기 때문에 EBS를 변경하고 싶으면 그냥 네트워크를 변경하면 되고 하나의 EC2에 여러 개의 EBS를 붙이고 싶으면 여러 네트워크를 연결해주면 됩니다.
하나의 EBS를 여러 EC2에 장착이 가능하며
루트 볼륨으로 사용시 EC2가 종료되면 같이 삭제됩니다.
EC2와 같은 가용 영역에 존재합니다.
EC2를 생성하고 EBS를 생성한 뒤 서로 연결이 안된다면 서로 다른 가용영역에 있지 않은지 확 인해봐야 합니다.
EC2 인스턴스를 실행하기 위해 필요한 정보를 포함하고 있는 이미지입니다.
1개 이상의 EBS 스냅샷이 필요하며
루트 볼륨에 대한 템플릿이나 (ex. 운영 체제, 애플리케이션 서버, 애플리케이션)
시작 권한을 부여받은 AWS 계정에 대한 정보, 시작 시 사용할 하나 이상의 인스턴스 유형에 대한 블록 디바이스 매핑으로 구성됩니다.
즉 원하는 소프트웨어 구성이 설치된 상태로 EC2 인스턴스를 쉽게 시작할 수 있습니다.
사용 흐름을 보면
EBS의 특정 시점을 스냅샷 찍어서 그 정보를 S3에 저장합니다.
OS, 파일, 시작 권한 등 정보들이 찍혀서 저장되면 그 정보를 AMI로 등록합니다.
등록한 AMI로 EC2를 실행하거나 복사해서 제공하거나 하게 됩니다.
위에서 진행했던 실습을 동일하게 진행하고 마지막에 AMI를 복제하는 걸 해볼겁니다.
해당 EC2를 우클릭해서 이미지 및 템플릿의 이미지 생성에 들어가줍니다.
모든 설정은 그대로 하고 이미지 생성을 해줍니다.
AMI가 생성가능 상태로 바뀌면 성공입니다.
똑같이 인스턴스 생성으로 가서
애플리케이션 OS 및 이미지에서 내 AMI를 선택해주면 됩니다.
서버를 실행하고 url에 접속해보면 아까 작성한 Hello world가 나옵니다.
중지 중에는 인스턴스 요금 미 청구
(단 EBS 요금은 청구)
중지 후 재시작 시 퍼블릭 IP 변경
재부팅시에는 퍼블릭 IP 변동 없음
설정에 따라 EBS도 같이 종료시키거나 아니거나