다음을 통해 공유


Azure 애플리케이션 아키텍처 기본 사항

클라우드 호스팅 워크로드용으로 설계된 애플리케이션은 솔루션의 비즈니스 요구 사항을 해결하고 클라우드 네이티브 구성 요소 및 기능을 통합합니다. 잘 설계된 클라우드 애플리케이션은 안정성, 보안, 비용, 운영 및 성능 고려 사항을 해결합니다. 이러한 고려 사항은 비즈니스 요구 사항 및 클라우드 호스팅 플랫폼의 특정 특성 및 제공된 기능에 맞게 조정됩니다.

클라우드 워크로드용 애플리케이션을 디자인할 때는 마이크로 서비스와 같은 특정 애플리케이션 스타일이 필요하지 않습니다. 그러나 클라우드 호스팅은 기본적으로 다양한 애플리케이션 & 데이터 플랫폼 옵션, 크기 조정 기능, 보안 제어 및 메시징 옵션을 제공하지 않는 솔루션을 호스팅하는 것보다 많은 애플리케이션 디자인 패턴을 더 쉽게 만듭니다. 이를 위해 클라우드 워크로드는 설계에 따라 더 작고 분산된 서비스로 분해되는 애플리케이션의 이점을 누릴 수 있습니다. 이러한 서비스는 API를 통해 또는 비동기 메시징 또는 이벤트를 사용하여 통신합니다. 애플리케이션은 수평적으로 확장되며 필요에 따라 새 인스턴스를 추가합니다.

클라우드의 애플리케이션 호스팅 플랫폼, 메시징 기능 및 분해된 서비스를 활용하는 애플리케이션에는 분산 시스템에 공통적인 문제가 적용됩니다. 애플리케이션 상태가 분산됩니다. 작업은 병렬 및 비동기적으로 수행됩니다. 애플리케이션은 오류가 발생할 때 복원력이 있어야 합니다. 악의적인 행위자가 지속적으로 애플리케이션을 대상으로 합니다. 배포는 자동화되고 예측 가능해야 합니다. 모니터링 및 원격 분석은 시스템에 대한 인사이트를 얻는 데 중요합니다.

일반적인 온-프레미스 디자인

  • 일체형 및 함께 배치된 기능과 데이터
  • 예측 가능한 확장성 또는 과대 프로비전을 위해 설계됨
  • 관계형 데이터베이스
  • 동기화된 처리
  • 오류를 방지하기 위한 디자인(MTBF)
  • IT 함수를 통해 프로비전된 리소스
  • 눈송이 및 펫 서버

일반적인 클라우드 디자인

  • 분해 및 분산된 기능 및 데이터
  • 탄력적 확장을 위해 설계됨
  • Polyglot 지속성(다양한 저장기술의 혼합)
  • 비동기 처리
  • 오작동을 견딜 수 있도록 설계(평균 고장 간격, MTBF) 및 고장 설계(평균 수리 시간, MTTR)
  • 필요에 따라 코드로 인프라를 통해 프로비전된 리소스
  • 변경할 수 없는 대체 가능한 인프라

Azure용 애플리케이션 디자인

애플리케이션은 클라우드 호스팅을 특별히 활용하고 전략적 절충 결정을 내릴 수 있도록 클라우드 설계자가 설계해야 합니다. Azure는 아키텍트가 우수한 설계를 달성하고 개발 팀의 구현을 안내하는 데 도움이 되는 리소스를 제공합니다. 워크로드 및 애플리케이션 디자인을 달성하려면 설계자는 다음을 수행해야 합니다.

Azure는 클라우드용으로 특별히 설계되지 않은 애플리케이션을 호스트하고 다시 호스트하는 데 사용할 수 있습니다. 워크로드 애플리케이션은 클라우드 기능을 활용하도록 조정될 수 있지만 고정 리소스 및 규모에 맞게 설계된 애플리케이션을 다시 호스팅하는 것은 클라우드 네이티브 배포로 간주되지 않습니다.

조직 클라우드 채택 표준에 맞게 조정

애플리케이션은 조직의 표준 및 거버넌스에 따라 달라질 수 있는 워크로드의 일부입니다. 모든 규모 및 클라우드 완성도의 조직은 Azure 클라우드 채택 프레임워크를 사용하여 Azure 전체의 채택 전략, 준비 상태, 혁신, 관리 & 거버넌스 및 보안을 공식화할 수 있습니다. 이 접근 방법의 일부로, 워크로드 전반에 걸쳐 일관된 접근 방식을 표준화하고, Azure 랜딩 존을 사용하는 것입니다. Azure 랜딩 존은 조직 전체 거버넌스의 혼합을 제공하는 동시에 워크로드 팀과 설계자가 리소스에 대한 액세스를 민주화하여 지역화된 비즈니스 목표를 달성할 수 있도록 합니다. 애플리케이션을 설계하는 설계자로서 매크로 환경과 애플리케이션 랜딩 존과 같이 워크로드가 작동할 것이라는 기대를 이해하는 것이 중요합니다.

조직의 Azure 채택 전략은 아키텍처 스타일 선택에 영향을 주지 않아야 하지만 기술 선택 또는 보안 경계에 제약이 있을 수 있습니다.

Azure Well-Architected Framework에 따라 디자인

모든 워크로드는 다양한 관점을 통해 설계 및 구현 과정을 평가할 수 있습니다. Azure는 워크로드 설계자가 5가지 주요 아키텍처 핵심 요소에 걸쳐 원칙을 설계하기 위한 결정을 평가하고 조정하는 데 도움이 되는 Azure Well-Architected Framework를 제공합니다.

일반적으로 이러한 원칙을 따르고 이러한 아키텍처 핵심 요소 간의 장단 관계를 평가하면 비즈니스 요구 사항을 충족하고 Azure에서 실행하기 위해 최적화된 내구성, 유지 관리 가능, 보안 비용을 충분히 충족하는 디자인이 생성됩니다. 이러한 결정은 아키텍처 스타일 선택에 영향을 미치고 특정 워크로드의 요구 사항과 관련하여 기술 선택 또는 보안 경계에 제약 조건을 적용해야 합니다.

팀 또는 조직에는 지속 가능성 및 윤리와 같은 워크로드를 평가할 수 있는 다른 디자인 원칙이 있을 수 있습니다.

일반적인 아키텍처 스타일 이해

애플리케이션이 존재할 조직 환경에 대한 이해가 있고 Azure Well-Architected Framework에서 양질의 아키텍처 설계를 위한 일반적인 기초를 갖췄다면, 일반적으로 첫 번째로 결정해야 할 것은 어떤 종류 아키텍처를 구축할 것인지입니다. 마이크로 서비스 아키텍처, 보다 전통적인 N 계층 애플리케이션 또는 빅 데이터 솔루션일 수 있습니다. 이러한 스타일은 차이점 결과에 적합한 고유한 아키텍처 스타일입니다. 아키텍처 스타일을 평가하는 동안 상태 관리를 처리하기 위해 데이터 저장소 모델도 선택합니다. 이러한 결정에는 이점과 과제가 있습니다.

다양한 아키텍처 스타일데이터 저장소 모델을 평가합니다.

Azure Well-Architected Framework의 워크로드

Well-Architected Framework에는 Azure Well-Architected Framework 워크로드, 고유한 워크로드 분류 또는 유형에 관한 섹션이 포함되어 있습니다. 이 섹션에서는 중요 업무용, 인공 지능 및 기계 학습또는 saaS(software as a Service) 워크로드를 문서를 찾을 수 있습니다. 이러한 워크로드 관련 문서에서는 Well-Architected Framework의 5가지 핵심 핵심 요소를 사용하여 특정 도메인에 적용합니다. 애플리케이션이 이러한 문서화된 패턴 중 하나에 부합하는 워크로드의 일부인 경우 애플리케이션 플랫폼, 데이터 플랫폼, 네트워킹 등과 같은 일반적인 디자인 영역에서 워크로드별 디자인 원칙 및 권장 사항 집합에 따라 디자인에 접근하는 데 도움이 되는 각 지침을 검토합니다. 일부 워크로드 유형은 특정 아키텍처 스타일 또는 데이터 저장소 모델을 선택하면 도움이 될 수 있습니다.

모범 사례

클라우드 애플리케이션 문서의 모범 사례를 검토하여 API 디자인, 자동 크기 조정, 데이터 분할, 캐싱 등 다양한 디자인 고려 사항에 대해 알아봅니다. 이를 검토하고 애플리케이션에 적합한 모범 사례를 적용합니다.

디자인 패턴을 사용하여 일반적인 문제를 해결하고 전략적 장단점 도입

애플리케이션에는 고유한 비즈니스 요구 사항, 목표 및 성공 측정값이 있습니다. 설계자는 이러한 기능 및 비기능적 요구 사항을 함께 작동하는 개별 활동으로 분해하여 사용자와 사용자가 만족하는 솔루션을 달성합니다. 이러한 활동은 종종 소프트웨어 업계에서 사용되는 패턴을 확립할 만큼 일반적입니다. 이러한 소프트웨어 디자인 패턴은 알려진 장단분에 대한 특정 문제를 해결하는 것으로 입증된 처리 또는 데이터 스토리지에 적용되는 명명되고 반복 가능한 접근 방식입니다.

Azure의 클라우드 디자인 패턴 카탈로그는 분산 시스템에서 발생하는 특정 문제를 해결합니다.

정보에 입각한 기술 선택

빌드하는 아키텍처의 유형과 사용할 것으로 예상되는 디자인 패턴을 결정하면 아키텍처의 주요 기술 요소를 선택할 수 있습니다. 다음과 같은 기술 선택이 중요합니다.

  • 컴퓨팅 애플리케이션이 실행되는 컴퓨팅 리소스(애플리케이션 플랫폼)에 대한 호스팅 모델을 나타냅니다. 자세한 내용은 컴퓨팅 서비스 선택을 참조하세요.

    • 또한 Azure는 Azure 컨테이너 서비스 선택 및Azure 하이브리드 옵션 같은 일부 특정 애플리케이션 플랫폼에 대한 전문 지침을 제공합니다.
  • 데이터 저장소에는 데이터베이스뿐만 아니라 파일, 캐시, 로그 및 애플리케이션이 저장해야 하는 기타 모든 항목도 포함됩니다. 자세한 내용은 Azure에서 데이터 저장소 선택스토리지 옵션 검토를 확인하세요.

  • 메시징 기술을 사용하면 시스템 구성 요소 간에 비동기 메시지를 사용할 수 있습니다. 자세한 내용은 메시징 서비스을 참조하세요.

  • AI(인공 지능) 기술은 기존 애플리케이션 코드에서 구현하기 위해 계산적으로 복잡한 문제를 해결합니다. 이러한 선택을 안내하려면, Azure AI 서비스 기술 선택을 참조하세요.

그 과정에서 다른 기술을 선택할 수도 있지만, 이러한 네 가지 요소(컴퓨팅, 데이터, 메시징 및 AI)는 대부분의 클라우드 애플리케이션의 중심이며 디자인의 여러 측면을 결정합니다.

참조 아키텍처 평가

Azure 아키텍처 센터에는 솔루션 아이디어, 예제 워크로드 및 참조 아키텍처가 있습니다. 이러한 문서에는 일반적으로 Azure Well-Architected Framework에 맞게 조정된 일반적인 구성 요소 및 고려 사항 목록이 포함됩니다. 이러한 문서 중 일부는 GitHub에서 호스트되는 배포 가능한 솔루션을 포함합니다. 이러한 시나리오가 정확히 여러분이 구축 중인 것과 같지는 않겠지만, 특정 요구 사항에 따라 지침을 조정할 때 유용한 출발점이 될 수 있습니다.

Azure 아키텍처 센터에서 아키텍처의 카탈로그를 살펴보세요.

서비스별 가이드 검토

핵심 기술을 선택하고 참조 아키텍처를 참조한 후에는 아키텍처의 서비스와 관련된 설명서 및 지침에 액세스하는 것이 중요합니다. 서비스별 지침에 다음 리소스를 사용합니다.

다른 클라우드에서 오시나요?

다른 클라우드 공급자에서 애플리케이션을 디자인하는 데 익숙한 경우 동일한 많은 기본 사항이 적용될 수 있습니다. 예를 들어 아키텍처 스타일과 클라우드 디자인 패턴은 개념적으로 클라우드에 구애받지 않습니다. 관련 서비스 매핑 및 아키텍처 가이드 문서를 탐색합니다.

  • AWS 전문가를 위한 Azure
  • Google Cloud 전문가를 위한 Azure

다음 단계