시작하기에 앞서 새로운 AMI 를 만들어준다. 우리는 이전에 Amazon Linux 2023 AMI를 사용했지만 이 버전에서는 401 에러가 난다. 그러므로 Amazon Linux 2 AMI (HVM) - Kernel 5.10, SSD Volume Type 인 AMI를 새로 생성해주고 시작한다.
Linux 2 AMI를 새로 만들어주고, 이 AMI를 사용해서 인스턴스 2개를 새로 생성한다.
인스턴스의 이름을 지어주고, 키 페어와 보안 그룹은 이전에 생성했던 것을 사용한다. 그리고 인스턴스 갯수는 2개를 생성한다.
2개의 인스턴스가 새로 생성되었을 것이다. 구분 짓기 위해 이름을 각각 First와 Second로 지어준다.
해당 인스턴스의 퍼블릭 IP 주소로 들어가면 둘 다 동일하게 Hello, world! 가 나타나게 된다. 각 인스턴스의 웹사이트에 번호를 부여해서 이들을 구분짓도록 하자. 인스턴스 연결로 들어간다.
사용자 이름이 root로 되어있을 텐데 ec2-user로 변경한 뒤 연결을 한다.
콘솔 창에서
sudo -s
nano /var/www/html/index.html
을 입력한다.
Hello, world! -> Hello, world 1
로 변경한다. Ctrl+x, y, 엔터를 누르면 변경된다.
Second 인스턴스도 동일한 방식으로 변경한다.
좌측 대시보드에 로드 밸런싱 -> 대상 그룹으로 들어간다.
대상 그룹을 생성한다.
대상 유형은 인스턴스를 선택하고 대상 그룹의 이름을 지어준다.
상태 검사에서 상태 검사 경로를
/index.html
로 설정한다.
위에서 만들었던 2개의 인스턴스들을 모두 선택하고 아래에 보류 중인 것으로 포함을 누른뒤, 대상 그룹을 생성한다.
성공적으로 대상 그룹이 만들어졌다.
좌측 대시보드에 로드 밸런싱 -> 로드밸런서로 들어간다.
로드 밸런서를 생성한다.
다양한 로드 밸런서가 존재한다. 우리는 Application Load Balancer를 생성한다.
로드 밸런서에 이름을 지어준다.
네트워크 매핑으로 가용 영역을 선택한다. 모두 선택해준다.
보안 그룹은 우리가 이전에 생성했던 보안 그룹들을 추가한다.
우리가 방금 만들었던 대상 그룹을 선택해준다. 로드 밸런서를 생성한다.
로드 밸런서를 만들면 상태가 프로비저닝 중이라고 나올 것이다. 기다리면 활성 상태가 된다.
로드 밸런서의 DNS 이름으로 웹 페이지를 들어간 다음, 새로 고침을 하면 2개의 인스턴스의 웹 페이지가 번갈아가면서 나타나게 된다. Auto Scailing 과 연동을 해보자.
좌측 대시보드에 Auto Scailing -> Auto Scailing 그룹으로 들어간다.
시작 템플릿을 생성한다.
시작 템플릿의 이름을 지어주고, AMI는 내 AMI, 인스턴스 유형은 t2.micro, 키 페어와 보안 그룹은 우리가 전에 생성한 것을 사용한다. 고급 세부 정보의 사용자 데이터에
#!/bin/bash
INSTANCE_ID=$(curl -s http://169.254.169.254/latest/meta-data/instance-id)
echo "$INSTANCE_ID" >> /var/www/html/index.html
를 추가해준다.
오토 스케일링 그룹의 이름을 지어주고, 우리가 만든 시작 템플릿을 선택한다.
가용 영역은 전부 선택해준다.
기존 로드 밸런서에 연결을 선택하고 우리가 만든 대상 그룹을 선택한다.
상태 확인에서 Elastic load balancer 상태 확인 켜기를 선택한다.
원하는 용량, 최소 용량, 최대 용량을 모두 2개씩 선택해준다.
태그에서 키와 값의 이름을 지어준다.
오토 스케일링 그룹을 생성한다.
인스턴스의 갯수가 우리가 원하는 용량 (2개) 가 될 때까지 기다린다. 활동을 들어가면 실패가 나올 수도 있는데 가용 영역에 용량이 없어서 그렇다. 자연스러운 경우이므로 너무 놀라지 않아도 괜찮다.
인스턴스로 돌아가면 우리가 만든 Auto Scailing Group 인스턴스 2개가 새로 만들어져있다. 맨 처음 만들었던 First와 Second는 이제 필요없으므로 종료시켜도 좋다.
해당 인스턴스의 퍼블릭 IP 주소로 들어가면,
이렇게 Hello, world! 뒤에 인스턴스 ID가 붙게 된다.
또한 우리가 만든 로드 밸런서로 돌아가 다시 새로 고침을 해보면 이렇게 오토 스케일링으로 만든 인스턴스들이 번갈아가면서 나타나게 된다. 오토 스케일링 그룹을 잘 사용하면 여러 개의 인스턴스들을 AWS에서 알아서 관리하도록 만들 수 있다.
오토 스케일링 그룹에서 편집으로 들어가 원하는 용량과 최소 용량을 0개로 만들어주면 EC2 인스턴스들이 알아서 종료되게 된다. 하지만 바로 종료되지 않고 300초에 유예 시간을 가지게 된다.
이게 기다리기 싫으면 그냥 항상 하듯이 인스턴스 종료를 해줘도 된다.
'Study > AWS' 카테고리의 다른 글
AWS - S3 버킷 생성 (0) | 2023.11.16 |
---|---|
AWS - EFS를 활용한 스토리지 공유 웹 서버 생성 (0) | 2023.11.15 |
AWS - Elastic IP 실습 (0) | 2023.11.13 |
AWS - EC2 권한 부여하기 (0) | 2023.11.11 |
AWS - 보안 그룹 설정하기 (1) | 2023.11.09 |