다음을 통해 공유


클라우드에 대한 워크로드 준비

Azure로 마이그레이션하기 전에 워크로드가 클라우드에 준비되어야 합니다. 클라우드 준비는 중단 위험을 줄이고 Azure 서비스와의 호환성을 보장합니다. 프로덕션 중단 전에 Azure에서 워크로드의 유효성을 검사하고, 보호하고, 자동화합니다. Azure 아키텍처 계획워크로드 평가를 사용하여 준비를 안내합니다.

Azure의 호환성 문제 해결

호환성 문제는 워크로드 마이그레이션을 차단할 수 있으며 프로덕션 배포 전에 해결해야 합니다. Azure에는 특정 구성, 지원되는 운영 체제 및 현재 드라이버가 필요합니다. 이러한 문제를 체계적으로 해결하여 성공적인 마이그레이션을 보장합니다.

모든 워크로드 리소스 배포

클라우드 아키텍처를 계획하고 애플리케이션 랜딩 존을 준비한 후 다음 단계는 모든 워크로드 구성 요소를 Azure에 배포하는 것입니다. 이 단계에서는 환경이 아키텍처 계획에 맞게 적절히 격리되고, 관리되고, 정렬되도록 합니다. 배포된 후에는 테스트 환경의 완전성 유효성을 검사하여 프로덕션 준비 상태를 확인합니다.

  1. 워크로드 환경에 대한 Azure 구독을 만듭니다. 적절한 격리, 비용 추적 및 거버넌스를 보장하기 위해 개발, 테스트 및 프로덕션 환경에 대한 별도의 구독을 만듭니다. 적절한 관리 그룹에 구독을 배치하고 환경별 거버넌스 정책, 역할 기반 액세스 제어 할당 및 비용 관리 예산을 적용합니다. 자세한 내용은 구독 만들기를 참조하세요.

  2. 아키텍처 계획을 사용합니다. 클라우드 채택 계획 중에 정의된 Azure 아키텍처를 배포합니다. 업데이트된 워크로드 요구 사항을 반영하는지 확인합니다. 지침은 Azure 아키텍처 계획을 참조하세요.

  3. 모든 워크로드 구성 요소를 배포합니다. 테스트 환경(구독)에서 컴퓨팅(VM, 웹앱, 컨테이너), 데이터 저장소(데이터베이스, 스토리지 계정), 부하 분산 장치, 관리 ID, 가상 네트워크 및 DNS 리소스 등 모든 필수 구성 요소를 배포합니다.

  4. 테스트 환경의 완전성 유효성을 검사합니다. 모든 종속성, 구성 및 통합이 있는지 확인합니다. 구성 요소가 누락되어 테스트 중에 가양성 또는 감지되지 않은 문제가 발생할 수 있습니다.

호환성 문제 해결

워크로드를 프로덕션으로 이동하기 전에 성능, 보안 또는 지원 가능성에 영향을 미칠 수 있는 호환성 문제를 식별하고 해결합니다. 계획 단계의 평가 데이터를 사용하여 수정 작업을 안내하고 Azure 네이티브 솔루션을 사용하여 테스트 환경에서 수정 사항을 적용합니다.

  1. 문서화된 호환성 요구 사항 및 알려진 문제를 검토합니다. CAF 계획 단계의 워크로드 평가를 사용하여 수정해야 하는 지원되지 않는 구성 및 종속성을 식별합니다.

  2. Azure 솔루션을 사용하여 각 호환성 문제를 해결합니다. 원본 환경을 수정하는 대신 Azure 테스트 환경에서 수정을 적용합니다. 일반적인 호환성 문제는 다음과 같습니다.

호환성 문제 Solution 중요한 이유
지원되지 않는 OS 버전 지원되는 운영 체제로 업그레이드 Azure에는 보안 업데이트 및 플랫폼 호환성을 위해 지원되는 OS 버전이 필요합니다.
레거시 NIC 드라이버 및 BIOS 드라이버 및 BIOS 펌웨어 업데이트 최신 드라이버는 Azure VM에서 네트워크 성능 및 보안을 보장합니다.
로컬 파일 I/O 종속성 Azure Blob Storage 또는 Azure Files로 바꾸기 클라우드 네이티브 스토리지는 더 나은 확장성 및 통합을 제공합니다.
하드 코딩된 IP 주소 DNS 또는 앱 구성과 같은 서비스 검색 메커니즘으로 대체 동적 주소 지정은 Azure 네트워킹 및 복원력을 지원합니다.
호스트 기반 바이러스 백신 소프트웨어 클라우드용 Microsoft Defender와 통합 클라우드 네이티브 보안은 더 나은 위협 탐지 및 관리를 제공합니다.
하드 코딩된 사용자 계정 관리 ID로 바꾸기 관리 ID는 자격 증명 관리를 제거하고 보안을 향상시킵니다.

워크로드 기능 유효성 검사

호환성 문제를 해결한 후 Azure 환경에서 워크로드가 제대로 작동하는지 확인합니다. 포괄적인 테스트는 모든 구성 요소, 구성 및 통합이 비즈니스 및 기술 요구 사항을 충족하는지 확인하는 데 필수적입니다. 이 유효성 검사 프로세스는 위험을 줄이고 프로덕션 배포로 원활하게 전환되도록 합니다.

보안 네트워크 유효성 검사

신뢰할 수 있는 네트워크 연결을 통해 모든 애플리케이션 구성 요소 및 외부 종속성이 Azure에서 의도한 대로 통신할 수 있습니다. 잘못 구성된 네트워킹으로 인해 프로덕션에서 심각한 오류가 발생할 수 있습니다.

  1. 모든 구성 요소 간의 연결을 테스트합니다. Azure Network Watcher 연결 문제 해결을 사용하여 애플리케이션 계층이 서로 및 외부 서비스와 통신할 수 있는지 확인합니다. 이 유효성 검사는 네트워크 보안 그룹, 라우팅 테이블 및 DNS 구성에서 필요한 트래픽 흐름을 허용하는지 확인합니다. 이 도구는 연결 문제에 대한 자세한 인사이트를 제공하고 통신을 방해하는 특정 구성 문제를 식별합니다.

  2. 외부 서비스 연결을 확인합니다. 워크로드가 의존하는 외부 API, 데이터베이스 및 외부 서비스에 대한 연결을 테스트합니다. Network Watcher를 사용하여 아웃바운드 연결이 올바르게 작동하고 방화벽 규칙에서 필요한 트래픽을 허용하는지 확인합니다. 프로덕션 배포에 대한 연결 요구 사항을 문서화합니다.

인증 흐름 유효성 검사

인증은 보안 및 액세스 제어에 중요합니다. 이러한 흐름의 유효성을 검사하면 사용자와 서비스가 Azure 환경에서 문제 없이 인증할 수 있습니다.

  1. 사용자 인증 흐름을 테스트합니다. 테스트 사용자 계정을 사용하여 Microsoft Entra ID와 같은 ID 공급자에 액세스할 수 있고 인증이 올바르게 작동하는지 확인합니다. Single Sign-On, 다단계 인증 및 암호 재설정 흐름을 비롯한 다양한 인증 시나리오를 테스트하여 완전한 기능을 보장합니다.

  2. 서비스 대 서비스 인증의 유효성을 검사합니다. 서비스 주체와 관리 ID를 사용하여 애플리케이션 구성 요소 간의 인증을 테스트합니다. Azure RBAC(역할 기반 액세스 제어) 권한이 올바르게 구성되고 서비스가 데이터베이스 및 스토리지 계정과 같은 필수 리소스에 인증할 수 있는지 확인합니다.

기능 및 성능 테스트 수행

기능 및 성능 테스트는 워크로드가 비즈니스 요구 사항을 충족하고 라이브로 전환하기 전에 예상 조건에서 안정적으로 수행되도록 합니다.

  1. 포괄적인 기능 테스트를 실행합니다. UAT(사용자 동의 테스트), 통합 테스트 및 회귀 테스트를 수행하여 애플리케이션이 비즈니스 및 기술 요구 사항을 충족하는지 확인합니다. 모든 중요한 사용자 워크플로 및 비즈니스 프로세스를 테스트하여 Azure 환경에서 올바르게 작동하는지 확인합니다. 모든 기능 문제를 문서화하고 프로덕션 배포 전에 해결합니다.

  2. 실제 부하 조건에서 성능을 측정합니다. Azure Load Testing을 사용하여 실제 사용자 트래픽을 시뮬레이션하고 응답 시간, 처리량 및 리소스 사용률을 측정합니다. 예상 프로덕션 사용 패턴 및 최대 부하 시나리오를 반영하도록 부하 테스트를 구성합니다. 부하 테스트는 자세한 성능 메트릭을 제공하고 사용자 환경에 영향을 줄 수 있는 병목 상태를 식별합니다.

  3. 기준선에 대한 성능의 유효성을 검사합니다. CAF 계획 워크로드 평가 중에 문서화된 성능 기준 메트릭을 참조합니다. 테스트 결과를 원본 환경에서 설정된 성능 기준과 비교합니다. 성능 저하를 식별하고 구성을 최적화하거나, 리소스를 확장하거나, 성능 목표를 충족하도록 코드를 수정합니다.

  4. 승인 테스트에 관련자를 포함합니다. 비즈니스 사용자와 함께 승인 테스트를 수행하여 워크로드가 비즈니스 기대치 및 사용자 환경 요구 사항을 충족하는지 확인합니다. 비즈니스 유효성 검사를 통해 프로덕션 배포 전에 워크로드가 예상된 가치와 기능을 제공할 수 있습니다.

재사용 가능한 인프라 만들기

현대화된 솔루션이 비프로덕션 환경에서 모든 테스트를 통과하면 인프라 설정 및 구성을 코드로 캡처해야 프로덕션 및 향후 환경에서 쉽게 복제할 수 있습니다. 재사용 가능한 인프라는 일관성과 속도를 위해 IaC(Infrastructure-as-code) 템플릿 및 자동화를 사용하는 것을 의미합니다.

  1. 검증된 구성에 대한 IaC 템플릿을 만듭니다. 테스트 환경의 최종 아키텍처(prod에서 원하는 것을 반영)를 가져와서 명문화합니다. Bicep, Terraform 또는 Azure Resource Manager 템플릿을 사용하여 인프라를 정의합니다. 이러한 템플릿을 매개 변수화하여 개발, 테스트, 이름 또는 크기와 같은 작은 조정으로 prod와 같은 다양한 단계에서 다시 사용할 수 있습니다. 이 설정은 사용자가 만든 프로덕션 환경이 테스트한 환경과 일치하도록 합니다. 리소스를 만들기 위해 Azure Portal을 수동으로 클릭할 때 발생하는 사용자 오류를 방지합니다. 또한 재해 복구 또는 새 지역에 배포하는 것과 같이 환경을 다시 만들어야 하는 경우 인프라 배포가 준비됨을 의미합니다. 자세한 내용은 CAF 관리 - 코드 기반 배포 관리를 참조하세요.

  2. 버전 제어에 템플릿을 저장합니다. 인프라 코드를 Git 리포지토리(애플리케이션 코드와 함께 또는 별도의 리포지토리)로 확인합니다. GitHub 또는 Azure DevOps를 사용하여 적절한 버전 제어를 사용하여 IaC 자산을 관리합니다. 버전 제어를 사용하면 코드 검토를 사용하도록 설정하고, 팀 공동 작업을 지원하며, 프로젝트 간에 템플릿을 다시 사용하도록 권장합니다. 이 방법은 인프라 변경에 대한 완전한 추적 기능을 제공하고 문제가 발생할 때 롤백 기능을 지원합니다.

  3. 종속성 설치 및 구성을 자동화합니다. 스크립트 또는 파이프라인 작업을 만들어 이러한 템플릿을 배포하고 필요한 구성 또는 시드 작업도 처리합니다. Azure Pipelines, GitHub Actions를 사용하여 IaC 템플릿을 사용하고 대상 구독/리소스 그룹에 배포하는 배포 작업을 실행합니다. 앱 종속성 설치, 설정 구성 및 비밀 관리를 자동화합니다. 목표는 한 번의 클릭(또는 한 명령) 환경 설정입니다. 아무것도 없는 환경부터 테스트한 것과 일치하는 완전히 실행 중인 환경까지입니다.

  4. IaC 및 자동화 전체 과정을 테스트합니다. 별도의 Azure 구독 또는 리소스 그룹을 샌드박스로 사용하고 템플릿 및 스크립트를 사용하여 전체 환경을 처음부터 배포하는 방법을 연습합니다. IaC 템플릿, 파이프라인 및 스크립트가 아무것도 없는 전체 인프라 스택을 만들 수 있도록 테스트합니다. 초기 배포, 구성 업데이트 및 롤백 절차를 비롯한 다양한 배포 시나리오를 테스트하여 자동화가 제대로 작동하는지 확인합니다.

자세한 내용은 WAF 의 코드로 워크로드 개발 공급 변경인프라 설계를 참조하세요.

배포 설명서 만들기

자동화를 사용하더라도 감사, 새 팀 구성원 온보딩 및 향후 유지 관리에 배포에 대한 좋은 설명서를 보유하는 것이 중요합니다. 배포 설명서에는 사람이 읽을 수 있는 형식의 구성, 절차 및 롤백 단계가 설명되어 있어야 합니다.

  1. 문서 구성 설정 및 단계. 액세스 가능한 설명서에 모든 환경별 설정, 연결 문자열, 서비스 엔드포인트 및 보안 구성을 기록합니다. 단계별 배포 지침, 필수 구성 요소 요구 사항 및 배포 후 유효성 검사 단계를 포함합니다. 이 설명서는 일관된 배포를 가능하게 하고 문제가 발생할 때의 문제 해결을 지원합니다. 새 엔지니어가 배포해야 하는 경우 이 문서를 읽고 파이프라인의 출력을 따르거나 이해할 수 있습니다.

  2. 롤백 및 복구 절차를 업데이트합니다. 테스트를 완료한 후 배포 문제가 발생할 때 변경 내용을 되돌리는 단계를 공식화합니다. 롤백 트리거, 데이터 백업 및 복원 절차 및 복구 유효성 검사 단계를 포함합니다. 롤백 및 복구 프로시저를 정기적으로 테스트하여 필요할 때 제대로 작동하는지 확인합니다. 이 준비는 가동 중지 시간을 줄입니다.

  3. 이 모든 설명서를 중앙 위치에 수집합니다. SharePoint, GitHub 또는 Wiki를 사용하여 이 정보를 저장합니다. 팀과 지원 담당자가 찾을 위치를 알고 있는지 확인합니다. 스트레스가 높은 사건에서 명확한 문서를 손에 들고 있는 것은 생명의 은인입니다.

다음 단계