자습서: 조정 및 로드 밸런싱된 애플리케이션 설정 - Amazon EC2 Auto Scaling

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

자습서: 조정 및 로드 밸런싱된 애플리케이션 설정

중요

이 자습서를 살펴보기 전에 먼저 다음 소개 자습서를 검토하는 것이 좋습니다. 첫 번째 Auto Scaling 그룹 만들기.

Auto Scaling 그룹을 Elastic Load Balancing 로드 밸런서에 등록하면 로드 밸런싱된 애플리케이션을 설정하는 데 도움이 됩니다. Elastic Load Balancing은 Amazon EC2 Auto Scaling과 함께 작동하여 정상적인 Amazon EC2 인스턴스 전체에 수신 트래픽을 분산시킵니다. 이렇게 하면 애플리케이션의 스케일 아웃성과 가용성이 향상됩니다. 여러 가용 영역 내에서 Elastic Load Balancing을 활성화하여 애플리케이션의 내결함성을 높일 수 있습니다.

이 자습서에서는 Auto Scaling 그룹을 만들 때 로드 밸런싱된 애플리케이션을 설정하는 기본 단계에 대해 설명합니다. 완료되면 아키텍처는 다음 다이어그램과 유사해야 합니다.

Application Load Balancer를 사용하는 Auto Scaling 그룹입니다.

A: Elastic Load Balancing은 여러 타입의 로드 밸런서를 지원합니다. 이 자습서에서는 Application Load Balancer를 사용하는 것이 좋습니다.

아키텍처에 로드 밸런서를 도입하는 방법에 대한 자세한 설명은 Elastic Load Balancing을 사용하여 Auto Scaling 그룹의 인스턴스 간에 트래픽 분산을 참조하세요.

필수 조건

  • 로드 밸런서 및 대상 그룹. Auto Scaling 그룹에 사용할 로드 밸런서에 대해 동일한 가용 영역을 선택해야 합니다. 자세한 설명은 Elastic Load Balancing 사용자 가이드Elastic Load Balancing 시작하기를 참조하세요.

  • 출범 템플릿 또는 출범 구성에 대한 보안 그룹. 보안 그룹은 리스너 포트(일반적으로 HTTP 트래픽의 경우, 포트 80) 및 Elastic Load Balancing에서 건전성 체크에 사용하도록 할 포트 둘 다에서 로드 밸런서의 액세스를 허용해야 합니다. 자세한 설명은 다음과 같이 해당 문서를 참조하세요.

    인스턴스에 퍼블릭 IP 주소가 있는 경우, 인스턴스에 연결해야 한다면 선택적으로 SSH 트래픽을 허용할 수 있습니다.

  • (선택 사항) 애플리케이션에 액세스 권한을 부여하는 IAM 역할. AWS

  • (옵션) Amazon EC2 인스턴스의 소스 템플릿으로 정의된 Amazon Machine Image(AMI). 지금 생성하려면 인스턴스를 출범합니다. (생성한 경우) IAM 역할을 지정하고 필요한 구성 스크립트를 사용자 데이터로 지정합니다. 인스턴스에 연결하여 인스턴스를 맞춤합니다. 예컨대, 소프트웨어 및 애플리케이션을 설치하고, 데이터를 복사하고, 추가 EBS 볼륨을 연결할 수 있습니다. 인스턴스에서 애플리케이션을 테스트하여 인스턴스가 올바르게 구성되었는지 확인합니다. 이 업데이트된 구성을 맞춤 AMI로 저장합니다. 이 인스턴스가 나중에 필요하지 않을 경우, 해지할 수 있습니다. 이 새로운 맞춤 AMI에서 인스턴스를 출범하면 해당 AMI를 만들 때 지정한 사용자 정의 값을 포함하게 됩니다.

  • Virtual Private Cloud(VPC). 이 자습서에서는 기본 VPC를 참조하지만 자체 VPC도 사용할 수 있습니다. 자체 VPC를 사용 중인 경우, 작업 중인 지역의 각 가용 영역에 매핑된 서브넷이 VPC에 있는지 확인합니다. 로드 밸런서를 생성하려면 사용 가능한 퍼블릭 서브넷이 최소한 두 개 있어야 합니다. Auto Scaling 그룹을 생성한 다음 로드 밸런서에 등록하려면 프라이빗 서브넷 또는 퍼블릭 서브넷이 두 개 있어야 합니다.

1단계: 출범 템플릿 또는 출범 구성 설정

이 자습서에는 출범 템플릿 또는 출범 구성 중 하나를 사용합니다.

시작 템플릿을 선택하거나 생성합니다.

사용하려는 출범 템플릿이 이미 있으면 다음 절차를 사용하여 해당 구성을 선택합니다.

기존 출범 템플릿을 선택하려면
  1. Amazon EC2 콘솔의 Launch templates(출범 템플릿) 페이지를 엽니다.

  2. 화면 상단의 탐색 모음에서 로드 밸런서가 생성된 지역을 선택합니다.

  3. 출범 템플릿을 선택합니다.

  4. Actions(작업), Create Auto Scaling group(Auto Scaling 그룹 생성)을 선택합니다.

또는 다음 절차를 사용하여 새 출범 템플릿을 생성합니다.

출범 템플릿 생성
  1. Amazon EC2 콘솔의 Launch templates(출범 템플릿) 페이지를 엽니다.

  2. 화면 상단의 탐색 모음에서 로드 밸런서가 생성된 지역을 선택합니다.

  3. Create launch template(출범 템플릿 생성)을 선택합니다.

  4. 출범 템플릿의 이름을 입력하고 초기 버전에 대한 설명을 제공하세요.

  5. 애플리케이션 및 OS 이미지(Amazon Machine Image)(Application and OS Images (Amazon Machine Image))에서 인스턴스의 AMI ID를 선택합니다. 사용 가능한 모든 AMI를 검색하거나 최근(Recents) 또는 빠른 시작(Quick Start) 목록에서 AMI를 선택할 수 있습니다. 필요한 AMI가 표시되지 않으면 더 많은 AMI 찾아보기(Browser more AMIs)를 선택하여 전체 AMI 카탈로그를 확인합니다.

  6. [Instance type]에서 지정한 AMI와 호환되는 인스턴스에 대한 하드웨어 구성을 선택합니다.

  7. (옵션) 키 페어 이름(로그인)에서 인스턴스와 연결할 때 사용할 키 페어를 선택합니다.

  8. 네트워크 설정(Network settings)에서 고급 네트워크 구성(Advanced network configuration)을 스케일 아웃하고 다음을 수행하십시오:

    1. 네트워크 인터페이스 추가(Add network interface)를 선택하여 기본 네트워크 인터페이스를 구성합니다.

    2. 퍼블릭 IP 자동 할당의 경우 인스턴스가 퍼블릭 IPv4 주소를 수신할지 여부를 지정합니다. 기본적으로 Amazon EC2는 EC2 인스턴스가 기본 서브넷에서 시작되거나 퍼블릭 IPv4 주소를 자동으로 할당하도록 구성된 서브넷에서 인스턴스가 시작되는 경우 퍼블릭 IPv4 주소를 할당합니다. 인스턴스에 연결할 필요가 없는 경우 [Disable] 을 선택하여 그룹의 인스턴스가 인터넷에서 직접 트래픽을 수신하지 못하게 할 수 있습니다. 이 경우, 로드 밸런서에서만 트래픽을 수신합니다.

    3. 보안 그룹 ID의 경우, 로드 밸런서와 동일한 VPC의 인스턴스에 대한 보안 그룹을 지정합니다.

    4. 해지 시 삭제에 대해 를 선택합니다. 그러면 Auto Scaling 그룹 축소 시 네트워크 인터페이스가 삭제되고 네트워크 인터페이스가 연결되는 인스턴스가 해지됩니다.

  9. (옵션) 인스턴스 자격 증명을 안전하게 배치하려면 [Advanced details], [IAM instance profile]에서 IAM 역할의 ARN(Amazon 리소스 이름)을 입력합니다.

  10. (옵션) 인스턴스에 대한 사용자 데이터 또는 구성 스크립트를 지정하려면 [Advanced details], [User data]에 붙여넣습니다.

  11. Create launch template(출범 템플릿 생성)을 선택합니다.

  12. 확인 페이지에서 Auto Scaling 그룹 생성을 선택합니다.

출범 구성 생성 또는 선택

참고

시작 구성은 계획된 투자가 필요 없는 레거시 기능이므로 새 애플리케이션에서의 시작 구성은 사용하지 않는 것이 좋습니다. 또한 2023년 6월 1일 또는 그 이후에 생성된 새 계정에는 콘솔을 통해 새 시작 구성을 생성할 수 있는 옵션이 없습니다. 자세한 정보는 출범 구성을 참조하세요.

기존 출범 구성을 선택하려면
  1. Amazon EC2 콘솔의 Launch configurations(출범 구성) 페이지를 엽니다.

  2. 상단의 탐색 모음에서 로드 밸런서가 생성된 리전을 선택합니다.

  3. 출범 구성을 선택합니다.

  4. Actions(작업), Create Auto Scaling group(Auto Scaling 그룹 생성)을 선택합니다.

또는 다음 절차를 사용하여 새 출범 구성을 생성합니다.

출범 구성을 생성하려면
  1. Amazon EC2 콘솔의 출범 구성 페이지를 엽니다. 확인 메시지가 표시되면 출범 구성 보기를 선택하여 출범 구성 페이지를 볼 것인지 확인합니다.

  2. 상단의 탐색 모음에서 로드 밸런서가 생성된 리전을 선택합니다.

  3. Create launch configuration(출범 구성 생성)을 선택하고 출범 구성의 이름을 입력합니다.

  4. Amazon Machine Image(AMI)에 대해 인스턴스의 AMI ID를 검색 기준으로 입력합니다.

  5. Instance type(인스턴스 타입)으로 인스턴스의 하드웨어 구성을 선택합니다.

  6. Additional configuration(추가 구성)에서 다음 필드에 주의하세요.

    1. (옵션) EC2 인스턴스에 자격 증명을 안전하게 배치하려면 IAM instance profile(IAM 인스턴스 프로필)로 자신의 IAM 역할을 선택합니다. 자세한 설명은 Amazon EC2 인스턴스에서 실행되는 애플리케이션에 대한 IAM 역할 섹션을 참조하세요.

    2. (옵션) 인스턴스에 대한 사용자 데이터 또는 구성 스크립트를 지정하려면 Advanced details(고급 세부 정보), User data(사용자 데이터터)에 붙여 넣습니다.

    3. (옵션) Advanced details(고급 세부 정보), IP address type(IP 주소 타입)에 대해서는 기본값을 유지합니다. Auto Scaling 그룹을 생성할 때, 기본 VPC의 기본 서브넷과 같이 퍼블릭 IP 주소 지정 속성이 활성화된 서브넷을 사용하여 Auto Scaling 그룹의 인스턴스에 퍼블릭 IP 주소를 할당할 수 있습니다. 또는 인스턴스에 연결할 필요가 없는 경우, 그룹의 인스턴스가 인터넷에서 직접 트래픽을 받지 못하도록 어느 인스턴스에도 퍼블릭 IP 주소를 할당하지 않습니다.를 선택할 수 있습니다. 이 경우, 로드 밸런서에서만 트래픽을 수신합니다.

  7. Security groups(보안 그룹)로 로드 밸런서와 동일한 VPC의 기존 보안 그룹을 선택합니다. Create a new security group(새 보안 그룹 생성) 옵션을 선택한 상태로 두면 Linux를 실행하는 Amazon EC2 인스턴스에 대해 기본 SSH 규칙이 구성됩니다. 기본 RDP 규칙은 Windows를 실행하는 Amazon EC2 인스턴스에 대해 구성되어 있습니다.

  8. Key pair (login)(키 페어(로그인))로 Key pair options(키 페어 옵션) 아래에 있는 옵션을 선택합니다.

    Amazon EC2 인스턴스 키 페어를 이미 구성했다면 여기에서 선택할 수 있습니다.

    아직 Amazon EC2 인스턴스 키 페어가 없다면 Create a new key pair(새 키 페어 생성)을 선택하고 식별 가능한 이름을 지정합니다. Download key pair(키 페어 다운로드)를 선택하여 컴퓨터에 키 페어를 다운로드합니다.

    중요

    인스턴스에 연결해야 하는 경우, Proceed without a key pair(키 페어 없이 계속)를 선택하지 마세요.

  9. 승인 확인란을 선택한 다음 Create launch configuration(출범 구성 생성)을 선택합니다.

  10. 새 출범 구성 이름 옆의 확인란을 선택하고 Actions(작업),Create Auto Scaling group(Auto Scaling 그룹 생성)을 선택합니다.

2단계: Auto Scaling 그룹 생성

출범 템플릿 또는 출범 구성을 선택 또는 생성한 후 중단한 시점부터 계속하려면 다음 절차를 따르세요.

Auto Scaling 그룹 생성
  1. 출범 템플릿 또는 구성 선택 페이지에서 Auto Scaling 그룹 명칭에 Auto Scaling 그룹의 이름을 입력합니다.

  2. [출범 템플릿만 해당] Launch template(출범 템플릿)에서 Auto Scaling 그룹이 스케일 아웃 시 출범 템플릿의 기본 버전을 사용할지, 최신 버전을 사용할지, 아니면 특정 버전을 사용할지 선택합니다.

  3. 다음을 선택합니다.

    인스턴스 출범 옵션 선택(Choose instance launch options) 페이지가 나타나 Auto Scaling 그룹에서 사용할 VPC 네트워크 설정을 선택하고 온디맨드 및 스팟 인스턴스를 출범하기 위한 옵션을 제공합니다(출범 템플릿을 선택한 경우).

  4. 네트워크(Network) 섹션에서 VPC에 대해 로드 밸런서에 사용한 VPC를 선택합니다. 기본 VPC를 선택하면 인스턴스에 인터넷 연결을 제공하도록 자동으로 구성됩니다. 이 VPC는 해당 지역의 각 가용 영역에 퍼블릭 서브넷을 포함시킵니다.

  5. 가용 영역 및 서브넷(Availability Zones and subnets)의 경우, 로드 밸런서가 있는 가용 영역에 따라 포함할 각 가용 영역의 서브넷을 하나 이상 선택합니다. 자세한 설명은 VPC 서브넷 선택 시 고려 사항 섹션을 참조하세요.

  6. [출범 템플릿만 해당] Instance type requirements(인스턴스 타입 요건) 섹션에서 기본 설정을 사용하여 이 단계를 단순화합니다. (출범 템플릿을 재정의하지 마세요.) 이 자습서에서는 출범 템플릿에 지정된 인스턴스 타입을 사용하여 온디맨드 인스턴스만 시작합니다.

  7. 다음(Next)을 선택하고 고급 옵션 구성(Configure advanced options) 페이지로 이동합니다.

  8. 그룹을 기존 로드 밸런서에 연결하려면 로드 밸런싱(Load balancing) 섹션에서 기존 로드 밸런서에 연결(Attach to an existing load balancer)을 선택합니다. 로드 밸런서 대상 그룹에서 선택(Choose from your load balancer target groups) 또는 Classic Load Balancer에서 선택(Choose from Classic Load Balancers)을 선택할 수 있습니다. 그런 다음 생성한 Application Load Balancer 또는 Network Load Balancer의 대상 그룹 명칭을 선택하거나 Classic Load Balancer의 이름을 선택할 수 있습니다.

  9. (옵션) Elastic Load Balancing 건전성 체크를 사용하려면 Health checks(건전성 체크)에 대해 Health check type(건전성 체크 타입)에서 ELB를 선택합니다.

  10. Auto Scaling 그룹 구성을 완료했으면 Skip to review(검토로 이동)를 선택합니다.

  11. Review(검토) 페이지에서 Auto Scaling 그룹의 세부 정보를 검토합니다. [Edit]를 선택하여 변경할 수 있습니다. 모두 마쳤으면 Auto Scaling 그룹 생성을 선택합니다.

로드 밸런서가 연결된 Auto Scaling 그룹을 생성한 후, 로드 밸런서는 온라인 상태가 될 때 새 인스턴스를 자동으로 등록합니다. 이 시점에서는 인스턴스가 하나만 있으므로 등록할 사항이 많이 않습니다. 그러나 원하는 그룹의 용량을 업데이트하여 인스턴스를 더 추가할 수 있습니다. step-by-step 지침은 을 참조하십시오귀하의 Auto Scaling 그룹의 원하는 용량 변경.

3단계: 로드 밸런서가 연결됐는지 확인

로드 밸런서가 연결됐는지 확인하려면
  1. Amazon EC2 콘솔의 Auto Scaling groups(Auto Scaling 그룹) 페이지에서 Auto Scaling 그룹 옆의 확인란을 선택합니다.

  2. Details(세부 정보) 탭에서 로드 밸런싱은 연결된 모든 로드 밸런서 대상 그룹 또는 Classic Load Balancer를 표시합니다.

  3. Activity(활동)탭의 Activity history(활동 기록)에서 인스턴스가 성공적으로 시작되었는지 확인할 수 있습니다. Status(상태) 열에는 Auto Scaling 그룹에서 인스턴스를 출범했는지가 표시됩니다. 인스턴스가 시작되지 않으면 Amazon EC2 Auto Scaling 문제 해결에서 일반적인 인스턴스 출범 문제에 대한 문제 해결 아이디어를 찾을 수 있습니다.

  4. Instance management(인스턴스 관리) 탭의 Instance (인스턴스)에서 인스턴스가 트래픽을 수신할 준비가 되었는지 확인할 수 있습니다. 처음에는 인스턴스가 Pending 상태로 되어 있습니다. 인스턴스가 트래픽을 수신할 준비가 되면 상태가 InService로 전환됩니다. Status(상태) 열에는 해당 인스턴스에 대한 Amazon EC2 Auto Scaling 건전성 체크 결과가 표시됩니다. 인스턴스가 건전 상태로 표시되더라도 로드 밸런서는 로드 밸런서 건전성 체크를 통과하는 인스턴스에만 트래픽을 전송합니다.

  5. 인스턴스가 로드 밸런서에 등록되어 있는지 확인합니다. Amazon EC2 콘솔의 Target groups(대상 그룹) 페이지를 엽니다. 대상 그룹을 선택한 다음 대상 탭을 선택합니다. 인스턴스의 상태가 initial이면 인스턴스가 아직 등록 중이거나 건전성 체크 중이기 때문일 수 있습니다. 인스턴스의 상태가 healthy이면 사용할 준비가 된 것입니다.

4단계: 다음 단계

이 자습서를 완료했으므로 다음 내용을 자세히 알아볼 수 있습니다.

  • Amazon EC2 Auto Scaling은 Auto Scaling 그룹이 사용하는 건전성 체크의 상태에 따라 인스턴스가 정상인지 여부를 결정합니다. 로드 밸런서 상태 확인을 활성화한 후 인스턴스가 상태 확인에 실패하면 Auto Scaling 그룹은 해당 인스턴스를 비정상으로 간주하여 교체합니다. 자세한 정보는 상태 확인을 참조하세요.

  • 동일한 지역의 추가 가용 영역으로 애플리케이션을 스케일 아웃하여 서비스 중단 시 내결함성을 높일 수 있습니다. 자세한 설명은 가용 영역 추가 섹션을 참조하세요.

  • 대상 추적 조정 정책을 사용하도록 Auto Scaling 그룹을 구성할 수 있습니다. 이렇게 하면 인스턴스 수요가 변경될 때 인스턴스 수가 자동으로 늘어나거나 줄어듭니다. 이렇게 하면 그룹이 애플리케이션이 수신하는 트래픽 양의 변경을 처리할 수 있습니다. 자세한 설명은 대상 추적 조정 정책 섹션을 참조하세요.

5단계: 정리

이 자습서에 사용하기 위해 생성한 리소스를 다 사용한 후에는 불필요한 비용이 발생하지 않도록 리소스를 정리하는 것이 좋습니다.

Auto Scaling 그룹을 삭제하려면
  1. Amazon EC2 콘솔에서 Auto Scaling 그룹 페이지를 엽니다.

  2. Auto Scaling 그룹 옆의 확인란을 선택합니다.

  3. 삭제를 선택합니다.

  4. 확인 메시지가 표시되면 delete를 입력하여 지정된 Auto Scaling 그룹 삭제를 확인한 다음 Delete(삭제)를 선택합니다.

    Name(이름) 열의 로딩 아이콘은 Auto Scaling 그룹이 삭제 중임을 나타납니다. 삭제가 수행되면 Desired(필요), Min(최소), Max(최대) 열에 Auto Scaling 그룹에 대해 0개의 인스턴스가 표시됩니다. 인스턴스를 해지하고 그룹을 삭제하는 데 몇 분 정도 걸립니다. 목록을 새로 고침하여 상태를 확인합니다.

현재 출범 템플릿을 유지하려면 아래 절차를 건너뜁니다.

출범 템플릿을 삭제하려면
  1. Amazon EC2 콘솔의 Launch templates(출범 템플릿) 페이지를 엽니다.

  2. 출범 템플릿을 선택합니다.

  3. Actions(작업)와 Delete template(템플릿 삭제)을 차례로 선택합니다.

  4. 확인 메시지가 표시되면 Delete를 입력하여 지정된 출범 템플릿 삭제를 확인한 다음 Delete(삭제)를 선택합니다.

현재 출범 구성을 유지하려면 아래 절차를 건너뜁니다.

출범 구성을 삭제하려면
  1. Amazon EC2 콘솔의 Launch configurations(출범 구성) 페이지를 엽니다.

  2. 출범 구성을 선택합니다.

  3. Actions(작업), Delete launch configuration(출범 구성 삭제)을 선택합니다.

  4. 확인 메시지가 나타나면 Delete(삭제)를 선택합니다.

로드 밸런서를 나중에도 계속 사용하고 싶은 경우에는 다음 절차를 건너뜁니다.

로드 밸런서를 삭제하려면
  1. Amazon EC2 콘솔의 Load balancers(로드 밸런서) 페이지를 엽니다.

  2. 로드 밸런서를 선택한 다음 작업, 삭제를 선택합니다.

  3. 확인 메시지가 나타나면 예, 삭제합니다(Yes, Delete)를 선택합니다.

대상 그룹을 삭제하려면
  1. Amazon EC2 콘솔의 Target groups(대상 그룹) 페이지를 엽니다.

  2. 대상 그룹을 선택하고 [Actions], [Delete]를 차례로 선택합니다.

  3. 확인 메시지가 나타나면 예, 삭제합니다(Yes, Delete)를 선택합니다.

를 사용하면 템플릿 파일을 사용하여 리소스 컬렉션을 단일 유닛 (스택) 으로 생성 및 삭제함으로써 예측 가능하고 반복적으로 AWS 인프라 배포를 생성하고 프로비저닝할 수 있습니다. AWS CloudFormation 자세한 설명은 AWS CloudFormation 사용자 가이드를 참조하세요.

Auto Scaling 그룹과 Application Load Balancer를 프로비저닝하기 위해 스택 템플릿을 사용하는 방법은 AWS CloudFormation 사용자 가이드연습: 스케일링 및 로드 밸런싱 적용 생성을 참조하세요. 이러한 연습과 샘플 템플릿을 시작점으로 사용하여 귀하의 니즈에 맞는 유사한 템플릿을 생성하십시오.