2023. 4. 9. 00:28ㆍAWS (Amazon Web Services)
※ 해당 블로그는 AWS에서 제공하는 설명서와 AWS Builders Online Series 강의를 듣고 개인적으로 공부한 내용을 정리한 블로그입니다.
Auto Scaling
- 클라우드 컴퓨팅에서 자동으로 리소스를 확장하거나 축소하여 애플리케이션 성능을 최적화하는 기능
- 서버 인스턴스 수를 동적으로 조절하여 인프라를 효율적으로 활용 가능
- 갑작스러운 서비스 트래픽 증가 상황에 운영자 개입 없이 자동으로 서버 추가
- 장애가 발생하더나 해킹으로 인해 인스턴스가 응답하지 않는 상황에도 새로운 인스턴스를 생성하여 항상 서비스를 제공할 수 있음
- *Scale(in, out, up, down) 같은 기능을 사용하여 인스턴스 수 조절
*Scale Out : 서버 수를 늘림
*Scale in : 서버 수를 줄임
*Scale up : 서버 사양을 고사양 스펙으로 변경
*Scale down : 서버 사양을 저사양 스펙으로 변경
Auto Scaling 생성
1. 시작 템플릿 또는 구성 선택
1.1 Auto Scaling 그룹 이름
1.2 시작 템플릿
오토스케일링 그룹을 생성할 때 시작 템플릿 또는 시작 구성을 선택해야 하는 설정이 있음
시작 템플릿과 시작 구성 둘다 EC2 인스턴스를 구성하는 데 필요한 속성을 지정
예) AMI(Amazon Machine Image), 인스턴스 유형, 보안 그룹, 스토리지 등
오토스케일링으로 인스턴스를 생성할 때 시작 템플릿이나 시작 구성을 토대로 생성
다만 시작 템프릿이 시작 구성보다 더 다양한 속성(버전 관리, 태그 지원 등)을 제공
AWS에서도 오토스케일링 그룹을 생성 할 때는 시작 템플릿을 사용하는 것을 권고 하고 있기 때문에 시작 템플릿 사용
시작 템플릿 생성을 하기 전에 사전 작업이 필요
사전 작업 : AMI 생성
본 실습에서는 사전에 만들어둔 Amazon EC2 인스턴스를 오토스케일링 대상으로 사용할 것이기 때문에 사전에 만들어 둔 인스턴스의 AMI을 생성해야 함
AMI을 생성하면 사용 가능으로 바뀌기까지 시간이 좀 소요됨
시작 템플릿 생성
Auto Scaling 지침 :오토스케일링에 사용할 수 있는 템플릿을 설정하는 데 도움이 되는 지침 제공
예) 서브넷을 설정 할 필요 없음
서브넷 설정 하는 부분에서 자세히 설명
AMI(keum-AMI)
인스턴스 유형 - t3.micro
실제로 서버를 운영할 것이 아니기 때문에 제일 낮은 사양인 t2.micro 사용
키 페어
사전에 만들어둔 키 페어 사용 없다면 새 키 페어 생성
네트워크 설정
오토스케일링 그룹 생성 2단계 네트워크 설정 부분에서 가용영역 선택을 하기 때문에 이 부분에서는 서브넷을 선택할 필요 없음
여기서 서브넷을 선택하는 경우는 시작 템플릿만으로 인스턴스를 생성할 때 필요하기 때문임
하지만 오토스케일링에 사용할 것이기 때문에 서브넷 설정은 필요 없음
보안 그룹
오토스케일링으로 생성되는 인스턴스들은 프라이빗 서브넷에 배치되기 떄문에 이 인스턴스에 접속하기 위해서는 퍼블릭 서브넷에 존재하는 인스턴스를 통해서 접속해야함
ssh로 접속할 것이기 때문에 인바운드 규칙에 ssh 개방
서브넷을 선택할 경우 다음과 같은 오류 메세지 발생
스토리지
원하는 용량 설정
요약
생성한 시작 템플릿 설정
2. 인스턴스 시작 옵션 선택
2.1 네트워크
서로 다른 가용영역에 존재하는 프라이빗 서브넷 생성
오토스케일링으로 생성되는 인스턴스들은 두 가용영역에 존재하는 프라이빗 서브넷에 분배되어 배치됨
3. 고급 옵션 구성 - 선택 사항
3.1 로드 밸런싱 - Amazon ELB (tistory.com)
ELB 종류별로 실습한 링크가 있음
3.2 상태 확인
비정상적인 인스턴스가 발견 되었을때 정상적인 인스턴스로 교체하여 가용성을 높임
3.3 추가 설정
CloudWatch를 활성화 하여 모니터링 할 수 있으며 기본 인스턴스 워밍업 활성화를 통해 새로운 인스턴스에 대한 CloudWatch 지표를 그룹의 집계된 인스턴스 지표에 반영하지 않을 시간을 설정 할 수 있음
즉 이제 막 새로 생성된 인스턴스의 데이터를 초반에 신뢰할 수 없기 때문에 일정 시간이 지난 이후에 반영
4. 그룹 크기 및 크기 조정 정책 구성
4.1 그룹 크기
생성할 인스턴스 용량을 설정 할 수 있음
4.2 크기 조정 정책
어떤 변화에 인스턴스의 용량을 조정할지 선택
인스턴스들의 평균 CPU 사용률이 50% 이상일 경우 인스턴스 수 증가
4.3 인스턴스 축소 보호
사용자가 실수로 EC2 인스턴스를 중지하거나 종료 할 때, 해당 인스턴스의 중요한 데이터와 설정 정보를 보호하기 위한 기능
5. 알림 추가
오토스케일링 그룹의 EC2 인스턴스를 시작하거나 종료할 때마다 SNS로 알림을 전송하는 기능
6. 태그 추가
태그를 추가하여 Auto Scaling 그룹의 검색, 필터링 추적에 용이하게 설정 할 수 있음
7. 검토
1단계부터 6단계까지 설정한 내용이 맞는지 검토하는 단계
검토가 마무리 된 후에는 Auto Scaling 그룹 생성 버튼 클릭
Amazon EC2 인스턴스 접속
그룹 크기 설정 대로 6개의 인스턴스가 생성이 된것을 확인 할 수 있으며
두개의 가용영역에 설정 한 대로 두개의 가용영역에 3개씩 인스턴스가 생성된걸 확인 할 수 있음
해당 인스턴스들은 모두 프라이빗 서브넷에 배치되어 있음
이 인스턴스들은 인터넷에 직접 연결되어 있지 않기 때문에 외부에서 직접적으로 접속 할 수 없기 때문에 인터넷이 가능한 퍼블릭 서브넷에 존재하는 인스턴스를 통해 접속해야함(이 인스턴스를 Bastion Host라고 부름)
Bastion Host : 보안을 강화하기 위해 사용되는 중간 단계의 호스트로, 보통 외부에서 접근이 프라이빗 서브넷에 위치하여 프라이빗 서브넷에 위치한 내부 보안이 강화된 인스턴스에 접근하는 역할로 사용됨
퍼블릭 서브넷에 생성한 인스턴스에는 프라이빗 서브넷에 생성된 인스턴스의 키(AWS_keum)가 있어야함
1. 퍼블릭 인스턴스 접속
2. 퍼블릭 인스턴스에 프라이빗 키 다운로드
퍼블릭 인스턴스에서 프라이빗 인스턴스로 접속하기 위해서는 프라이빗 키가 필요
키가 위치한 환경에서 진행
현재 키가 윈도우 C 드라이브에 있기 때문에 윈도우 cmd에서 진행
윈도우에서 리눅스로 파일 전송 하는 방법 중 하나인 scp 사용
scp -i '퍼블릭 키 경로' '프라이빗 키 경로' ubuntu@퍼블릭 IP':.
퍼블릭 인스턴스에 키가 다운로드 된 것을 확인 할 수 있음
현재 키에는 750 권한이 부여 되어 있음 즉 키 소유자 이외의 사용자들도 키를 사용할 수 있음
이를 방지하기 위해 필요한 만큼만 권한을 재부여
400 권한을 부여 - 소유자만 사용 가능
권한 변경을 하지 않고 키를 사용 한다면 키에 너무 많은 권한이 부여 되어 있다는 경고 메세지와 함께 사용할 수 없음
적절한 권한으로 재 부여한 키로 프라이빗 인스턴스에 접속
성공적으로 접속한 것을 확인 할 수 있음
인터넷 연결 확인
프라이빗 서브넷은 NAT 게이트웨이 연결되어 있기 때문에 거기에 위치한 인스턴스들은 NAT 게이트웨이를 통해 인터넷 접속 가능
프라이빗 서브넷에 배치되어 있지만 NAT 게이트웨이에 연결되어 있지 않으면 다음과 같이 인터넷에 접속 할 수 없기 때문에 프로그램을 설치 할 수 없음
'AWS (Amazon Web Services)' 카테고리의 다른 글
Amazon CloudFront (0) | 2023.06.06 |
---|---|
Elastic Network Interface (0) | 2023.05.11 |
AWS IAM (0) | 2023.04.07 |
Amazon VPC (0) | 2023.04.07 |
Amazon S3 권한 설정 (0) | 2023.04.06 |