AWS EC2 instance 의 운용방식

2022. 2. 4. 15:12Cloud/AWS 기초

AWS EC2 instance의 라이프 사이클(출저. AWS 공식문서)

EC2의 라이프사이클은 크게 3가지 주축을 바탕으로 이루어 진다. 영어단어라 그런지 ed, ing로 구분하는게 굉장히 불편하긴 한데 전반적인 흐름은 다음과 같다. 표를 보듯 이렇게 복잡한 이유는, 모든 행동은 각각에 대한 상태값을 가지게 되는데, 왜 이렇게 복잡하게 만들어 졌냐면 바로 API형식으로 사용하게 되기 때문이다.

 

Launch를 하게 되면 실제로 돌아가는(OS, App)서비스가 구동이 되며(Running) 이것을 멈추기 위한 명령어를 실행하면(stop~stopping) 구동중인 서비스를 정지 시킨다(stopped). 이런 서비스를 삭제하고 싶으면 termiate를 하여 실제로 삭제 시킨다.(teminatied). 

 

조금 눈여겨 볼 것이 하나 있는데 "절전 모드"를 지원한다. 실행중인 app을 중지하지 않고 절전 재개(다시)하게 될때 인스턴스 크기를 변경할 수 없다. EBS루트 볼륨의 암호화가 필수저이다.

 

이런것을 하나하나 감시하는 것이 cloudWatch인데 각 서비스의 감시항목(cpu, 용량, 트레픽 등등)을 확인할 수 있으며 로그 감시로 메트릭스와 알람도 작성이 가능하다. sns과 연동할 수 있으며 허용치 초과시 자동으로 확장 등등의 최대한의 사용자 편의를 제공한다.

 

Retirement와 같은 이벤트가 종종 발생할 수 도 있는데 별건아니고 굉장히 중요한 이벤트이다. AWS에서도 실제로 구동중인 물리적인 기기가 있는데 이 기기를 교체할때 나타나는 이벤트이다. 이 기기를 교체하기 앞서 기기를 사용하는 사용자의 루트계정에 알람이 가게된다. 여기서 흥미로운 사건이 종종 발생하게된다. 루트계정은 보통 누가 관리할까? 최소 이사급 이상의 오너 가 관리하게 된다. 그런데 이 오너에게 이벤트 알람이 가게 된다고 생각해 보자. 한국의 경우 영어권이 아니기 때문에 영어로 메일이 오게 되면 일단 거부반응부터 일으키곤 한다. 그래서 이것을 읽지 않는 경우가 생기게 되며, 서비스가 중지되어 항의를 할 경우 AWS 에서는 "알림을 보냈기에 서비스가 중단되어도 우리 책임이 아니다." 라고 할 수 있다.

 

Auto recovery 라는 개념이 있다. 인스턴스의 이상을 감지하고 복구하는 개념인데, 2가지 기준을 바탕으로 이상을 감지하며 자동으로 서비스를 자동으로 리부트 해준다. 

1. StatusCheckFaile_System : 인스턴스를 호스팅하는 하드웨어에서 문제가 발생할 경우 나타나는 에러 메세지다.

2. StatusCheckFaile_Instacne : ec2인스턴스 내부에서 장애가 발생하는 경우이다. 

 

이런 EC2에 대한 자동화 도구는 단순 나열만해도 엄청나게 많은데 주요 개념 3개만 간단히 표로 정리해 보았다.

User Data 쉘 스크립트를 사용할 수 있게 해 준다.
Launch Template EC2 생성 시 다양한 스트링과 스텝을 하나의 템플릿으로 만들어 둔 것이다.(최초 작성시에는 스텝을 진행해야하지만 그 후에는 자동화로서 지원한다)
Instance Meta Data EC2인스턴스의 보유 데이터를 이야기한다. 여기서 말하는 데이터는 Ec2가 생성되면서 나오는 privite IP, instance id와 같은 삭제가 되지 않으면 변하지 않는, 고정되는 것을 의미한다.
Ec2 Fleet 장애가 발생할 경우 자동으로 다른 인스턴스로 교체를 해준다.
이 외에도 AWS CLI, SDK, Amazon EC2 Systems MAnager, Auto Scaling....등등이 있다.

 

'Cloud > AWS 기초' 카테고리의 다른 글

AWS VPC part 2. (NAT와 네트워크 동작원리)  (0) 2022.02.04
AWS VPC part. 1(VPC란 무엇일까?)  (0) 2022.02.04
CDN이란? (AWS's CloudFront)  (0) 2021.11.24
Amazon BigDATA part.2  (0) 2021.10.12
Amazon Bigdata part.1  (0) 2021.10.10