AWS Systems Manager Automation 런북을 사용하여 AWS에서 Windows 및 SQL Server 인스턴스의 자동 업그레이드를 수행할 수 있습니다.
관련 서비스
다음 AWS 서비스는 자동 업그레이드 프로세스에 사용됩니다.
-
AWS Systems Manager. AWS Systems Manager은 강력한 통합 인터페이스로서 AWS 리소스를 중앙 집중식으로 관리합니다. 자세한 내용은 AWS Systems Manager 사용 설명서를 참조하세요.
-
AWS Systems Manager 에이전트(SSM Agent)는 Amazon EC2 인스턴스, 온프레미스 서버 또는 가상 머신(VM)에 설치 및 구성할 수 있는 Amazon 소프트웨어입니다. SSM Agent를 사용하면 Systems Manager가 이러한 리소스를 업데이트, 관리 및 구성할 수 있습니다. 에이전트는 AWS 클라우드에서 Systems Manager 서비스의 요청을 처리하고 요청에 지정된 대로 실행합니다. 자세한 내용은 AWS Systems Manager 사용 설명서에서 SSM Agent 작업을 참조하세요.
-
AWS Systems Manager SSM 런북. SSM 런북은 Systems Manager가 관리형 인스턴스에서 실행하는 작업을 정의합니다. SSM 런북은 JSON(JavaScript Object Notation) 또는 YAML을 사용하며 사용자가 지정하는 단계와 파라미터를 포함합니다. 이 주제에서는 자동화를 위해 2개의 Systems Manager SSM 런북을 사용합니다. 자세한 내용은 AWS Systems Manager 사용 설명서의 AWS Systems Manager Automation 실행서 참조를 참조하세요.
실행 옵션
Systems Manager 콘솔에서 자동화를 선택할 때 실행을 선택합니다. 자동화 문서를 선택한 후 자동화 실행 옵션을 선택하라는 메시지가 표시됩니다. 다음 옵션 중 하나를 선택합니다. 이 주제에서 소개하는 경로에서는 각 단계에 간편 실행 옵션을 사용합니다.
간편 실행
단일 인스턴스를 업데이트하지만 각각의 자동화 단계를 거쳐 결과를 감사하지는 않으려면 이 옵션을 선택합니다. 이 옵션은 이어지는 업그레이드 단계에서 자세히 설명됩니다.
속도 제어
둘 이상의 인스턴스에 업그레이드를 적용하려면 이 옵션을 선택합니다. 다음 설정을 정의합니다.
-
파라미터
이 설정은 다중 계정 및 리전 설정에도 적용되어 있는데, 자동화의 브랜칭 아웃 방법을 정의합니다.
-
대상
자동화를 적용하려는 대상을 선택합니다. 또한 이 설정은 다중 계정 및 리전 설정에도 적용됩니다.
-
파라미터 값
자동화 문서 파라미터에 정의된 값을 사용합니다.
-
리소스 그룹
AWS에서 리소스란 작업할 수 있는 엔터티입니다. 그 예로는 Amazon EC2 인스턴스, AWS CloudFormation 스택, 또는 Amazon S3 버킷이 포함됩니다. 다수의 리소스를 사용할 경우, 작업을 할 때마다 AWS 서비스 사이를 이동하는 것보다는 해당 리소스를 그룹으로 관리하는 것이 더 유용할 수 있습니다. 몇몇 경우에는 하나의 애플리케이션 계층을 구성하는 EC2 인스턴스 등의 관련 리소스를 다수로 관리해야 할 수 있습니다. 이런 경우에는 해당 리소스에 대한 일괄 작업을 한 번에 수행해야 할 수 있습니다.
-
태그
태그를 사용하면 AWS 리소스를 용도별, 소유자별 또는 환경별 등 다양한 방식으로 분류할 수 있습니다. 이처럼 분류를 해 놓으면 동일한 유형의 리소스가 많을 때 유용합니다. 할당된 태그를 사용하여 특정 리소스를 신속하게 식별할 수 있습니다.
-
속도 제어
또한 속도 제어는 다중 계정 및 리전 설정에도 적용됩니다. 속도 제어 파라미터를 설정하면 대상 개수 또는 백분율로 자동화를 적용하려는 플릿의 수를 정의합니다.
다중 계정 및 리전
속도 제어에서 지정되고 다중 계정 및 리전 설정에도 사용되는 파라미터에 더해 추가로 살펴볼 설정이 두 가지 더 있습니다.
-
계정 및 OU(조직 단위)
자동화를 실행할 여러 계정을 지정합니다.
-
AWS 리전
자동화를 실행할 여러 AWS 리전을 지정합니다.
수동 실행
이 옵션은 간편 실행과 비슷하지만 각 자동화 단계를 거치고 결과를 감사할 수 있다는 데서 차이를 보입니다.
Windows Server 업그레이드
AWSEC2-CloneInstanceAndUpgradeWindows
런북은 계정의 Windows Server 인스턴스에서 Amazon Machine Image(AMI)를 생성하고 이 AMI를 선택한 지원되는 버전으로 업그레이드합니다. 이 다단계 프로세스는 완료까지 최대 2시간이 소요됩니다.
자동 업그레이드 프로세스에는 두 개의 AMI가 포함됩니다.
-
현재 실행 중인 인스턴스: 첫 번째 AMI는 현재 실행 중인 인스턴스로서 업그레이드되지 않았습니다. 이 AMI는 다른 인스턴스를 시작하여 현재 위치 업그레이드를 실행하는 데 쓰입니다. 프로세스가 완료되면 이 AMI는 원본 인스턴스를 유지하도록 특별히 요청하지 않는 한 계정에서 삭제됩니다. 이 설정은 파라미터
KeepPreUpgradeImageBackUp
에서 처리합니다(기본값은false
이며, 즉 AMI가 기본적으로 삭제됨). -
업그레이드된 AMI: 이 AMI는 자동화 프로세스의 결과물입니다.
최종 결과물은 하나의 AMI로서, 업그레이드된 AMI 인스턴스입니다.
업그레이드가 완료되면 Amazon VPC에서 새 AMI를 시작하여 애플리케이션 기능을 테스트할 수 있습니다. 테스트 이후와 다른 업그레이드를 수행하기 전에는 업그레이드된 인스턴스로 완전히 전환하기에 앞서 애플리케이션 중단 시간을 예약하세요.
사전 조건
AWS Systems Manager Automation 문서로 Windows Server 업그레이드를 자동화하려면 다음 태스크를 수행해야 합니다.
-
지정한 IAM 정책으로 IAM 규칙 만들기를 하여 Systems Manager가 Amazon EC2 인스턴스에서 자동화 작업을 수행하고 사용자가 필수적인 Systems Manager 사용 조건에 부합하는지 확인합니다. 자세한 내용은 AWS Identity and Access Management 사용 설명서의 AWS 서비스에 대한 권한을 위임할 역할 생성을 참조하세요.
-
원하는 자동화 실행 방법에 대한 옵션을 선택합니다. 실행 옵션으로는 간편 실행(Simple execution), 속도 제어(Rate control), 다중 계정 및 리전(Multi-account and Region), 수동 실행(Manual execution)이 있습니다. 이러한 옵션에 대한 자세한 내용은 실행 옵션 섹션을 참조하세요.
-
인스턴스에 SSM Agent가 설치되었는지 확인합니다. 자세한 내용은 Windows Server용 Amazon EC2 인스턴스에 SSM Agent 설치 및 구성을 참조하세요.
-
인스턴스에 Windows PowerShell 3.0 이상이 설치되어 있어야 합니다.
-
Microsoft Active Directory 도메인에 조인된 인스턴스의 경우, 호스트 이름 충돌을 피하기 위해 도메인 컨트롤러에 연결되지 않은
SubnetId
를 지정하는 것이 좋습니다. -
인스턴스 서브넷에는 Amazon S3와 같은 AWS 서비스에 대한 액세스와 Microsoft에서 패치를 다운로드할 수 있는 액세스를 제공하는 인터넷에 대한 아웃바운드 연결이 있어야 합니다. 서브넷이 퍼블릭 서브넷이고 인스턴스에 퍼블릭 IP 주소가 있거나, 서브넷이 퍼블릭 NAT 디바이스에 인터넷 트래픽을 전송하는 경로가 있는 프라이빗 서브넷인 경우에 이 요구 사항이 충족됩니다.
-
이 자동화는 Windows Server 2008 R2, Windows Server 2012 R2, Windows Server 2016 및 Windows Server 2019를 실행하는 인스턴스에서 작동합니다.
-
인스턴스의 부트 디스크에 20GB의 사용 가능한 디스크 공간이 있는지 확인합니다.
-
인스턴스에서 AWS 제공 Windows 라이선스를 사용하지 않는 경우 Windows Server 2012 R2 설치 미디어를 포함하는 Amazon EBS 스냅샷 ID를 지정합니다. 방법:
-
Amazon EC2 인스턴스에서 Windows Server 2012 이상을 실행 중인지 확인합니다.
-
인스턴스가 실행 중인 동일 가용 영역에서 6GB Amazon EBS 볼륨을 생성합니다. 볼륨을 인스턴스에 연결합니다. 예를 들면 드라이브 D에 탑재합니다.
-
ISO를 마우스 오른쪽 버튼으로 클릭하고 인스턴스(예를 들면 드라이브 E)에 탑재합니다.
-
드라이브 E:\에서 드라이브 D:\로 ISO의 내용을 복사합니다.
-
위의 2단계에서 생성한 6GB 볼륨의 Amazon EBS 스냅샷을 생성합니다.
-
Windows Server 업그레이드 제한 사항
이 자동화는 Windows 도메인 컨트롤러, 클러스터 또는 Windows 데스크톱 운영 체제 업그레이드를 지원하지 않습니다. 또한 이 자동화는 다음 역할이 설치된 Windows Server용 Amazon EC2 인스턴스를 지원하지 않습니다.
-
원격 데스크톱 세션 호스트(RDSH)
-
원격 데스크톱 연결 브로커(RDCB)
-
원격 데스크톱 가상화 호스트(RDVH)
-
원격 데스크톱 웹 액세스(RDWA)
Windows Server의 자동 업그레이드를 수행하는 단계
다음 단계에 따라 AWSEC2-CloneInstanceAndUpgradeWindows 자동화 런북을 사용하여 Windows Server 인스턴스를 업그레이드합니다.
-
AWS 관리 콘솔에서 Systems Manager를 엽니다.
-
왼쪽 탐색 창의 변경 관리(Change Management) 아래에서 자동화(Automation)를 선택합니다.
-
자동화 실행(Execute automation)을 선택합니다.
-
AWSEC2-CloneInstanceAndUpgradeWindows
라는 이름의 자동화 문서를 찾습니다. -
문서 이름이 보이면 선택합니다. 해당 이름을 선택하면 문서의 세부 정보가 표시됩니다.
-
자동화 실행(Execute automation)을 선택하여 이 문서의 파라미터를 입력합니다. 페이지 상단에서 간편 실행(Simple execution)이 선택된 채로 둡니다.
-
요청된 파라미터를 다음 지침을 따라 입력합니다.
-
InstanceID
Type: 문자열
(필수) SSM Agent가 설치된 상태에서 Windows Server 2008 R2, 2012 R2, 2016 또는 2019를 실행하는 인스턴스입니다.
-
InstanceProfile
.Type: 문자열
(필수) IAM 인스턴스 프로파일입니다. Amazon EC2 인스턴스 및 AWS AMI에 대해 Systems Manager 자동화를 수행하는 데 사용되는 IAM 역할입니다. 자세한 내용은 AWS Systems Manager 사용 설명서의 EC2 인스턴스 권한 구성을 참조하세요.
-
TargetWindowsVersion
Type: 문자열
(필수) 대상 Windows 버전을 선택합니다.
-
SubnetId
Type: 문자열
(필수) 업그레이드 프로세스를 위한 서브넷으로, 소스 EC2 인스턴스가 상주합니다. 서브넷에서 (패치를 다운로드할) AWS 서비스(Amazon S3 포함) 및 Microsoft로의 아웃바운드 연결이 설정되었는지 확인합니다.
-
KeepPreUpgradedBackUp
Type: 문자열
(선택 사항) 이 파라미터가
true
로 설정된 경우, 인스턴스에서 생성된 이미지는 자동화 과정에서 그대로 유지됩니다. 기본 설정은false
입니다. -
RebootInstanceBeforeTakingImage
Type: 문자열
(선택 사항) 기본값은
false
입니다(재부팅 안 함). 이 파라미터가true
로 설정된 경우, Systems Manager에서는 업그레이드를 위해 AMI를 만들기 전에 인스턴스를 재부팅합니다.
-
-
파라미터를 입력한 다음 Execute(실행)를 선택합니다. 자동화가 시작되면 실행 진척도를 모니터링할 수 있습니다.
-
자동화가 완료되면 AMI ID를 볼 수 있습니다. AMI를 시작하여 Windows OS의 업그레이드 여부를 확인할 수 있습니다.
참고
모든 단계를 자동화로 실행할 필요는 없습니다. 해당 단계는 자동화와 인스턴스의 동작에 따라 달라질 수 있습니다. Systems Manager에서는 필요하지 않은 단계를 생략할 수도 있습니다.
또한 몇몇 단계는 시간이 초과될 수 있습니다. Systems Manager는 모든 최신 패치의 업그레이드와 설치를 시도합니다. 그러나 때에 따라서는 특정 단계의 정의 가능 제한 시간 설정에 따라 패치의 시간이 초과됩니다. 이 경우에는 내부 OS가 대상 Windows Server 버전으로 업그레이드될 수 있도록 Systems Manager 자동화가 다음 단계까지 계속됩니다.
-
자동화가 완료되고 나면 AMI ID로 Amazon EC2 인스턴스를 실행하여 업그레이드를 검토할 수 있습니다. AWS AMI에서 Amazon EC2 인스턴스를 만드는 방법에 대한 자세한 내용은 사용자 지정 AMI에서 EC2 인스턴스를 시작하려면 어떻게 해야 합니까?
를 참조하세요.
SQL Server 업그레이드
AWSEC2-CloneInstanceAndUpgradeSQLServer 스크립트는 계정 내에서 SQL Server를 실행하는 Amazon EC2 인스턴스에서 AMI를 생성한 다음 해당 AMI를 이후 버전의 SQL Server로 업그레이드합니다. 이 다단계 프로세스는 완료까지 최대 2시간이 소요됩니다.
이 워크플로우에서는 자동화를 통해 인스턴스에서 AMI를 생성한 다음 사용자가 제공하는 서브넷에서 새 AMI를 실행합니다. 그런 다음 자동화는 SQL Server의 현재 위치 업그레이드를 수행합니다. 이 자동화는 업그레이드 완료 후 업그레이드된 인스턴스를 종료하기 전에 새 AMI를 생성합니다.
자동 업그레이드 프로세스에는 두 개의 AMI가 포함됩니다.
-
현재 실행 중인 인스턴스: 첫 번째 AMI는 현재 실행 중인 인스턴스로서 업그레이드되지 않았습니다. 이 AMI는 다른 인스턴스를 시작하여 현재 위치 업그레이드를 실행하는 데 쓰입니다. 프로세스가 완료되면 이 AMI는 원본 인스턴스를 유지하도록 특별히 요청하지 않는 한 계정에서 삭제됩니다. 이 설정은 파라미터
KeepPreUpgradeImageBackUp
에서 처리합니다(기본값은false
이며, 즉 AMI가 기본적으로 삭제됨). -
업그레이드된 AMI: 이 AMI는 자동화 프로세스의 결과물입니다.
최종 결과물은 하나의 AMI로서, 업그레이드된 AMI 인스턴스입니다.
업그레이드가 완료되면 Amazon VPC에서 새 AMI를 시작하여 애플리케이션 기능을 테스트할 수 있습니다. 테스트 이후와 다른 업그레이드를 수행하기 전에는 업그레이드된 인스턴스로 완전히 전환하기에 앞서 애플리케이션 중단 시간을 예약하세요.
사전 조건
AWS Systems Manager Automation 문서로 SQL Server 업그레이드를 자동화하려면 다음 태스크를 수행해야 합니다.
-
지정한 IAM 정책으로 IAM 규칙 만들기를 하여 Systems Manager가 Amazon EC2 인스턴스에서 자동화 작업을 수행하고 사용자가 필수적인 Systems Manager 사용 조건에 부합하는지 확인합니다. 자세한 내용은 AWS Identity and Access Management 사용 설명서의 AWS 서비스에 대한 권한을 위임할 역할 생성을 참조하세요.
-
원하는 자동화 실행 방법에 대한 옵션을 선택합니다. 실행 옵션으로는 간편 실행(Simple execution), 속도 제어(Rate control), 다중 계정 및 리전(Multi-account and Region), 수동 실행(Manual execution)이 있습니다. 이러한 옵션에 대한 자세한 내용은 실행 옵션 섹션을 참조하세요.
-
Amazon EC2 인스턴스는 Windows Server 2008 R2 이상과 SQL Server 2008 이상을 사용해야 합니다.
-
인스턴스에 SSM Agent가 설치되었는지 확인합니다. 자세한 내용은 Windows Server용 Amazon EC2 인스턴스에서 SSM Agent 사용을 참조하세요.
-
인스턴스에 dudb 디스크 공간이 충분한지 확인합니다.
-
Windows Server 2008 R2에서 2012 R2로 업그레이드하거나 Windows Server 2012 R2에서 이후 운영 체제로 업그레이드하는 경우 인스턴스 부팅 디스크에 20GB의 여유 디스크 공간이 있는지 확인합니다.
-
Windows Server 2008 R2에서 2016 이상으로 업그레이드하는 경우 인스턴스 부팅 디스크에 40GB의 여유 디스크 공간이 있는지 확인합니다.
-
-
기존 보유 라이선스 사용(BYOL) SQL Server 버전을 사용하는 인스턴스의 경우 다음 추가 사전 조건이 적용됩니다.
-
대상 SQL Server 설치 미디어가 포함된 Amazon EBS 스냅샷 ID를 제공합니다. 방법:
-
Amazon EC2 인스턴스에서 Windows Server 2008 R2 이상을 실행 중인지 확인합니다.
-
인스턴스가 실행 중인 동일 가용 영역에서 6GB Amazon EBS 볼륨을 생성합니다. 볼륨을 인스턴스에 연결합니다. 예를 들면 드라이브 D에 탑재합니다.
-
ISO를 마우스 오른쪽 버튼으로 클릭하고 인스턴스(예를 들면 드라이브 E)에 탑재합니다.
-
드라이브 E:\에서 드라이브 D:\로 ISO의 내용을 복사합니다.
-
2단계에서 생성한 6GB 볼륨의 Amazon EBS 스냅샷을 생성합니다.
-
-
SQL Server 자동 업그레이드 제한
AWSEC2-CloneInstanceAndUpgradeSQLServer 런북을 사용하여 자동 업그레이드를 수행할 때 다음 제한 사항이 적용됩니다.
-
이 업그레이드는 Windows 인증을 사용하여 SQL Server에서만 수행할 수 있습니다.
-
인스턴스에서 대기 중인 보안 패치 업데이트가 없는지 확인합니다. 제어판을 열고 나서 업데이트 확인을 선택합니다.
-
HA 및 미러링 모드의 SQL 서버 배포는 지원되지 않습니다.
SQL Server의 자동 업그레이드를 수행하는 단계
다음 단계에 따라 AWSEC2-CloneInstanceAndUpgradeSQLServer 자동화 런북을 사용하여 SQL Server 인스턴스를 업그레이드합니다.
-
아직 확인이 되지 않은 경우에는 SQL Server 2016을 .iso 파일로 다운로드하고 이를 소스 서버에 마운트합니다.
-
.iso 파일 마운팅 후에는 구성 요소 파일을 모두 복사하고 원하는 볼륨에 배치합니다.
-
볼륨의 Amazon EBS 스냅샷을 만들고 스냅샷의 ID를 이후에 사용할 클립보드에 복사합니다. 자세한 내용은 Amazon EBS 사용 설명서의 Amazon EBS 스냅샷 생성을 참조하세요.
-
인스턴스 프로파일을 Amazon EC2 소스 인스턴스에 연결합니다. 그러면 Systems Manager가 EC2 인스턴스와 통신하고 해당 인스턴스가 AWS Systems Manager 서비스에 추가된 후에 명령을 실행할 수 있습니다. 이 예에서는 역할을
SSM-EC2-Profile-Role
로 명명했으며 해당 역할에는AmazonSSMManagedInstanceCore
정책이 연결되었습니다. -
AWS Systems Manager 콘솔의 왼쪽 탐색 창에서 Managed Instances(관리형 인스턴스)를 선택합니다. EC2 인스턴스가 관리형 인스턴스 목록에 있는지 확인합니다. 몇 분 후에도 인스턴스가 표시되지 않으면 AWS Systems Manager 사용 설명서에서 내 인스턴스는 어디에 있나요?를 참조하세요.
-
왼쪽 탐색 창의 변경 관리(Change Management) 아래에서 자동화(Automation)를 선택합니다.
-
자동화 실행(Execute automation)을 선택합니다.
-
AWSEC2-CloneInstanceAndUpgradeSQLServer
라는 이름의 자동화 문서를 찾습니다. -
AWSEC2-CloneInstanceAndUpgradeSQLServer
SSM 문서를 선택하고 다음(Next)을 선택합니다. -
간편 실행(Simple execution) 옵션이 선택되었는지 확인합니다.
-
요청된 파라미터를 다음 지침을 따라 입력합니다.
-
InstanceId
Type: 문자열
(필수) SQL Server 2008 R2(또는 이후 버전) 실행 인스턴스입니다.
-
IamInstanceProfile
Type: 문자열
(필수) IAM 인스턴스 프로파일입니다.
-
SQLServerSnapshotId
Type: 문자열
(필수) 대상 SQL Server 설치 미디어의 스냅샷 ID입니다. 이 파라미터는 SQL Server 라이선스 포함 인스턴스에 필요하지 않습니다.
-
SubnetId
Type: 문자열
(필수) 업그레이드 프로세스를 위한 서브넷으로, 소스 EC2 인스턴스가 상주합니다. 서브넷에서 (패치를 다운로드할) AWS 서비스(Amazon S3 포함) 및 Microsoft로의 아웃바운드 연결이 설정되었는지 확인합니다.
-
KeepPreUpgradedBackUp
Type: 문자열
(선택 사항) 이 파라미터가
true
로 설정된 경우, 인스턴스에서 생성된 이미지는 자동화 과정에서 그대로 유지됩니다. 기본 설정은false
입니다. -
RebootInstanceBeforeTakingImage
Type: 문자열
(선택 사항) 기본값은
false
입니다(재부팅 안 함). 이 파라미터가true
로 설정된 경우, Systems Manager에서는 업그레이드를 위해 AMI를 만들기 전에 인스턴스를 재부팅합니다. -
TargetSQLVersion
유형: 문자열
(선택 사항) 대상 SQL Server 버전입니다. 기본값은
2016
입니다.
-
-
파라미터를 입력한 다음 실행(Execute)을 선택합니다. 자동화가 시작되면 실행 진척도를 모니터링할 수 있습니다.
-
실행 상태(Execution Status)가 성공(Success)으로 표시되면 출력(Outputs)을 선택하여 AMI 정보를 봅니다. AMI ID를 사용하여 원하는 VPC에 대해 SQL Server 인스턴스를 시작할 수 있습니다.
-
Amazon EC2 콘솔을 엽니다. 왼쪽 탐색 창에서 AMI를 선택합니다. 그러면 새 AMI가 보일 것입니다.
-
새 SQL Server 버전이 성공적으로 설치되었는지 확인하려면 새 AMI를 선택하고 시작(Launch)을 선택합니다.
-
배포하려는 AMI, VPC 및 서브넷, 그리고 사용하려는 스토리지에 대해 인스턴스 유형을 선택합니다. AMI에서 새 인스턴스를 시작하므로 해당 볼륨은 사용자가 시작하는 EC2 인스턴스 내에 포함할 옵션으로 표시됩니다. 이 볼륨은 제거할 수 있으며, 반대로 추가할 수도 있습니다.
-
인스턴스 식별에 도움이 되도록 태그를 추가합니다.
-
보안 그룹을 인스턴스에 추가합니다.
-
인스턴스 시작을 선택합니다.
-
인스턴스의 이름을 선택하고 작업 드롭다운 메뉴 아래에서 연결을 선택합니다.
-
새 SQL Server 버전이 새 인스턴스의 데이터베이스 엔진인지 확인합니다.