1.배포 전략이란?

이전에는 소스 배포가 비업무시간, 수주에서 수개월에 한번 수행하는 큰 작업이었으나 최근에는 서비스를 구성할 때 모놀리틱 서비스 환경에서 마이크로 서비스 환경으로 많이 바뀌면서 배포 주기가 짧아지게 되었다. 

 

더 자주 소스를 배포하는 방식으로 변화되고 있는 만큼 변경 사항이 생겼을 때 더 빠르게 반영할 수 있다는 장점은 있지만 소스를 수정하는 것은 항상 리스크가 따르기 때문에 이에 대응한 배포 전략을 구성해야한다.

 

2.배포 기법

2.1  Rolling Strategy

애플리케이션의 이전 버전의 인스턴스를 새로운 버전의 인스턴스로 서서히 대체하는 방식으로 가장 일반적인 배포 방식이다.

Rolling은 일반적으로 이전 구성 요소를 축소하기 전에 준비 상태 점검을 통해 새 POD가 준비될 때까지 일정 비율을 다운하지 않고 대기하고 중대한 문제가 발생하면 Rolling을 중단할 수 있다. Rolling 배포는 Canary 방식의 구축이며, 모든 이전 인스턴스를 교체하기 전에 새로운 버전(카나리아)을 테스트하고 준비 상태 점검이 성공하지 못하면 카나리 인스턴스가 제거되고 배포 구성이 자동으로 롤백(Roll-Backup)된다.

- 장점
  . 서비스 다운타임 없이 새버전의 어플리케이션으로 무중단 배포 가능
  . 순차적으로 진행함으로 손쉽게 롤백이 가능
  . 서버자원이 2배 필요한 Blue/Green 배포방식에 비해 서버 자원 제약시 유리

- 단점
   . 어플리케이션에 대한 복잡한 검사를 구현해야 하는 경우는 부적합
   . 좀 더 긴 배포시간을 요함
   . 배포중인 서버는 중단된 상태로 서버 부하량이 늘어난 상태에서 배포 시작시 나머지 서버 자원들의 부하량이
     늘어나 서비스 전체가 마비 될 수 있음(이벤트 확인 필요)

   . 롤백 과정이 다소 복잡하다

이미지 출처: 'developheo'님 블로그 (https://yongdev91.tistory.com/23) - 순차적 배포

 

2.2  Canary Deployments

사용자나 서버의 일부에 릴리즈를 롤아웃하기 위한 패턴이다. 그 아이디어는 먼저 서버의 작은 서브셋에 변경사항을 배포하고, 테스트한 다음 나머지 서버에 변경사항을 롤아웃하는 것이다.
Canary Deployments는 다운타임에 미치는 영향이 적은 조기 경고 표시기 역할을 한다. 카나리아 구축이 실패해도 나머지 서버들은 영향을 받지 않는다.

- 장점
   . 신버전 배포전 운영환경에 직접 테스트를 진행해 볼 수 있음
   . 단계적인 전환 방식으로 리스크를 최소화하고 상황에 따라 트래픽 양을 늘리거나 롤백이 가능

- 단점
   . 동시에 두개의 서로다른 버전이 운영됨으로 버전 관리 중요

이미지 출처: 'developheo'님 블로그 (https://yongdev91.tistory.com/23)

 

2.3  Blue-Green Deployment

Blue(OLD Version)와 Green(New Version)이라는 동일한 두 운영 환경을 운영하여 다운타임과 리스크를 줄이는 방식으로 모든 서비스 운영 환경은 오직 하나의 환경만 존재한다. 비용상의 문제로 물리서버 대상보다 도커나 컨테이너같은 가상 환경에서 사용한는 것이 유리하다.
어플리케이션의 새 버전을 준비할 때 배포 및 최종 테스트 단계는 라이브가 아닌 환경에서 수행되며, Green에서 어플리케이션을 배포하고 완전히 테스트한 후에는 로드발란서로 전환하여 들어오는 모든 요청을 Blue가 아닌 Green으로 이동 시킨다.
- 장점
   . 운영 다운타임 최소화(사실상 배포방식 중 가장 짧음)
   . 배포시간이 짧음
   . 배포 리스크를 적고 롤백이 단순함(Green으로 유입되는 경로를 Blue로 변경하여 즉시 적용)

- 단점

  . 신버전과 구버전 모두 필요하여 리소스가 두배 이상 필요

  . 롱텀 트랜잭션이 수행 중 일경우 전환시 어떤 방식으로 처리할 지 고려 필요

  . Blue와 Green 두 환경간 migration이 배포때 마다 필요하며, 롤백 수행시에도 고려 필요

이미지 출처: 'developheo'님 블로그 (https://yongdev91.tistory.com/23)

 

2.4  Recreate Strategy

Rolling 이랑은 다르게 새 어플리케이션을 배포시 기존 POD를 모두 삭제한후 배포가 되므로 일반적으로
사용되는 배포방식은 아니다.

Recreate 전략을 사용하는 경우는 다음과 같다. 서비스가 다운되어도 문제가 없는 경우 사용한다.

  1) 새 어플리케이션을 시작하기 전에 마이그레이션 또는 데이터 변환을 실행해야 하는경우
  2) 신규 버전의 어플리케이션 코드를 기존 어플리케이션과 같이 쓸수 없는 경우
  3) 여러 복제본 간에 공유할수 없는 RWO 볼륨을 사용하는 경우

- 장점

  . 다른 배포방식보다 빠른 배포시간

- 단점
  . 서비스 다운 타임이 발생함

이미지 출처: 'developheo'님 블로그 (https://yongdev91.tistory.com/23)

 

2.5  Kubernetes 배포 전략 적용 권고사항

Quota와 Limit Ranges와 같은 리소스 제한 설정을 사용하는 경우, 배포 전략 중 Recreate, Rolling 전략을 사용할 때 배포 오동작을 막기 위한 설정 개선 방안을 제시한다.
Recreate 배포 전략을 사용해서 배포하는 경우, 프로젝트별 Quota의 pod 개수는 실제 자동확장 최대 pod 개수 보다 2 큰 수(deployer pod + builder pod 포함)로 설정할 것을 권고 한다.
Rolling 배포 전략을 사용해서 배포하는 경우, 프로젝트별 Quota의 pod 개수는 실제 자동확장 최대 pod 개수에 deployer pod, builder pod 개수를 포함하고, maxSurge(기본 25%)값 반영하여(autoscale max pod 개수 * (maxSurge 25%)) 산정할 것을 권고 한다.

[Azure 도움 사이트]

1. Azure 제품 설명
https://learn.microsoft.com/ko-kr/docs/  (기술문서)

 

기술 문서

교육자 센터 대화형 단원 학습에 대해 자세히 알아보고, 전문 개발 시간을 확보하고, 인증을 획득하고, 목표를 달성하는 데 도움이 되는 프로그램을 찾아보세요.

learn.microsoft.com

https://learn.microsoft.com/ko-kr/azure/ (학습)

 

Azure 설명서

Microsoft Azure cloud service를 사용하여 강력한 애플리케이션을 빌드하고 관리하는 방법을 알아봅니다. 설명서, 예제 코드, 자습서 등을 가져옵니다.

learn.microsoft.com

https://www.youtube.com/user/microsoftlearning (MS유튜브)

 

Microsoft Learn

Official channel for Microsoft certification and training. Upgrade your career by mastering Microsoft technologies with classroom training, online learning, certification, books, events, and more. Visit https://learn.microsoft.com

www.youtube.com


2. Azure 서비스별 서비스 수준 계약(SLA) 내용

https://azure.microsoft.com/ko-kr/support/legal/sla/

 

서비스 수준 계약 - Home | Microsoft Azure

작동 시간 보장 및 작동 중지 시간 크레딧 정책에 대해 알아보려면, 개별 Azure Service 및 Microsoft Online Service에 대한 서비스 수준 계약을 읽으십시오.

azure.microsoft.com


3. Azure Resource Manager QuickStart Templates

https://github.com/Azure/azure-quickstart-templates

 

GitHub - Azure/azure-quickstart-templates: Azure Quickstart Templates

Azure Quickstart Templates. Contribute to Azure/azure-quickstart-templates development by creating an account on GitHub.

github.com

 

4.Azure 교육용 Lab가이드
http://https://learn.microsoft.com/ko-kr/training/courses/browse/

 

강사 지도식 교육 검색 - 학습

전통적인 오프라인 교육 설정 또는 온라인 비디오를 선택하여 원하는 일정, 원하는 속도 및 원하는 장소에서 학습하십시오.

learn.microsoft.com

https://learn.microsoft.com/ko-kr/training/browse/

 

모든 학습 경로 및 모듈 찾아보기 - Training

단계별 지침을 통해 새로운 기술과 Microsoft 제품의 기능을 알아보세요. 학습 경로 및 모듈을 살펴보고 오늘 과정을 시작하세요.

learn.microsoft.com

https://github.com/MicrosoftLearning (MS실습자료)

 

Microsoft Learning

Microsoft Learning has 549 repositories available. Follow their code on GitHub.

github.com


5.Azure 가격

https://azure.microsoft.com/ko-kr/pricing/

 

가격 책정 개요 - Azure 가격 책정 방식 | Microsoft Azure

Microsoft Azure를 통해 최상의 클라우드 가치를 얻으세요. 사전 투자 비용이나 취소 요금 없이 투명한 가격 책정을 이용하고 사용한 리소스에 대한 비용만 지불하면 됩니다.

azure.microsoft.com

 

 

 

[Azure 도움 프로그램]

1. Azure CLI(Windows용)
https://learn.microsoft.com/ko-kr/cli/azure/install-azure-cli-windows?tabs=azure-cli

 

Windows용 Azure CLI 설치

Windows에서 Azure CLI를 설치하려면 Windows 명령 프롬프트(CMD)를 통해 CLI에 대한 액세스 권한을 제공하는 MSI 설치 관리자 또는 Powershell을 사용해야 합니다.

learn.microsoft.com

▶Azure CLI 명령어
https://learn.microsoft.com/ko-kr/cli/azure/?view=azure-cli-latest 

 

Azure CLI(명령줄 인터페이스) - 개요

Azure 리소스를 만들고 관리하기 위해 Azure CLI(명령줄 인터페이스)를 시작하는 방법을 알아보세요. 가이드, 자습서, 샘플, 문서 등을 살펴보세요.

learn.microsoft.com

 

2. PowerShell 설치I(Windows용)
https://learn.microsoft.com/en-us/powershell/scripting/install/installing-powershell-on-windows?view=powershell-7.2

 

Installing PowerShell on Windows - PowerShell

Information about installing PowerShell on Windows

learn.microsoft.com

 

3. Azure Resource Manager QuickStart Templates

https://github.com/Azure/azure-quickstart-templates

 

GitHub - Azure/azure-quickstart-templates: Azure Quickstart Templates

Azure Quickstart Templates. Contribute to Azure/azure-quickstart-templates development by creating an account on GitHub.

github.com

 

Azure ExpressRoute 구성도

[ExpressRoute] 주요 네트워크 지점 설명

1. 고객 컴퓨팅 디바이스(: 서버 또는 PC)
2. 고객 Edge 라우터(CE)
3. 고객 Edge 라우터에 연결되는 공급자 Edge 라우터/스위치(PE)
4. Microsoft Enterprise Edge 라우터(MSEE)와 마주하는 PE. 이 문서에서는 PE-MSEE라고 합니다.
5. MSEE
6. 가상 네트워크 게이트웨이
7. Azure 가상 네트워크의 컴퓨팅 디바이스
 

고객사 집선L3(VRF) – 회선사업자 ASR(Active-Active) PE (Active-Standby) – MSEE vHub

 

 

1. Amazon Web Services, Amazon WorkDocs,  Amazon API Gateway, Amazon WorkMail,  AWS Application Discovery Services, Amazon WorkSpaces,  Amazon AppStream, AWS Batch,  Auto Scaling, BOX,  AWS Artifact, ACM(AWS Certificate Manager),  Amazon Athena, AWS CloudFormation,  Aurora, AWS CloudHSM(Hardware Security Module)
2. Amazon Cognito, AWS CodeDeploy, AWS CloudTrail, AWS Data Pipeline, Amazon CloudWatch, AWS DMS, AWS CodeBuild, Amazon DynamoDB, Amazon CloudFront, AWS Device Farm, AWS CodeCommit, AWS Direct Connect, CodePipeline, AWS Directory Service, AWS Config, EBS(Elastic Block Store)
3. Amazon EC2 (Elastic Compute Cloud),  AWS Elastic Beanstalk, Amazon ECS (EC2 Container Service), AWS EMR (Elastic MapReduce), Amazon Elastic Transcoder, ENI (Elastic Network Interface), Amazon ECR,   EC2 Container Registry, Amazon ElasticCache,   Amazon EC2 Elastic GPUs,       Amazon EFS (Elastic File System), AWS EC2 – F1 인스턴스 타입 ELB(Elastic Load Balancing), Amazon EC2 System Manager
4. Elastic IP address (EIP), Amazon Inspector, Amazon ES, Amazon Kinesis, Amazon GameLift, AWS Lambda, Amazon Glacier, AWS Lambda@Edge, AWS Greengrass, Amazon Lex, Amazon Glue, Amazon Lightsail, IAM(Identity and Access Management), Amazon Machine Learning, AWS IoT, AWS Managed Services
5.Amazon Mobile Analytics, Amazon Rekognition, AWS Mobile Hub, Amazon Route 53, AWS OpsWorks, Reserved Instance (RI), Amazon Polly, Amazon S3 (Simple Storage Service), Amazon Pinpoint, AWS Service Catalog, Amazon QuickSight, Amazon SES(Simple Email Service), Amazon RDS (Relational Database Service), AWS SMS (Server Migration Service), Amazon Redshift, AWS Shield
6. AWS Snowball, AWS Storage Gateway, AWS Snowmobile, Amazon SWF (Simple Workflow Service), Amazon SQS (Simple Queue Service), Amazon Trusted Advisor, AWS Step Functions, VM Import / Export, Amazon SNS (Simple Notification Serivce), Amazon VPC (Virtual Private Cloud), Spot Instance, AWS WAF, AWS Organizations, AWS X-Ray

1. AWS아키텍처

https://aws.amazon.com/ko/training/awsacademy/cloud-computing-architecture/

 

Cloud Computing Architecture

Cloud Computing Architecture 과정에서 학생이 배우게 될 내용은 다음과 같습니다. 클라우드 컴퓨팅과 AWS의 가치 및 혜택 파악 보안을 유지하고 데이터를 보호하는 방법과 도구 이해 AWS 클라우드의 재

aws.amazon.com

 

2. Azure 아키텍처

https://docs.microsoft.com/ko-kr/azure/architecture/

 

Azure 아키텍처 센터 - Azure Architecture Center

Azure 아키텍처 센터는 Azure에서 워크로드를 실행하기 위한 모범 사례를 제공합니다.

docs.microsoft.com

 

3. GCP 아키텍처

https://cloud.google.com/migrate/compute-engine/docs/4.8/concepts/architecture/gcp-reference-architecture?hl=ko

 

Google Cloud 참조 아키텍처  |  Migrate for Compute Engine(이전의 Velostrata)

Migrate for Compute Engine은 VMware vSphere에서 실행되는 가상 머신(VM)을 Compute Engine으로 마이그레이션하는 경로를 제공합니다. 또한 Migrate for Compute Engine은 물리적 서버와 Amazon EC2 또는 Azure VM을 Compute Eng

cloud.google.com

 

4. AWS 클라우드구축 모범사례

https://d36cz9buwru1tt.cloudfront.net/ko/WP/AWS_Cloud_Best_Practices_05252010.pdf

 

5. Redhat 아키텍처 가이드

https://access.redhat.com/documentation/en-us/red_hat_openstack_platform/12/html/architecture_guide/index

 

Architecture Guide Red Hat OpenStack Platform 12 | Red Hat Customer Portal

This guide introduces the OpenStack cloud components and provides design guidelines and architecture examples to help you design your own OpenStack cloud.

access.redhat.com

 

6. 클라우드 운영관리 가이드
1) 클라우드지원센터

https://www.cloud.or.kr/resources/upload/clouddata/report/Architecture_based_cloud_operations_management_guide.pdf

 

2)행안부

https://www.mois.go.kr/frt/bbs/type001/commonSelectBoardArticle.do?bbsId=BBSMSTR_000000000015&nttId=55397 

 

공공기관 민간 클라우드 이용 가이드라인 | 행정안전부> 정책자료> 참고자료> 참고자료

참고자료 HOME > 정책자료> 참고자료> 참고자료

www.mois.go.kr

 

각각의 VPC를 소유한 여러 Account 혹은 Project를 Organization으로 통합하여 관리 할 수 있는 기반을 제공한다

https://aws.amazon.com/ko/solutions/implementations/aws-landing-zone/

 

Landing Zone | 구현 | AWS 솔루션

다중 계정 구조 AWS Organization 계정 AWS Landing Zone이 AWS Organizations 계정에 배포됩니다. 이 계정은 구성을 관리하고 AWS Landing Zone 관리형 계정에 액세스하는 데 사용됩니다. AWS Organizations 계정은 멤버

aws.amazon.com

AWS는 Landing zone 구성을 위한 백서 및 Cloud Formation을 Github에 공개하고 버전관리도 수행한다
또한 AWS의 서비스 중 Landing zone 관리를 위한 서비스인 Control tower도 제공한다

 

2020년 7월 기준 GCP는 Landing zone 형태의 서비스 구성에 어려운점이 많아 구성하지 않는것이 좋다
(Transit GW 같은 서비스가 없어 VPC Peering 구성해야 하는게 가장 큰듯)

 

AWS Landing zone은 Organization을 기반으로 각자의 용도가 분명한 Account들이 협업하는 구조이다

Organization의 Service Control Policy 정책에 따라 Account들이 관리 된다
각자의 용도가 분명한 Account 1개 에는 1개의 VPC 만 구성한다

 

크게 분류하면(Organization Unit 으로는...) Root, Core, Service 로 나눌 수 있다
Core에는 Shared, Network, Security 등의 Landing zone 주요 서비스들이 구성된다
Service에는 실제 고객의 인프라 자원들이 생성되는 곳이다

 

AWS Landing Zone 솔루션은 AWS Account Vending Machine(AVM) 제품을 배포하여 새로운 계정을 프로비저닝하고 자동으로 구성합니다. AVM은 AWS Single Sign-On(SSO)을 활용하여 사용자 계정 액세스를 관리합니다. 고객은 이 환경을 사용자 지정하여 Landing Zone 구성 및 업데이트 파이프라인을 통해 자체 계정 기준을 구현할 수 있습니다.

 

1. AWS Landing Zone 솔루션에는 4개의 계정과 AWS Service Catalog를 사용하여 배포할 수 있는 애드온 제품(예: Centralized Logging 솔루션, AWS Managed AD and Directory Connector for AWS SSO)이 포함됩니다.

*AWS Organization 계정

AWS Landing Zone이 AWS Organizations 계정에 배포됩니다. 이 계정은 구성을 관리하고 AWS Landing Zone 관리형 계정에 액세스하는 데 사용됩니다. AWS Organizations 계정은 멤버 계정을 생성하고 재정적으로 관리하는 기능을 제공합니다. AWS Landing Zone 구성 Amazon Simple Storage Service(Amazon S3) 버킷과 파이프라인, 계정 구성 StackSets, AWS Organizations 서비스 제어 정책(SCP), AWS Single Sign-On(SSO) 구성이 포함됩니다.

*로그 서비스 계정

공유 서비스 계정은 디렉터리 서비스와 같은 인프라 공유 서비스에 대한 참조입니다. 기본적으로 이 계정은 Account Vending Machine (AVM)으로 생성된 새로운 AWS 계정과 자동으로 피어링될 수 있는 공유된 Amazon Virtual Private Cloud(VPC)에서 AWS SSO 통합을 위한 AWS 관리형 Active Directory를 호스팅합니다.

*로그 아카이브 계정

로그 아카이브 계정에는 로그 아카이브 계정에 있는 모든 AWS CloudTrail 및 AWS Config 로그 파일의 사본을 저장하기 위한 중앙 Amazon S3 버킷이 있습니다.

*보안 계정

보안 계정은 모든 AWS Landing Zone 관리형 계정에 대한 감사자(읽기 전용) 및 관리자(전체 액세스) 교차 계정 역할을 생성합니다. 이 역할은 회사 보안 및 규정 준수 팀이 인시던트 발생 시 긴급 보안 작업을 감사하거나 수행하는 데 사용하는 것을 목적으로 합니다.

또한, 이 계정은 마스터 Amazon GuardDuty 계정으로 지정됩니다. 마스터 계정 사용자는 GuardDuty를 구성하고 자신의 계정 및 모든 멤버 계정에 대한 GuardDuty 결과를 확인할 수 있습니다.

 

2. Account Vending Machine(AVM)은 AWS Landing Zone 주요 구성 요소입니다. AVM은 AWS Service Catalog 제품으로 제공되는데, 고객이 계정 보안 기준으로 사전 구성된 OU(조직 단위)의 새 AWS 계정과 사전 정의된 네트워크를 생성합니다.

 

3. AWS 계정에 권한이 최소화된 개별 사용자 액세스를 제공하는 것은 AWS 계정 관리의 필수적이면서도 기본적인 구성 요소입니다. AWS Landing Zone 솔루션은 고객에게 사용자 및 그룹을 저장하는 2가지 옵션을 제공합니다.

 

4. AWS Landing Zone 솔루션은 루트 계정 로그인, 콘솔 로그인 실패, API 인증 실패, 계정 내 변경 사항(보안 그룹, 네트워크 ACL, Amazon VPC 게이트웨이, 피어링 연결, ClassicLink, Amazon EC2(Amazon Elastic Compute Cloud) 인스턴스 상태, 라지 Amazon EC2 인스턴스 상태, AWS CloudTrail, AWS Identity and Access Management(IAM) 정책, AWS Config 규칙 준수 상태)이 발생할 경우 알림을 전송하도록 Amazon CloudWatch 경보 및 이벤트를 구성합니다.

 

랜딩 영역은 보안 및 규정 준수 모범 사례를 기반으로하는 잘 설계된 다중 계정 AWS 환경입니다. AWS Control Tower는 자격 증명, 연동 액세스 및 계정 구조에 대한 모범 사례 청사진을 사용하여 새로운 랜딩 영역의 설정을 자동화합니다. 랜딩 존에서 자동으로 구현되는 블루 프린트의 몇 가지 예는 다음과 같습니다.

  • AWS Organizations를 사용하여 다중 계정 환경 생성
  • AWS Single Sign-On (SSO) 기본 디렉터리를 사용하여 자격 증명 관리 제공
  • AWS SSO를 사용하여 계정에 대한 연동 액세스 제공
  • AWS CloudTrail 및 Amazon S3에 저장된 AWS Config의 로깅을 중앙 집중화합니다.
  • AWS IAM 및 AWS SSO를 사용하여 교차 계정 보안 감사 활성화

AWS Control Tower에서 설정 한 랜딩 존은 고객이 셀프 서비스 콘솔 경험을 통해 선택하는 필수 및 강력하게 권장되는 가드 레일 세트를 사용하여 관리되어 계정 및 구성이 정책을 준수하는지 확인합니다.

1. 1/2세대 VM의 지원OS비교

https://docs.microsoft.com/ko-kr/windows-server/virtualization/hyper-v/plan/should-i-create-a-generation-1-or-2-virtual-machine-in-hyper-v

 

1 또는 2 세대 가상 컴퓨터를 Hyper-v에서 만들어야 하나요?

부팅 메서드 같은 지원 되는 고려 사항 및 요구 사항에 맞는 세대를 선택할 수 있도록 다른 기능 차이 제공 합니다.

docs.microsoft.com

2. 1/2세대 VM의 OS, Disk제한 비교

-1세대 : OS 300GB, data 4TB, bitlocker지원 안됨, VHD/VHDX지원

-2세대 : OS 2TB ~ 12TB, data 4TB, bitlocker지원 안됨, win2012,2016,2019(linux지원 안함), VHD만지원

 

3. VM Disk유형별 크기,iops,처리량

https://docs.microsoft.com/ko-kr/azure/virtual-machines/linux/disks-types

 

Azure IaaS Linux Vm-관리 디스크에 대 한 디스크 유형 선택

Ultra Ssd, premium Ssd, 표준 Ssd 및 Hdd 표준를 포함 하 여 Linux virtual machines에 대 한 사용 가능한 Azure 디스크 유형에 대해 알아봅니다.

docs.microsoft.com

4.VMware VM 또는 물리적 서버와 Azure 간 재해 복구를 위한 지원 매트릭스 (Azure Site Recovery)

https://docs.microsoft.com/ko-kr/azure/site-recovery/vmware-physical-azure-support-matrix

 

Azure Site Recovery를 사용한 VMware VM 및 물리적 서버와 Azure 간 재해 복구를 위한 지원 매트릭스

VMware Vm 및 Azure Site Recovery를 사용 하 여 Azure에 물리적 서버 재해 복구에 대 한 지원을 요약 합니다.

docs.microsoft.com

Q1.

You plan to migrate an on-premises Hyper-V environment to Azure by using Azure Site Recovery. The Hyper-V environment is managed by using Microsoft
System Center Virtual Machine Manager (VMM).
The Hyper-V environment contains the virtual machines in the following table.


Which virtual machine can be migrated by using Azure Site Recovery?

  • A. DC1
  • B. FS1
  • C. CA1
  • D. SQL1

Correct Answer: D 

 

 

Q2.
HOTSPOT -

You have an Azure subscription named Subscription1.
You have a virtualization environment that contains the virtualization servers in the following table.


The virtual machines are configured as shown in the following table.


All the virtual machines use basic disks. VM1 is protected by using BitLocker Drive Encryption (BitLocker).
You plan to use Azure Site Recovery to migrate the virtual machines to Azure.
Which virtual machines can you migrate?

To answer, select the appropriate options in the answer area.
       - Virtual Machines that can be migrated from Server1: (          )
       - Virtual Machines that can be migrated from Server2: (          )

NOTE: Each correct selection is worth one point.
Hot Area:

Q3.

HOTSPOT -
You have an Azure subscription named Subscription1. You have a virtualization environment that contains the virtualization server in the following table.


The virtual machines are configured as shown on the following table.


All the virtual machines use basic disks. VM1 is protected by using BitLocker Drive Encryption (BitLocker). You plan to use Azure Site Recovery to migrate the virtual machines to Azure.
Which virtual machines can you migrate? To answer, select the appropriate options in the answer area.
NOTE: Each correct selection is worth one point.
Hot Area:

 

Correct Answer: Explanation 
Not VM1 because it has BitLocker enabled.
Not VM2 because the OS disk is larger than 2TB.
Not VMC because the Data disk is larger than 4TB.
References:
https://docs.microsoft.com/en-us/azure/site-recovery/hyper-v-azure-support-matrix#azure-vm-requirements

 

Support matrix for disaster recovery of on-premises Hyper-V VMs to Azure

Summarizes the supported components and requirements for Hyper-V VM disaster recovery to Azure with Azure Site Recovery

docs.microsoft.com

 

Q4.

You plan to move services from your on-premises network to Azure.
You identify several virtual machines that you believe can be hosted in Azure. The virtual machines are shown in the following table.

Which two virtual machines can you access by using Azure migrate? Each correct answer presents a complete solution.
NOTE: Each correct selection is worth one point.

  • A. Sea-CA0l
  • B. Hou-NW01
  • C. NYC-FS01
  • D. Sea-DC01
  • E. BOS-DB01

Answer: CE

1.컨테이너 기술의 개념

이미지 출처: docker.com (왼쪽: Containers, 오른쪽: virtual machines)

구분 컨테이너 가상화
기능 하나의 OS Host에 다수의 가상공간(Container) 제공 단일 서버를 다수의 가상서버(VM)로 나눠 사용
특징 - Guest OS를 설치없이 이미지에 필수적인 라이브러리와 프로그램만 탑재
- 다양한 API제공으로 개발서버 환경에 적합
- Guest OS와 별도의 프로그램 설치
- 안정성이 요구되는 운영서버에 적합
장점 - 자원 효율성이 높고 파일 Access가 빠름
  (컴퓨팅 파워 및 디스크 용량 50% 절감)
- 이미지 생성, 배포가 용이
- VM 구분으로 안정성 우수
- VM 상호간의 영향 최소화
- 다양한 종류의 OS 수용 가능
단점 - 동일 OS내 상호간의 영향 우려
- 단일 기종의 OS만 수용
- 자원 효율성이 상대적으로 낮음
- Host OS와 Guest OS, Application을 중재 및 Guest OS 생성 과정에서 많은 자원이 낭비
주요 제품군 Docker, Garden, LXC vSphere, Hyper-V, KVM, Xen

* 컨테이너 적용
- PaaS 기반 개발환경 구성을 통해 컨테이너 환경의 Application 서비스 활용 가능
- 업무 구조의 모듈화 및 데이터 분리시 더욱 효과적

 

* 도커 안내서

https://subicura.com/2017/01/19/docker-guide-for-beginners-1.html

 

초보를 위한 도커 안내서 - 도커란 무엇인가?

도커를 처음 접하는 시스템 관리자나 서버 개발자를 대상으로 도커 전반에 대해 얕고 넓은 지식을 담고 있습니다. 도커가 등장한 배경과 도커의 역사, 그리고 도커의 핵심 개념인 컨테이너와 이

subicura.com

* 쿠버네티스 안내서

https://subicura.com/k8s/

 

쿠버네티스 안내서

쿠버네티스 안내서 - 실습편

subicura.com

* 도커 컨테이너 장점

- 빠른 애플리케이션 배포

- 이식성: 도커 컨테이너는 호환성에 관련된 문제를 신경쓰지 않고도 운영할 수 있습니다.

- 쉬운 공유: 공용 리포지터리나 내부전용 사설 리포지터리를 구성해 쉽게 공유할 수 있습니다.

- 적은 자원 사용량: 도커 이미지는 크기가 작고 새로운 애플리케이션을 배포할 때 다른 컨테이너를 활용함으로써 자원 사용량도 적습니다.

- 재사용성: 도커 컨에티너의 버전을 지속적으로 이어나가기 쉽고, 언제든 이전 버전으로 돌리기도 쉽습니다. 기존에 사용하는 레이어에 담긴 컴포넌트들을 재사용할 수 있기 때문에 경량화가 가능합니다.

 

2.컨테이너 배포방식

 

*쿠버네티스 배포 [출처: https://bcho.tistory.com/1256 조대협의 블로그]

쿠버네티스의 Deployment 리소스를 이해하기 위해서는 쿠버네티스에서 Deployment 없이 어떻게 배포를 하는지에 대해서 이해를 하면 Deployment 를 이해할 수 있다.

 

다음과 같은 Pod와 RC가 있다고 하자

 

애플리케이션이 업데이트되서 새로운 버전으로 컨테이너를 굽고 이 컨테이너를 배포하는 시나리오에 대해서 알아보자. 여러가지 배포 전략이 있겠지만, 많이 사용하는 블루/그린 배포와 롤링 업데이트 방식 두가지 방법에 대해서 설명한다.

 

1)블루/그린 배포

블루/그린 배포 방식은 블루(예전)버전으로 서비스 하고 있던 시스템을 그린(새로운)버전을 배포한 후, 트래픽을 블루에서 그린으로 한번에 돌리는 방식이다.

여러가지 방법이 있지만 가장 손쉬운 방법으로는 새로운 RC을 만들어서 새로운 템플릿으로 Pod를 생성한 후에, Pod 생성이 끝나면, 서비스를 새로운 Pod로 옮기는 방식이다.

 

후에, 배포가 완료되고 문제가 없으면 예전 버전의 RC 와 Pod를 지워준다.

 

2)롤링 업그레이드

롤링 업그레이드 방식은 Pod를 하나씩 업그레이드 해가는 방식이다.

이렇게 배포를 하려면 먼저 새로운 RC를 만든후에, 기존 RC에서 replica 수를 하나 줄이고, 새로운 RC에는 replica 수를 하나만 준다.

 

라벨을 같은 이름으로 해주면 서비스는 자연히 새로운 RC에 의해 생성된 Pod를 서비스에 포함 시킨다.

다음으로 기존 RC의 replica를 하나 더 줄이고, 새로운 RC의  replica를 하나 더 늘린다.

 

그러면 기존 버전의 Pod가 하나더 서비스에서 빠지게 되고 새로운 버전의 Pod가 서비스에 추가된다.

마찬가지 작업을 반복하게 되면, 아래 그림과 같이 예전 버전의 Pod가 모두 빠지고 새 버전의 Pod만 서비스 되게 된다.

 

만약에 배포가 잘못되었을 경우에는 기존 RC의 replica 수를 원래대로 올리고, 새버전의 replicat 수를 0으로 만들어서 예전 버전의 Pod로 롤백이 가능하다.

이 과정은 kubectl rolling-update라는 명령으로 RC 단위로 컨트롤이 가능하지만, 그래도 여전히 작업이 필요하고, 배포 과정을 모니터링 해야 한다. 그리고 가장 문제는 kubectl rolling-update 명령은 클라이언트에서 실행 하는 명령으로, 명령어 실행중에 클라이언트의 연결이 끊어 지면 배포작업이 비정상적으로 끊어질 수 있는 문제가 있다.

그리고 마지막으로, 롤백과정 역시 수동 컨트롤이 필요할 수 있다.

그래서 이러한 과정을 자동화하고 추상화한 개념을 Deployment라고 보면 된다.

Deployment는 Pod 배포를 위해서 RC를 생성하고 관리하는 역할을 하며, 특히 롤백을 위한 기존 버전의 RC 관리등 여러가지 기능을 포괄적으로 포함하고 있다.

 

 

API Gateway
  > 규모와 상관없이 REST(상태비저장) 및 WebSocket(상태저장) API를 생성, 게시, 유지하고 모니터링 및 보안하기 위한 AWS 서비스입니다

 . 상태저장(Statful) : 서버가 클라이언트와의 통신 상태(state)를 계속 추적하며 이 상태 정보를 서비스 제공에 이용
 . 상태비저장(Statless) : 클라이언트로부터 새로 도착한 명령문(request)에만 의존하여 서비스를 제공


  * API란 :  Application Program Interface
    > 라이브러리에 접근하기 위한 규칙들을 정의한 것
       운영체제와 응용프로그램 사이의 통신에 사용되는 언어나 메세지 형식

 

  * REST API
   >  HTTP 통신 프로토콜을 이용해서 요청과 응답메세지를 주고 받는 것
      Resource에 대해 GET,POST뿐만 아니라 PUT,DELETE 요청이 있고,
      HTTP가 원래 stateless한 통신이기때문에, 헤더에 토큰을 설정해서 인증을 받음.
      HTTP 통신을 기반으로 하기때문에 HTTP요청을 보낼 수 있는 모든 언어 및 환경에서 가능

    - POST를 통해 해당 URI를 요청하면 리소스를 생성합니다.
    - GET를 통해 해당 리소스를 조회합니다.
    - PUT를 통해 해당 리소스를 수정합니다.
    - DELETE를 통해 리소스를 삭제 합니다.

 

  * URI(Uniform Resource Identifier) : 인터넷에 있는 자원을 나타내는 유일한 주소

 

  * REST : Representational State Transfer
    > 웹의 장점을 최대한 활용할 수 있는 아키텍쳐

 

AWS 백업/복구 아키텍쳐
 > Snapshot 활용한 백업 및 복구
 > Snapshot 백업본을 S3에 저장 시 3개의 AZ에 저장, 원격지 소산 구현

 

AWS DBMS 전환 지원 서비스
 - AWS SCT(Schema Conversion Tool)
  . 소스 데이터베이스의 스키마를 전환 대상 Amazon RDS instance와 호환되는 형식으로 자동 변환 가능
 - AWS DMS(Database Migration Service)
  . 동종 DBMS간 Migration, 이기종 DBMS간 Migration 지원

 

DNS 서버
  - Name Server(Router53)을 미사용 시 LG CNS 운영팀의 
     Name Server 와 연동이 될 수 있도록 Endpoint를 CNAME 등록한다
  - Public IP인 경우, A Record 등록을 통해서 한다 
  - LG*Net 내부 DNS를 Master DNS로 설정


  * CNAME (Canonical Name) : 하나의 도메인에 다른 이름을 부여하는 방식. 도메인 이름의 또 다른 이름.alias ?

 

  * A Record : Domain name에 하나의 IP 가 있음을 의미. 
                   하나의 도메인(서비나 루트 포함)에 해당하는 IP주소의 값을 가지고 있음.

     NAME              TYPE     VALUE

     --------------------------------------------------
     bar.example.com   CNAME    foo.example.com
     foo.example.com   A    192.0.2.23

 

   인트라넷 또는 VPC 내부에서 Web 서비스 접속 시 내부 Web ELB 를 경유 하도록 DNS 설정
      - LG*Net 외부 DNS -> 외부 Web ELB 도메인 네임 CNAME 등록
      - LG*Net 내부 DNS -> 내부 Web ELB 도메인 네임 CNAME 등록

 

EC2 인스턴스의 EBS Volume에 대한 Snapshot 백업
 - Volume 수준의 Snapshot 생성
 - 첫번째 Snapshot은 전체볼륨에 대한 복사본,
   이후 Snapshot은 마지막 Snapshot이후 변경된 디바이스의 블록만 저장하는 증분 백업
 - S3에 백업 저장 시 3개의 AZ에 저장(소산)

 

EC2 인스턴스의 EBS Volume에 대한 Snapshot 복구
 절차1:백업받은 Snapshot에서 Volume을 생성
 절차2: Instance에서 기존 Volume의 umount
 절차3: Instance에서 기존 Volume의 할당된 내역 제거
 절차4: 신규 생성된 Volume을 Instance에 할당
 절차5: 신규 Volume을 Instance에서 mount

 

EFS는 AZ 바깥에 위치함

 

NAT G/W : AZ 당 1개씩 구성
   : 윈도우 업데이트 와 S3등 AWS Public 서비스 사용 목적

 

On-Premise와 AWS간 migration 전환
 - Z-Converter나 CloudEndure 사용
 1> Migration Manager 서버 URL 접속 (On-Premise 내부망에 구축)
 2> On-Premise 운영서버에 Agent 설치
 3> Cloud 데이터센터에 인스턴스 생성 후 Agent 설ㅊ
 4> Migration 마법사를 통한 Migration 수행
 5> Cloud 데이터센터에서 On-Premise  내부망으로 migration 가능(탈 Cloud 전략)

 

PROD와 DEV/QA분리는 SandBox 이용

 

RDS의 제약사항 확인 필요
 . 파라미터 그룹을 통해서만 파라미터 조정이 가능.
 . On-Premise환경과는 달리 변경할 수 없는 파라미터가 존재함.

 

Security

Security Group 제약사항 : SG당 Max 허용 Rule 60개 , stateful
     > Allow만 설정가능, Statful이므로, outbound rule과 상관없이 inbound rule에 따름.

 

* ACL당 규칙목록은 inbound/outbound가 각각 최대 20개까지 지정 가능, stateless
  > 상태 비저장이라 inbound rule과 outbound rule이 각각 적용됨
  > Allow 와 deny설정 가능, default는 모두 deny

 

* VPC당 최대 ACL갯수는 200개

 

* Network ACL의 특징

  • VPC의 Network ACL은 Subnet 단위로 적용
  • 직접 생성한 Network ACL 정책은 All Deny 상태로 사용자가 정책을 추가하지 않고 해당 Network ACL로 교체하면 Subnet의 모든 통신이 두절됨
  • 동일한 Network ACL을 여러 Subnet에 적용하는 것은 가능하나 한번에 한개의 Network ACL만 Subnet에 연결할 수 있음
  • Network ACL 규칙 목록은 번호가 낮은 것부터 우선으로 적용
  • Network ACL은 Stateless

 

서버 접근제어 : Bastion Host 사용


UTM
 - Host based UTM (Agent 방식)
 - 관문형 UTM
   > 인스턴스의 N/W bandwidth 제한이 있음: 서비스의 부하집중으로 인한 N/W 성능 저하

 

VPC Endpoint : S3, dynamoDB,kinesiss,ecs 등 public service 연동시 권장

 

VPC 개발 / QA 환경

  - 운영환경과 개발/QA 환경은 VPC를 분리하여 구성
  - 운영환경과 동일 VPC 내에 Subnet분리하여 개발/QA 환경을
    구성 시 운영팀과 협의


VPC Flow logs 
 - Flow log사용을 위해 아래 두가지 설정
 > VPC Flow log를 위한 CloudWatch의 log group 생성
 > 생성한 log group에 log stream을 사용할 수 있는 IAM role 권한 지정

표준 아키텍처상의 VPC flow log
 - Flow logs가 VPC내의 cloudWatch에 저장 => logging VPC의 CloudWatch에 다시 저장(중복저장) : 감사에 활용

 

VPC 간 통신은 인트라넷을 경유하도록 구성
  -  VPC Peering : Routing 복잡성을 고려하여 5개 미만 일 경우 사용
  - Transit gateway 사용을 권장
     (DX연결 필요 시 Direct Connect Gateway 을 추가구성) 
    ※ 현) Transit gateway가 Direct Connect Gateway기능 미 지원

 

VPN (Site to Site: DX 미구성)
 - Customer Gateway 구성(VPN 연동할 장비 IP)
 - Virtual Private Gateway 구성
 - VPN 연결 생성

 

WAF - 운영팀에 관리 및 관제가 가능한 한 제품으로 선정하여 구성


WAS session Store Subnet
(WAS Auto Scaling)
 > 일반적인 cache와 다르게 session store를 통해서 읽고 쓰는 형태
   세션이 죽어도 세션 데이터가 session store에 남아있음
 > Cache의 경우 세션이 끝날경우 session 정보도 끝남

 

용어정리 사이트 : https://brunch.co.kr/@topasvga/391

AWS 고가용성 구조

 

+ Recent posts