본문 바로가기

메가존 클라우드 2기 교육/실무 심화

AWS - EC2

EC2

 AWS 컴퓨트 서비스

Amazon Elastic Compute Cloud(Amazon EC2)는 Amazon Web Services(AWS) 클라우드에서 확장 기능 컴퓨팅 용량을 제공한다.

Amazon EC2를 사용하면 하드웨어에 선 투자할 필요가 없어 더 빠르게 애플리케이션을 개발하고 배포할 수 있다.

Amazon EC2를 통해 원하는 만큼 가상 서버를 구축하고 보안 및 네트워크 구성과 스토리지 관리가 가능하다.

또한 Amazon EC2는 요구 사항이나 갑작스러운 인기 증대 등 변동 사항에 따라 신속하게 규모를 확장하거나 축소할 수 있어 서버 트래픽 예측 필요성이 줄어든다.


EC2 (클라우드의 가상 서버)

서비스 - 컴퓨팅 - EC2

웹 서버, 콘텐츠 관리 시스템, Linux와 같은 OS 등 기업에서 사용하는 애플리케이션을 의미.

EC2 Management Console

EC2 - 보안 그룹

보안 그룹에 들어가면 이렇게 default 보안 그룹이 있다. 실습때 default 보안 그룹을 쓰지 않을 것 처럼 이 보안 그룹도 사용하지 않는다.

EC2 - 인스턴스 유형

오픈 스택의 Flavor와 같은 개념이다. 단, 여기선 커스텀이 불가능하다.

 여기서 't2.micro'는 무료 유형이다. 그러므로 이 인스턴스를 사용할 것이다.


EC2 - 인스턴스 (WEB01)

인스턴스 시작 클릭

원하는 이름 입력

서버에 있는 이미지를 복사해서 가져오므로, 따로 이미지를 업로드할 필요가 없다.
드롭다운을 눌러 사진처럼 설정한다.(꼭 프리 티어인지 확인)

프리 티어인 t2.micro 사용

키 페어 설정. 아직 없으므로 이전에 오픈 스택에서 생성했던 키를 업로드 한다. 오른쪽의 '새 키 페어 생성' 클릭
키 페어를 위 사진처럼 생성한다.

우측 상단의 편집 클릭
사진과 같이 설정.

 참고로 서브넷팅을 계산하자면 아래 링크를 통해 확인한다.

https://jodies.de/ipcalc?host=172.31.0.0&mask1=16&mask2=20 

 

IP Calculator / IP Subnetting

 

jodies.de

다음과 같이 서브넷팅된다.
서브넷을 고를 때, 인스턴스 유형이 호환되는지 확인하자. 사진의 경우에는 2a, 2c만 가능했다.
보안 그룹은 추가하여 위와 같이 설정. 여기서 소스 유형은 출발지 아이피이다. 이 보안 그룹은 방화벽과 유사하지만 같은 것은 아니다.
사용자 설정으로 원하는 포트를 열 수도 있다. 마지막으로 내 IP에 대해선 모든 포트를 개방하여 내 IP에서는 편하게 사용 가능하도록 한다.

여기서 '소스 유형'에서 '내 IP'를 고르면 본인의 퍼블릭 아이피를 알 수 있다. 확인을 하면 'xxx.xxx.xxx.xxx/32'로 32비트임을 알 수 있는데. 퍼블릭 아이피는 단 한개이므로 '8+8+8+8 = 32비트' 모두 사용하기 때문.


스토리지는 8GB, gp2를 사용한다. 프리티어이기 때문. 어드밴스드를 눌러보자.

SSD를 사용할 것이며 끝에 숫자가 높을 수록 초당 처리량이 높아 성능이 좋다.

그리고 '콜드'의 의미는 '느리다'의 의미이며, 반대로 '핫'은 '빠르다'의 의미이다.

더 세밀한 옵션들이 있음을 알 수 있다.

  • 종료 동작: power off시 '중지' or '종료' 선택. '종료' 선택시 인스턴스가 사라지므로 꼭 중지로 설정
  • 최대 절전 중지 방식: 사용을 하지 않는 경우 잠시 중지를 할지 안할지 선택(EC2의 경우 값을 아낄 수 있다)
  • 종료 방지: 종료(삭제) 액션을 막아줌.
  • 세부 CloudWatch 모니터링: 기본 5분 단위는 무료이지만, 해당 옵션을 활성화하면 1분 단위로 세밀하게 모니터링 할 수 있다. 단, 추가 비용이 발생한다.
  • Elastic Inference: 적합한 리소스로 최적화 할지 선택(비용 절감)
  • 크레딧 사양: 스케일 범위를 의미한다. 리소스가 부족할 때, 비용을 지불하고 오토 스케일링을 할 지 안할 지 선택.
  • 배치 그룹: 같은 가용 영역이라도 배치를 떨어트려서 인스턴스를 분리시켜줌
  • 용량 예약: EC2를 중지하면, 리소스(CPU, 메모리)등의 소유권이 사라지므로, 다시 재가동 시킬 때, 가용 영역에 리소스가 부족할 수 도 있다. 해당 옵션을 통해 리소스를 예약해서 이러한 상황을 대처할 수 있다.
  • 테넌시: '공유됨'은 자원을 공유하므로, poweroff시 비용은 발생하지 않는다. 다른 '전용' 옵션은 poweroff여도 계속 점유하고 있기 때문에 poweroff시에도 비용이 계속 발생한다.
#!/bin/bash
yum install -y httpd
systemctl enable --now httpd
echo "<h1>web01</h1>" > /var/www/html/index.html
  • 메타데이터 엑세스 가능: 인스턴스의 자세한 정보를 확인할 수 있도록 할지 선택
  • 사용자 데이터: 가장 많이 사용되는 기능. 오픈 스택에서 사용자 스크립트와 같은 의미.

이제 '인스턴스 시작'을 눌러 인스턴스를 생성
생성 성공
'모든 인스턴스 보기'로 들어가면 생성 성공을 확인할 수 있다.

  • 퍼블릭 IPv4 : Floating IP처럼 외부와 연결시켜주는 아이피 주소. (전세계 어디서든 접근 가능)
  • 프라이빗 IPv4: 내부 네트워크 상의 주소

이제 '퍼블릿 IPv4 주소'로 홈페이지 접속을 해보자. (접속이 안된다면 보안 그룹의 인바운드 규칙을 확인)

접속 성공.

탄력적 IP 연결

절대 '종료'가 아니라 '중지'이다.
퍼블릭 IPv4가 사라짐을 확인할 수 있다. (아이피 주소를 다시 반납함)
다시 시작하면 퍼블릭 IPv4가 바뀜을 알 수 있다.

이 처럼, 인스턴스는 퍼블릭 아이피를 대여하고 반납하기 때문에, 퍼블릭 IPv4가 바뀐다. 이는 웹페이지를 운영하는 데 있어 치명적이다. 

그래서 좌측 메뉴의  '탄력적 IP'를 통해 비용을 지불하고 계속 같은 아이피로 고정할 수 있다.

'탄력적 IP 주소 할당' 클릭
'할당' 버튼 클
IP 할당 성공. 하지만, 이 상태에서 소유하고만 있어도 비용이 나간다. 다행이도 한 아이디당 하나의 탄력적 IP주소는 '인스턴스와 연결된'상태이면 비용이 나오지 않는다.
탄력적 IP 주소 연결 클릭
인스턴스와 프라이빗 IP주소를 고르고 연결
연결 성공
인스턴스에서도 연결됨을 확인할 수 있다.

퍼블릭 IPv4 DNS

퍼블릭 주소 말고도 DNS 주소로 접속해도 똑같이 접속이 된다.

DNS 주소로도 접속 성공
MobaXterm에서 DNS주소에 접속한다. 유저네임: ec2-user / private key: new-key
MobaXterm 접속 성공. 20비트이므로 (4096 - 5 = 4091)개 주소 사용 가능 (서브넷팅 참고)

EC2 - 인스턴스 (WEB02)

 위의 내용을 복습할 겸 인스턴스를 하나 더 생성한다.

반복되는 내용을 제외하고 설명을 하겠다.

WEB01과 서브넷을 다르게 하여 가용성을 높일 수 있다.
호스트 이름 유형을 'Resource name'으로 변경
#!/bin/bash
apt update
apt install -y apache2
echo "<h1>web02</h1>" > /var/www/html/index.html