인프라를 다루어야하는 일이 생겨서 빠르게 AWS용어를 정리하고자 글을 적었습니다. 내용이 다소 빈약할 수 있습니다.
가용영역(AZ)
1개 이상의 데이터 센터를 논리적 그룹으로 묶어 놓은 인프라 입니다.
여러개를 묶은 데이터 센터입니다.
리전(Region)
3개 이상의 가용영엯을 논리적으로 묶음 입니다.
데이터 센터를 그룹한걸 또 그룹한 것입니다
ELB를 사용할 때 왜 AZ를 2개 선택해야하는가?
데이터센터 하나만 있을 경우 센터에 장애가 나면 전체 시스템이 마비가 됩니다
그래서 최소한 2개이상의 가용역을 사용하게 되면 각각의 가용영역에 ㅇ니스턴스를 두고 로드밸런서로 분산하면 한쪽이 무너지더라도 전체시스템이 붕괴되진 않습니다.
systemctl enable nginx
enable은 껐다 켜지더라도 자동으로 실행될 수 있도록 하는 것이다.
ELB실습
로드 밸런서 만들기 전에 Target Group을 먼저 만들어야 한다.
왜냐하면 아무 인스턴스에게 부하를 분산해주면 안되기 때문이다.
정해진 인스턴스들한태 부하를 분산하기 위해 그루핑 하는 것입니다.
Target Group에서 ASG를할거라 인스턴스 생성된것을 선택하지는 않는다.
ELB종류
항상 백엔드 개발자는 프로토콜이 바로나와야한다고 배웠다. 프로토콜을 생각하자 특히 L4/ L7
- ALB : HTTP, HTTPS통신할 때 주로 사용
- NLB : TCP/ UDP 통신할 때 주로 사용
게임서버는 일반적으로 TCP또는 UDP기반이라서 NLB를 추천한다
ALB가용영역 2개를 하는게 좋다 만약 하나의 데이터센터가 문제가 생기면 이를 방지 하기 위한것이다.
오토스케일링 (ASG)
오토스케일링시에 아무 인스턴스나 생성되면 안된다. 원하는 인스턴스가 만들어져야 한다. 그래서 이 설정을
위해서는 인스턴스의 이미지를 AMI로 만들고 환경을 설정하는 런치 템플릿을 만들어야 한다.
이 템플릿을 가지고 오토스케일링 그룹을 만들때 템플릿을 가지고 확장한다.
오토스케일링 그룹 설정에서 타겟 그룹을 선택하고 인스턴스가 늘어나면 타겟 그룹에 등록하겠다는 설정을 하면 된다.
1. AMI 만들기 - 그런데 AMI가 원하는 환경으로 확장되길 원하니까 시작 템플릿을 만들어주어야 한다.
2. ASG생성
주의사항 : 로드밸런서랑 ASG가용영역을 맞춰줘야하 한다
ASG랑 Target Group은 같다고 생각하면 된다
대상그룹 draining이란 로드밸런서가 더이상 이쪽으로 오는 트래픽을 막고 처리하고있는 것들만 처리하고 보내주기만 하고 트래픽을 받지 않고 드레이닝이 끝나면 인스턴스를 지워야한다. 그냥지우게 된다면 사용자가 이용하는도중에 끊기는 문제가 발생하게 된다.
드레이닝 했다고 ASG가 늘어나진 않는다. 지워져야 늘어나게 되는것이다 ASG의 인스턴스는 살아있고 타겟그룹에서만 배제되었기때문이다.