Serverless 또는 Kubernetes on AWS

선택 지원

Amazon Web Services(AWS)는 고객이 비즈니스 요구 사항에 맞는 최신 애플리케이션을 구축하기 위한 전략을 선택할 수 있는 유연성을 제공합니다. AWS에서 최신 앱을 구축하기 위한 전략을 개발하는 고객은 종종 AWS Lambda 및 컨테이너를 사용하는 Serverless with AWS 또는 Kubernetes on AWS라는 두 가지 높은 수준의 접근 방식 중 하나를 사용합니다.

AWS는 워크로드에 적합한 컴퓨팅 및 지원 서비스(예: 데이터베이스, 메시징 및 오케스트레이션)에 대한 액세스를 제공하도록 설계되었습니다. AWS는 AWS Lambda와 같은 이벤트 기반 컴퓨팅 서비스와 AWS FargateAWS App Runner와 같은 서버리스 컨테이너 옵션을 사용하여 서버리스 애플리케이션을 생성할 수 있는 기능을 제공합니다. AWS는 Amazon Elastic Container Service(Amazon ECS) 및 Kubernetes 옵션(Amazon Elastic Kubernetes Service(Amazon EKS), Red Hat OpenShift Service on AWS(ROSA)), 그리고 Amazon Elastic Compute Cloud(Amazon EC2)의 자체 관리형 Kubernetes로 컨테이너 애플리케이션을 구축하는 방법을 제공합니다.

다음 콘텐츠는 환경에 가장 적합한 접근 방식을 선택하고 AWS에서 접근 방식 구현을 시작하는 데 도움이 됩니다.

최신 애플리케이션의 이점

모듈식 아키텍처 패턴으로 구축하고 관리형 서비스 운영 모델을 활용합니다.

환경적으로 지속 가능하고 확장 가능하며 복원력이 뛰어난 애플리케이션을 구축합니다.

더 빠르게 혁신하고, 위험을 낮추고, 출시를 가속화하며, 총 소유 비용(TCO)을 줄입니다.

명확하게 정의된 다음 단계를 통해 클라우드에서 프로덕션 워크로드 배포를 시작할 준비를 하세요.

1단계: 기준 결정

최신 애플리케이션은 모듈식 아키텍처 패턴으로 구축되며 서버리스 운영 모델을 활용하여 보다 지속 가능하고 확장 가능하며 탄력적인 애플리케이션을 구축할 수 있습니다. 최신 애플리케이션을 구축하면 더 빠르게 혁신하고, 위험을 낮추고, 출시를 가속화하며, TCO를 줄일 수 있습니다. 새로운 최신 애플리케이션을 구축하거나 기존 애플리케이션을 현대화할 때 아키텍트와 개발자는 수많은 빌딩 블록을 사용할 수 있으며, 가장 중요한 것 중 하나는 컴퓨팅 서비스를 선택하는 것입니다. AWS는 워크로드에 적합한 컴퓨팅 서비스에 액세스할 수 있도록 설계되었습니다. 고객이 어떤 최신 앱 개발 전략을 지원하든 요구 사항을 충족하는 것이 합리적입니다.

구현해야 할 최신 앱 개발 전략을 결정하기 전에 워크로드 규모에 따라 기준을 결정해야 합니다.

  • 조직은 운영 부담을 AWS로 이전하는 관리형 서비스를 표준화하여 운영 비용을 줄이기 위해 클라우드를 선택할 수 있습니다. 추상화 수준을 높이면 개발자와 운영자들이 무차별적인 태스크가 아닌 각자 고유의 가치 창출 활동에 집중할 수 있습니다.

    AWS Serverless로 구축하면 더 높은 수준의 추상화가 적용된 서비스를 사용하여 인프라 유지 관리에 드는 운영 오버헤드를 AWS로 이전합니다.

    AWS는 또한 Kubernetes를 위한 여러 가지 관리형 제품을 제공합니다. 이러한 제품은 조직이 관리해야 하는 기술 계층에 따라 다릅니다. 또한 AWS는 구성 속도를 높이기 위해 애드온 및 EKS Blueprints와 같은 액셀러레이터도 제공합니다.

  • 많은 AWS 고객이 폭넓게 지원되는 오픈 소스 기술을 기반으로 표준화합니다. 오픈 소스를 통해 조직은 적절한 기술을 찾고 종속에 따른 위험을 피할 수 있습니다. 오픈 소스 에코시스템에서 잘못된 선택을 하면 추상화와 자체 개발된 통합에 갇힐 수 있습니다. 또한 다양한 오픈 소스 구성 요소가 함께 작동하도록 만드는 책임은 선택한 조직에게 있기도 합니다. 조직에서 오픈 소스 통합을 유지하는 데 너무 많은 시간을 소비하는 것은 흔한 일입니다.

    참고:

    • 이러한 투자를 할 때는 커뮤니티 출처와 기업 또는 재단의 지원을 고려하세요. 이러한 프로젝트에 대한 투자는 단순히 금전적인 것이 아닙니다. 또한 사용되는 기술에 대한 팀 교육 및 교육에도 투자해야 합니다. 
    • 이러한 구성 요소 및 관련 통합에는 일반적으로 업데이트가 필요하기 때문에 이러한 통합 유지 관리 작업으로 인해 기술적인 문제가 발생할 수도 있습니다.
    • 오픈 소스 구현에 대한 아이디어가 필요하면 AWS 오픈 소스 블로그를 방문하세요.
  • 최신 앱 개발 전략을 선택할 때 전략이 다양한 워크로드 패턴을 수용하는 것이 중요합니다. 워크로드 패턴을 이해하면 아키텍처를 더 쉽게 선택할 수 있습니다. 예를 들어 웹 애플리케이션, API 기반 마이크로서비스, 이벤트 기반 애플리케이션, 스트리밍 및 메시징, 데이터 파이프라인, IT 자동화 등이 있습니다. 일부 워크로드는 특정 컴퓨팅 환경에서 다른 유형보다 성능이 더 우수하거나 비용 효율적입니다.

    AWS Serverless로 구축할 때 App Runner 및 AWS Batch와 같은 서비스는 주어진 워크로드 유형의 요구 사항을 즉시 지원하도록 설계되었습니다. 이 접근 방식을 사용하는 워크로드는 유연성이 떨어지기는 하지만 구축이 더 쉽고 성능이 향상되거나 비용 효율성이 높아집니다.

    Kubernetes는 조직에 필요한 경우 클라우드 및 온프레미스 환경 전반에서 일관성을 제공합니다.

  • 워크로드는 고립되어 있지 않습니다. 워크로드는 데이터베이스, 메시징, 스트리밍, 오케스트레이션 및 기타 서비스와 같은 기술을 통해 지원됩니다. 효과적인 최신 앱 개발 전략을 위해서는 이러한 서비스와의 통합이 필요합니다. 관리형 통합은 기본 인프라 관리만큼이나 운영 오버헤드를 단순화합니다.

    AWS Serverless 옵션은 AWS 에코시스템에 긴밀하게 통합되어 있습니다. AWS Lambda는 200개 이상의 다른 서비스에서 이벤트를 구독할 수 있습니다. 예를 들어 AWS Lambda 확장 기능을 사용하면 모니터링, 관찰성, 보안 및 거버넌스 도구와 통합할 수 있습니다. Lambda는 실행 환경에서 지정된 함수를 호출하여 함수 코드가 실행되는 안전하고 격리된 런타임을 제공합니다. 

    Kubernetes용 AWS 관리 제품은 관리 제품과 통합됩니다. Kubernetes 자체는 다양한 파트너 에코시스템을 보유하고 있으며, 수많은 다른 기술과의 통합을 제공합니다.

  • 많은 고객이 아이디어를 검증하기 위해 실험을 생성해야 합니다. 이러한 프로토타입은 새로운 애플리케이션을 위한 아이디어일 수도 있고, 실패할 경우 버려질 수도 있습니다. 아이디어를 신속하게 작성, 배포 및 검증할 수 있는 환경을 제공하는 기능은 건강한 환경에 필수적입니다. 이러한 환경은 최신 앱 개발 전략을 개발할 때 간과되는 경우가 많지만 회사 내 혁신 역량이 이에 따라 달라질 수 있습니다. 팀이 신속하게 구축, 테스트 및 반복하는 데 사용할 수 있는 서비스를 사용할 수 있도록 하는 것은 새로운 비즈니스 기회를 발견하는 데 매우 중요합니다.

  • 많은 고객이 애플리케이션을 다른 환경에서 실행할 수 있고 쉽게 마이그레이션하거나 이전할 수 있기를 원합니다. 이들은 클라우드 공급업체를 이전하거나 온프레미스와 클라우드 모두에서 애플리케이션을 실행할 수 있는 선택권을 유지할 수 있기를 원합니다. 여기에는 널리 사용되는 언어 프레임워크 및 개발 시나리오를 지원해야 하는 필요성이 포함되는 경우가 많습니다. 예를 들어 Java 개발자는 Spring 또는 Python을 사용하고 데이터 엔지니어는 PyTorch를 사용하기를 원할 수 있습니다. 최신 개발 앱 접근 방식을 선택하는 것만으로는 충분하지 않습니다. 애플리케이션 이식성을 달성하려면 모범 사례와 아키텍처가 필요합니다. 소프트웨어 아키텍처에서 역량을 구축하고 컴퓨팅 서비스 간에 차별화된 비즈니스 로직을 보다 쉽게 이식할 수 있는 패키징을 구축하는 것이 좋습니다.

    일부 기술을 사용하여 구축된 애플리케이션은 일부 컴퓨팅 서비스에서 다른 기술보다 더 효과적으로 실행될 수 있습니다. 일반적으로 컨테이너 서비스는 아키텍처 변경이 필요한 Lambda보다 레거시 애플리케이션에 더 적합한 마이그레이션 대상입니다.

  • 애플리케이션과 자동화 이식성 간에는 분명한 차이가 있어야 합니다. 대부분의 경우 AWS Serverless 또는 AWS Kubernetes 중에서 선택하는 것은 실제로 애플리케이션의 이식 가능 여부와 거의 관련이 없습니다. 대신 인프라 팀과 DevOps 팀이 사용하는 도구가 핵심 요소입니다. AWS에서 Kubernetes 접근 방식을 선택하는 고객은 인프라 및 배포 도구의 이식성을 찾는 경우가 많습니다.

  • 최신 앱 개발에 서버리스 또는 컨테이너 기반 접근 방식을 취할지 결정할 때 조직의 기술은 주요 요소입니다. 서버리스와 컨테이너 모두 DevOps 및 사이트 신뢰성 엔지니어(SRE) 팀에 어느 정도 투자해야 합니다. 애플리케이션을 배포하기 위한 자동화된 파이프라인을 구축하는 것은 대부분의 최신 애플리케이션에서 흔히 볼 수 있습니다.

    일부 선택은 관리 수준을 높입니다. 예를 들어, 일부 조직은 Kubernetes 클러스터를 관리하기 위해 강력한 SRE 팀에 투자하기 때문에 Kubernetes 구현을 실행하고 관리할 수 있는 기술과 리소스를 보유하고 있습니다. 이러한 팀은 잦은 클러스터 업그레이드를 처리합니다(예: Kubernetes는 매년 세 번의 주요 릴리스를 제공하며 이전 버전은 더 이상 사용되지 않음).

    소규모 스타트업은 여러 역할을 수행하는 인력으로 구성된 소규모 IT 직원을 보유할 수 있는 반면 대기업은 수백 개의 프로덕션 워크로드를 한 번에 지원할 수 있으므로 조직 규모가 핵심 요소입니다.

  • 아키텍처 결정에는 상충되는 부분이 따르는데, 그 중 하나는 종종 비용입니다. 관련 구성 요소의 동적 특성으로 인해 최신 애플리케이션의 비용을 추정하는 데 어려움을 겪는 것이 일반적입니다. 고정된 서버 세트의 비용은 예측하기가 더 쉽지만 비즈니스 가치를 추가하지 않는 경우에도 해당 서버에 대한 비용을 지불해야 합니다.

    두 접근 방식 모두 워크로드의 비용 목표를 충족할 수 있는 다양한 수단을 제공합니다. 높은 수준의 접근 방식을 선택할 때는 리소스뿐만 아니라 해당 전략을 수립하고 유지하는 데 드는 노력도 고려해야 합니다. AWS 요금 계산기는 특정 워크로드의 비용을 이해하는 데 유용할 수 있습니다.

  • 보안 및 규정 준수 요구 사항을 충족하는 것은 모든 워크로드의 초석입니다. 두 전략 모두에 걸친 AWS 서비스를 통해 엄격한 규정 준수 요구 사항을 충족할 수 있습니다.
     
    AWS Serverless로 구축하면 AWS Identity and Access Management(IAM)와의 통합을 활용하여 액세스, 네이티브 AWS 네트워킹 구조 및 AWS 거버넌스 도구의 지원을 제어할 수 있습니다.
     
    Kubernetes on AWS는 Kubernetes 및 AWS 보안 모델에 대한 이해가 필요하며 보안 정책 간의 매핑이 필요할 수 있습니다. Amazon EKS와 같은 관리형 AWS 제품은 EKS에서 애플리케이션을 안전하게 실행할 수 있는 액셀러레이터를 제공합니다.
  • AWS ServerlessKubernetes on AWS를 모두 사용하여 구축하면 성능이 뛰어나고 확장 가능하며 탄력적인 워크로드를 구축할 수 있습니다. 필요한 기술 요구 사항을 충족할 수 있습니다. 최고 수준의 추상화를 갖춘 서비스는 AWS 가용 영역 전반의 배치와 환경 확장을 관리하여 성능과 복원력을 개선합니다. 추상화 수준이 낮을수록 워크로드 확장 방식을 더 잘 제어할 수 있습니다. 상충되는 주요한 부분은 비용과 관리 복잡성입니다.

2단계: 관리할 금액 결정

현대화의 주요 이점 중 하나는 운영 책임을 전환하여 더 많은 부가가치 및 혁신 주도 활동을 수행할 리소스를 확보할 수 있다는 것입니다. 통합, 확장, 보안 구성, 프로비저닝, 패치 등을 관리하면서 코드를 구축하고 실행할 수 있는 Amazon EC2부터 관리하는 것이 애플리케이션 코드뿐인 AWS Lambda와 같은 서버리스 기능에 이르기까지 다양한 현대화 레벨에 걸쳐 다양한 공유 책임 옵션이 있습니다.

3단계: 사용 사례 결정

Serverless with AWS 또는 Kubernetes on AWS라는 기본 전략 내에서 워크로드별로 가장 적절한 컴퓨팅 옵션을 평가하는 것이 좋습니다.

Serverless on AWS 전략의 사용 사례로는 문서 처리 시스템 구축 또는 웹 사이트 워크로드 처리가 있을 수 있습니다. 이 전략 내에서 주로 이벤트 기반 문서 처리 워크로드를 구축하기 위해 AWS Lambda를 선택하고, 트랜잭션 웹 사이트에 필요한 짧은 지연 시간과 확장성을 위해 AWS AppRunner를 선택할 수 있습니다.

한편, 컨테이너와 Kubernetes on AWS의 사용 사례는 기존 애플리케이션을 마이크로서비스로 이전하는 점진적인 접근 방식의 일부일 수 있습니다. 컨테이너에 대한 노력을 최소화하면서 많은 레거시 미들웨어 애플리케이션을 수정할 수 있습니다.

참고: 일부 조직에서는 워크로드 또는 개발자 선택을 위해 여러 옵션 또는 워크로드 패턴을 지원합니다.

다음 테이블에는 컴퓨팅 서비스를 선택할 때 고려할 수 있는 여러 가지 다른 사용 사례가 나와 있습니다.

4단계: 워크로드 비교 및 올바른 선택

AWS는 Amazon ECS, AWS Fargate가 있는 서버리스 컨테이너, AWS App Runner와 같은 다양한 컨테이너 옵션과 Amazon EKS, ROSA 및 Amazon EC2의 자체 관리형 Kubernetes와 같은 다양한 Kubernetes 옵션을 제공합니다.

다음 비교 테이블은 워크로드 요구 사항을 기반으로 접근 방식을 결정하는 데 도움이 될 수 있습니다. 두 접근 방식의 요소 또는 절충안을 선택하고 다른 접근 방식을 사용하는 다른 팀이 있을 수 있습니다. 대기업의 각 부서들은 전략이 서로 다른 경우가 많습니다.

 

  Serverless with AWS Kubernetes on AWS
워크로드 특정 워크로드에 최적화된 특정 서비스를 통해 다양한 워크로드 패턴을 지원합니다. AWS Lambda는 비동기 워크로드에 사용되고 AWS Fargate는 동기 워크로드에 사용될 수 있습니다. 클라우드 또는 온프레미스 데이터 센터 전반에서 일관된 배포 모델이 선호되는 광범위한 워크로드 패턴을 지원합니다.
아키텍처 특성 성능, 확장성, 신뢰성 및 비용에 대한 최적화를 제공하는 특정 서비스를 통해 대부분의 아키텍처와 패턴을 지원합니다. 기술 스택 전반의 일관성이 선호되는 대부분의 아키텍처를 지원합니다. 일부 수준의 최적화가 가능하지만 더 많은 통합 및 관리 작업이 필요합니다.
통합 AWS Serverless는 여러 관리형 서비스와의 통합을 제공합니다. AWS Lambda와 같은 일부 옵션은 200개 이상의 서비스를 구독하고 관리형 방식으로 이벤트를 수신할 수 있습니다.  많은 파트너가 AWS 통합을 제공합니다. Kubernetes용 AWS 관리 제품은 AWS 서비스와 통합됩니다. Kubernetes의 파트너 에코시스템은 풍부하며 다른 오픈소스 기술과의 통합을 제공합니다. 많은 기술 파트너가 Kubernetes 통합을 검증하기 위한 첫 번째 선택으로 EKS를 사용합니다.
프로토타이핑 AWS Serverless는 고객이 코드를 빠르게 작성하고 배포하고 변경할 수 있도록 최적화되어 있으므로 사전에 많은 선택을 하지 않아도 되는 빠른 프로토타이핑 제작 작업을 수행하는 데 유용한 옵션입니다. Kubernetes 전략을 사용하는 고객은 다른 환경과 마찬가지로 프로토타이핑 전용 특수 클러스터를 설정하고 유지 관리해야 하는 경우가 많습니다.
오버헤드 AWS Serverless는 서버, 네트워킹 및 통합에 대한 관리 작업을 최소화하기만 하면 되는 관리형 서비스를 최대한 활용할 수 있도록 설계되었습니다. AWS는 Kubernetes에 대한 몇 가지 패턴을 제공합니다. 이는 AWS가 추가 기능 및 EKS Blueprint와 같은 액셀러레이터를 제공하지만 여러 기술 계층(예: 클러스터 및 클라우드 네트워킹) 또는 Kubernetes 및 AWS 보안 역할을 관리하는 것을 의미할 수 있습니다.
에코시스템 AWS는 AWS 서비스를 기반으로 솔루션을 구축하고 솔루션 및 통합을 제공하는 대규모 파트너 에코시스템을 보유하고 있습니다. AWS는 다양한 공간에서 다양한 오픈 소스 기술을 기반으로 구축됩니다. Kubernetes는 모든 클라우드에서 주요 지원과 광범위한 커뮤니티 지원을 제공하는 대규모 에코시스템입니다.  CNCF 환경은 광대한 에코시스템의 한 예입니다. AWS는 고객이 이러한 인기 있는 도구 중 일부를 채택하는 데 도움이 되는 추가 기능과 청사진을 제공합니다.
애플리케이션 이식성 애플리케이션 아키텍처(관리형 서비스를 사용하는 애플리케이션의 경우)는 비즈니스 로직을 Lambda, App Mesh 또는 ECS에서 다른 컴퓨팅 환경으로 쉽게 이식할 수 있는 방식으로 설계할 수 있습니다. Kubernetes는 대부분의 클라우드와 온프레미스에서 사용할 수 있으며 워크로드는 대부분 이식 가능합니다. 코드의 서비스 메시(예: Istio 또는 KNative와 같은 프로그래밍 모델)에 의존하는 특정 Kubernetes 패턴은 애플리케이션에 Kubernetes가 필요하며 Kubernetes 이외의 다른 항목에 이식할 수 없음을 의미합니다. 일부 기능은 특정 버전만 사용하도록 할 수 있습니다. 다양한 Linux 빌드나 특정 하드웨어(ARM 또는 AMD)를 지원하려면 이미지를 다시 빌드해야 할 수 있습니다.
자동화 개방형 기술을 기반으로 한 특징을 사용하여 AWS 전용 자동화를 지원. AWS CloudFormation, AWS Serverless Application Model(AWS SAM), 및 일부 AWS Cloud Development Kit(AWS CDK) 라이브러리가 그 예입니다. 고객은 Terraform과 같은 오픈 소스 옵션을 사용할 수 있습니다. 많은 AWS 고객이 Jenkins와 같은 오픈 소스 DevOps 도구를 사용합니다.   Kubernetes에서 전략을 수립하는 고객은 일반적으로 Kubernetes를 자동화하는 도구를 사용합니다. 클러스터 생성을 위한 자동화가 필요하며, AWS API, AWS CloudFormation과 같은 AWS 도구 또는 CDK를 사용할 수 있습니다. 많은 고객이 Terraform과 같은 기술을 사용합니다. AWS EKS Blueprints는 클러스터 및 추가 기능 생성을 위한 Terraform 및 CDK의 액셀러레이터의 한 예입니다. 많은 고객이 Flux 또는 ArgoCD와 같은 GitOps 도구를 채택하여 Kubernetes API와 함께 배포하고 AWS 컨트롤러 또는 Crossplane과 같은 도구를 사용하여 네이티브 클라우드 리소스를 프로비저닝하기 시작했습니다.
조직 규모 및 기술 일부 기업은 기본 클라우드로 표준화하고 먼저 AWS Serverless를 선택합니다. SRE 팀을 구성할 자금/리소스가 있을 수 있지만 AWS를 통해 민첩성을 최적화하고 운영 비용을 줄이는 방법을 선택하기 때문입니다. 중대형 기업(또는 다른 클라우드 또는 온프레미스 데이터 센터에서 실행되는 제품을 판매하는 소프트웨어 공급업체)은 종종 Kubernetes 우선 접근 방식을 사용합니다. 성공한 고객은 일반적으로 많은 클러스터를 관리, 실행 및 유지 관리하는 인프라 및 SRE 팀에 훨씬 더 많은 투자를 합니다.
확장성/복원력 AWS Lambda 고객은 함수가 호출되는 동안에만 비용을 지불합니다. Lambda가 적합하지 않은 경우 Fargate 또는 ECS를 사용할 수 있습니다. 하드웨어 아키텍처 및 컴퓨팅 요금 옵션(예: AWS EC2 스팟 인스턴스)에 대한 추가 선택을 제공합니다. Kubernetes on AWS 접근 방식은 성능, 확장성 및 복원력 요구 사항을 충족하도록 잘 설계될 수 있습니다. EKS는 또한 AWS EC2 Spot 및 Graviton과 같은 옵션을 사용할 수 있는 기능을 제공합니다.
보안 AWS Serverless 접근 방식은 AWS 보안, 네트워킹 및 관행을 활용합니다. Kubernetes 접근 방식을 사용하려면 Kubernetes 보안과 AWS 보안을 모두 이해하고, Kubernetes 보안 정책을 AWS 정책에 매핑하고, 컨테이너 이미지와 런타임을 보호하고, 타사 컨테이너 도구를 검증하는 등의 추가 운영 오버헤드가 필요합니다.  

새로운 최신 애플리케이션을 구축하거나 기존 애플리케이션을 현대화할 때 아키텍트와 개발자는 수많은 빌딩 블록을 사용할 수 있으며, 가장 중요한 것 중 하나는 컴퓨팅 서비스를 선택하는 것입니다.

조직에서 구축하고 배포하는 워크로드 및 애플리케이션의 유형을 아는 것은 최신 앱 개발 전략을 선택하는 데 있어 중요한 요소입니다. 각 워크로드에는 서로 다른 특성과 요구 사항이 있습니다. 예를 들어 문서 처리 워크로드의 지연 시간 및 가동 시간 요구 사항은 트랜잭션 웹 사이트와 매우 다릅니다.

5단계: 일반적인 위험 피하기

사용자 환경의 표준화 이해

여러 워크로드 패턴을 실행하는 많은 조직에서는 효과적으로 지원하고 실행할 수 있는 일련의 패턴을 표준화하고자 합니다. 일부 대규모 조직에서는 컴퓨팅 옵션을 표준화하고 대부분의 워크로드를 실행할 기본 플랫폼을 선택하려고 시도하며 필요한 경우 예외를 제공합니다.

표준화는 일관성을 유지하고 조직에서 고용해야 하는 전문 기술을 갖춘 인력의 수를 최소화하는 데 도움이 될 수 있습니다. 이러한 옵션이 선호되는 컴퓨팅 옵션이 될 수 있으며, 다른 옵션은 기본 옵션이 작동하지 않을 때만 고려됩니다. 표준 선택은 일련의 워크로드를 효과적으로 지원하지만 다른 솔루션에 비해 어려움을 겪는 경우가 많습니다. 따라서 일부 조직에서는 워크로드 또는 개발자 선택을 위해 여러 옵션 또는 워크로드 패턴을 지원합니다.

환경에서 통합 이해

일부 조직에서는 오픈 소스 통합을 유지하는 데 필요한 시간보다 더 많은 시간을 할애하는 것이 일반적입니다.

이러한 투자를 할 때 커뮤니티 소스 및/또는 기업 또는 재단의 지원을 고려하는 것이 좋습니다. 이러한 프로젝트에 대한 투자는 재정적일 뿐만 아니라 이러한 구성 요소 및 관련 통합을 일반적으로 업데이트해야 하므로 지식 자본 및 잠재적인 기술 부채에 대한 투자이기도 합니다. 자세한 내용은 AWS 오픈 소스 블로그를 참조하세요.

아키텍처 특성 이해

광범위한 아키텍처를 지원하는 기능이 중요합니다. AWS에서 시스템을 구축할 때 내리는 결정의 장단점을 이해하는 데 도움이 되는 가이드로 AWS Well-Architected Framework를 활용하는 것이 좋습니다. 또한 프레임워크를 사용하면 클라우드에서 안정적이고 확장 가능하며 안전하고 효율적이며 비용 효율적인 시스템을 설계하고 운영하기 위한 아키텍처 모범 사례를 배울 수 있습니다.

6단계: 접근 방식 결정

조직 및 워크로드 규모, 패턴 및 비즈니스 요구 사항에 따라 두 접근 방식의 특정 요소를 선택하거나 팀마다 다른 접근 방식을 사용해야 할 수 있습니다. 팀이 서로 다른 전략을 사용하는 것은 드문 일이 아닙니다.

AWS Serverless with AWS

  • AWS Lambda, AWS App Runner, Amazon ECSAWS Fargate와 같은 AWS 관리형 서비스 및 도구를 첫 번째 선택으로 사용하세요. 
  • 프로비저닝, DevOps, 인프라 자동화, 보안, 네트워킹 및 관찰성/운영을 비롯한 AWS 관련 분야 개발에 투자하세요.
  • 생산성을 높이고 운영 부담을 최소화하세요.

Kubernetes on AWS

  • Kubernetes를 기본 컴퓨팅 플랫폼 인터페이스로 사용하세요.
  • 여러 Kubernetes 클러스터와 이에 대한 워크로드 및 도구, GitOps와 같은 고급 패턴을 실행하고 관리하는 것과 관련된 원칙을 채택하세요.
  • 다양한 에코시스템 및 파트너 도구와 통합하세요.
  • Kubernetes 고객은 특정 사용 사례에 대해 관리형 AWS 서비스와 AWS Lambda와 같은 기타 컴퓨팅 옵션을 사용할 수 있습니다.

접근 방식 구현

워크로드에 가장 적합한 접근 방식을 결정했으므로 이제 접근 방식 구현을 시작하는 데 도움이 되는 다음 리소스를 검토하는 것이 좋습니다.

  • Serverless on AWS 개요
    서버리스 우선 전략을 사용하여 애플리케이션 스택 전반에서 민첩성을 높이는 방식으로 최신 애플리케이션을 구축하세요. 이 가이드는 컴퓨팅, 통합, 데이터 스토어를 포함한 3개 계층에 대한 서버리스 서비스를 강조합니다.
    서버리스 웹 애플리케이션 구축
    이 자습서에서는 AWS Lambda, Amazon API Gateway, AWS Amplify, Amazon DynamoDB 및 Amazon Cognito를 사용하여 간단한 서버리스 웹 애플리케이션을 만드는 방법을 알아봅니다.
    서버리스 컴퓨팅을 위한 실무 워크숍
    이 무료 가이드 워크숍에서는 AWS Lambda, AWS Step Functions, Amazon API Gateway, Amazon DynamoDB, Amazon Kinesis 및 Amazon S3와 같은 서비스를 사용하여 서버리스 애플리케이션 및 마이크로서비스를 구축하는 기본 사항을 소개합니다.
    AWS Fargate: 컨테이너에 적합한 서버리스 컴퓨팅
    AWS Fargate는 사용량에 따라 지불하는 서버리스 컴퓨팅 엔진으로, 서버를 관리할 필요 없이 애플리케이션 구축에 집중할 수 있도록 지원합니다. AWS Fargate는 Amazon Elastic Container Service(Amazon ECS) 및 Amazon Elastic Kubernetes Service(Amazon EKS) 모두와 호환됩니다.
    AWS App Runner 개요
    AWS App Runner를 사용하면 사전 인프라 또는 컨테이너 경험이 없어도 컨테이너화된 웹 애플리케이션 및 API 서비스를 구축, 배포 및 실행할 수 있습니다.
  • Kubernetes 접근 방식 선택
    Amazon Elastic Kubernetes Service(EKS) 관리형 Kubernetes 서비스를 사용하여 AWS 클라우드 및 온프레미스 데이터 센터에서 Kubernetes를 실행하기 위한 옵션을 검토하세요.
    Amazon EKS 시작하기
    유용한 블로그, 비디오 및 세부 자습서에 대한 링크와 함께 Amazon EKS 사용을 시작하기 위한 단계별 가이드를 제공합니다.
    Amazon EKS 워크숍
    Amazon EKS를 최대한 활용하는 방법에 대한 단계별 지침이 포함된 실습 시작하기
    AWS Controllers for Kubernetes(ACK) 소개
    ACK는 Kubernetes에서 AWS 서비스를 직접 관리할 수 있는 도구입니다. ACK를 사용하면 AWS 서비스를 사용하는 확장 가능한 고가용성의 Kubernetes 애플리케이션을 간편하게 구축할 수 있습니다.
    Red Hat OpenShift Service on AWS란?
    ROSA를 사용하여 ROSA API 및 도구를 사용하여 Kubernetes 클러스터를 생성하고 모든 AWS 서비스에 액세스할 수 있습니다.

    모범 사례

    보안

    보안은 Kubernetes 클러스터 및 애플리케이션을 구성하고 유지 관리하는 데 중요한 구성 요소입니다. Amazon EKS는 기본적으로 안전한 관리형 Kubernetes 클러스터를 제공하지만, 개발자가 여전히 안전한 구현을 위해 클러스터의 일부로 실행하는 노드 및 애플리케이션을 확실하게 구성해야 합니다. 자세한 내용은 보안을 위한 Amazon EKS 모범 사례 가이드를 참조하세요.

    호스트 보안

    소프트웨어 취약성 및 의도하지 않은 네트워크 노출에 대해 AWS 워크로드를 지속적으로 스캔하는 자동화된 취약성 관리 서비스인 Amazon Inspector를 사용하세요.

이 페이지의 내용이 도움이 되었나요?