Azure Planned Maintenance 리부팅 동반

 

Azure Planned Maintenance(계획된 유지 관리)가 계획되어 있습니다. VM을 사용해서 서비스하고 있는 팀은 살펴볼 필요가 있습니다. 아래 날짜들은 변경될 가능성이 있습니다.

Planned Maintenance(계획된 유지 관리)에 대하여

Azure에서 사용하는 VM은 가상환경으로 Host 인프라 위에서 만들어지고 관리됩니다. Host 인프라의 안정성, 보안을 향상시키기 위해서 주기적으로 업데이트를 합니다. Host OS에 보안 업데이트나 기능 업그레이드, 펌웨어 업데이트 등의 업데이트가 있습니다. 이런 Planned Maintenance는 두가지 종류가 있습니다.

  • 리부팅 없는 Planned Maintenance: VM을 리부팅 하지 않아도 되는 업데이트입니다. 업데이트가 실행되면 몇 초 동안 VM이 멈추고(Freezing) 호스트 업데이트가 끝나면 바로 작동합니다. 최대 시간은 30초라고 되어 있는데 보통 5-15초 정도의 임팩트가 있습니다. 따라서 정말 중요한 워크로드(Mission Critical Workload)가 아니면 신경쓰지 않아도 자연스럽게 지나갈 수 있습니다. 여기서 그냥 지나가려면 리트라이(Retry) 로직이 중요할 수 있습니다. 예를들어 15초 멈춘다 해도 설정에 따라 Database 커넥션이 끊어지거나 TCP 커넥션이 끊어질 수 있습니다. 이때 애플리케이션의 Retry 로직이 작동하여 문제없이 다시 커넥션할 수 있어야 합니다.
  • 리부팅을 동반하는 Planned Maintenance: VM 리부팅을 동반하는 업데이트 입니다. 신경써서 관리해야합니다. 이런 Planned Maintenance 는 공지도 나오고 알림도 받을 수 있습니다.

이번 Planned Maintenance 는 리부팅을 동반하는 업데이트 입니다. 지난 2016년 봄에 한번 있었고 이번에 또 계획되어 있습니다. Azure 팀은 일년에 한번 이하로 발생하도록 목표를 잡고 있습니다. 이번 Planned Maintenance 의 상세 내용에 설명 합니다.

이번 Planned Maintenance 는

  • 리부팅 됩니다. (정확히는 Redeploy )
  • 몇 분 걸릴 수도 있습니다.
  • Host OS를 Windows Server 2016으로 업데이트 합니다. 여기서 Host OS와 내 VM의 OS가 헷갈리면 안됩니다. 내 VM의 OS는 그대로 유지 됩니다.
  • 그 동안 쌓여 있던 펌웨어 업데이트를 이번에 한꺼번에 합니다.
  • VM의 Temp Disk 는 지워집니다. (윈도우 서버의 경우 대걔 D: 드라이브, Linux의 경우 /dev/sdb1) OS 디스크나 Data Disk는 유지됩니다. 혹시 Temp Disk에 지워지면 안되는 내용을 쓰도록 설정되어 있다면 이번에 수정을 하는게 좋겠습니다.
  • 모든 VM이 대상이 되는 건 아닙니다. 최근 4-5개월 전에 만든 VM은 이미 업데이트된 Host에 만들어졌을 가능성이 있습니다. (확인은 일정이 시작된 후 아래 방법으로 가능)
  • 모든 지역이 한꺼번에 실행되는게 아니고 계획에 따라 몇 단계로 실행됩니다. 특히 데이터센터의 페어는 동시에 하지 않습니다. 예를들어 Korea Central 지역과 Korea South가 동시에 진행되지 않습니다.

이번 Planned Maintenance의 일정과 프로세스

아래 날짜들은 변경될 가능성이 있습니다.

Step 1. 2018년 1월 2일에 시작 – 관리자에게 이메일이 발송될 예정

Azure 구독의 관리자(Admin)와 협력 관리자(Co-admin)에게 이메일이 발송됩니다. 현재 설정되어 있는 Admin 을 확인하거나 추가하려면 Azure Portal에서 구독에 대한 RBAC 소유자 관리자 추가 문서를 참조하시고 이메일을 받을 수 있는 상태인지 미리 살펴보는게 좋겠습니다. 앞으로 계속 주요 알림이 구독 관리자 이메일 주소로 전송됩니다.

이메일 말고 Webhooks 나 SMS 도 지원하는데 한국 휴대폰 번호는 안됩니다. 혹시 Azure Logic App 을 사용하고 계신다면 Webhook 커넥터를 이용해서 슬랙 커넥터로 연결시켜 슬랙에 꽂을 수도 있겠죠. Webhook 설정은 Windows 가상컴퓨터에 대한 계획된 유지 관리 알림 처리 문서를 참조 바랍니다.

포털에서 확인하는 3가지 방법

1. Azure 포탈의 “도움말 + 지원 > 계획된 유지 관리” 메뉴에서 확인 할 수 있습니다. 

 

지금은 기간이 아니라서 내용이 없고 저도 한번도 본적이 없어서 동영상에서 캡쳐 했습니다. 이런식으로 계획된 VM들의 리스트를 볼 수 있습니다.

2. 포탈의 가상 컴퓨터 메뉴에서 확인 가능합니다. 

3. Azure 포탈 가상컴퓨터에 들어가면 볼 수 있습니다. 특히 Step 2에서 설명할 직접 실행하기 버튼이 여기에 있습니다. 

물론 Azure CLI, PowerShell 을 사용해서 확인 할 수도 있습니다.

Step 2. 내가 직접 실행하는 기간(Proactive Window) 2018년 1월 2일부터 1월 9일까지 

내가 사용하는 VM들이 HA 구성이 잘 되어 있다면 직접 실행하지 않아도 Step 3에서 자연스럽게 되도록 그냥 둬도 됩니다. 사실 이렇게 되야죠. 가용성 집합(Availability Set)으로 묶여 있는 VM들의 경우 가능한 얘기 입니다. 하지만 여러가지 이유에서 HA 구성이 안되어 있거나 완벽하지 않을 수 있습니다. 예를들어 MySQL을 VM 1대(SSD 사용하면 SLA 99.5%)에 구성해서 사용하고 있는 경우가 그렇습니다.  여기에 그 외의 이유들이 몇 가지 있습니다.

  • 리부팅이 되면 서비스를 수동으로 올려줘야 하는 경우. 또는 서비스들의 실행 순서가 있어서 사람이 확인하면서 해야 하는 경우
  • 서비스를 사용하는 고객에게 정확히  날짜와 시간을 공지하고 하고 싶은 경우
  • 미뤄놨던 윈도우 업데이트나 미들웨어 등의 같이 업데이트 하고 싶은 경우
  • 리부팅 후에 서비스가 올라와서 스스로 준비되는데 30분이 넘게 걸리는 경우 (아래 Step 3에서 자동으로 업데이트 될 때 가용성 집합이 Update Domain 하나가 끝나면 30분 기다려 주는 이유)
  • 그냥 내가 통제하는 상황에서 리부팅 하고 싶은 경우

굳이 신경쓰지 않아도 되는 경우도 있습니다.

  • 개발용 QA 용이라서 리부팅되도 상관없는 경우
  • 자주 리부팅 하는 경우
  • 잠깐 쓰는 용도의 VM

기간중에 직접 실행하려면 위의 스크린 샷에서 보이는 “Initiate Maintenance now” 버튼을 눌러서 실행합니다.

Cloud Service와 VMSS(Virtual Machine Scale Set)은 지원하지 않습니다.

Step 3. 직접 실행하지 않은 VM에 대한 실행 (Scheduled Maintenance) – 기간이 아직 정해지지 않음. 

Step 2에서 직접 실행하지 않아서 남아있는 VM들은 이 기간 동안 자동으로 리부팅 되면서 업데이트 됩니다.  몇 분이 걸릴 수 있습니다. 역시 Temp Disk는 지워집니다. 가용성 집합을 사용한 경우 Update Domain 단위로 업데이트 됩니다. Update Domain 사이에는 30분의 시간을 기다려 줍니다.

Region Pair 는 동시에 업데이트 되지 않습니다.

BCDR(Business continuity and disaster recovery) 이 적용되어 있다면 더 안전하겠지만 몇 분안에 끝나는 업데이트에서 BCDR이 작동하는 것이 좋은지는 관리자의 판단이 필요할 것 같습니다.

Scheduled Event(예정된 이벤트) 를 사용하여 대응하기 (현재 미리보기)

Scheduled Event를 걸어놓으면 실제 리부팅 되기 15분 전에 알림을 받을 수 있습니다. Scheduled Event를 이용해서 리부팅 전에 해야하는 작업 예를들어 Load Balancer의 백엔트 풀에서 제거, 백업 포인트, 커넥션 정리, Failover 실행 등의 작업을 미리 실행해 놓고 리부팅을 할 수 있습니다. 좀 더 고급스러운 접근 같습니다. 저도 적용해 보지는 않았지만 가용성 집합 내의 VM 하나가 폴링을 해서 이벤트를 캐치해야 하고 그 후 정리할 걸 정리하는 등 코드를 좀 짜줘야 할 것 같습니다. 자세한 내용은 문서와 동영상 (데모 포함)참조 바랍니다.

질문들

Step 3에서 리부팅 시간을 미리 몇 일 또는 몇 시간 전에 알 수 있나요? 아니요 Scheduled Event를 이용해서 15분전에 알 수 있습니다.

VM 말고 Azure Web App 같은 PaaS 서비스도 이번에 적용되나요? 아니요. PaaS 서비스는 별도 스케줄로 업데이트가 되고 대걔 임팩트가 없는 방향으로 진행됩니다. PaaS의 장점이라고 할 수 있습니다.

 

아 왜 업데이트가 있어서 귀찮게 … 생각할 수 도 있지만 보안이나 가용성이 더 좋아질다고 하니 기꺼이 또는 강제로 업데이트를 해야하겠습니다. 더 상세한 내용을 알고 싶으시면 아래 링크 확인 바랍니다.