웹 호스팅에 AWS 사용 시 주요 고려 사항 - AWS 클라우드에서의 웹 애플리케이션 호스팅

웹 호스팅에 AWS 사용 시 주요 고려 사항

AWS 클라우드와 기존 웹 애플리케이션 호스팅 모델 간에는 몇 가지 주요 차이점이 있습니다. 이전 섹션에서는 클라우드에 웹 애플리케이션을 배포할 때 고려해야 할 여러 주요 영역을 살펴봤습니다. 이 섹션에서는 애플리케이션을 클라우드로 가져올 때 고려해야 할 몇 가지 주요 아키텍처 변화에 대해 설명합니다.

물리적 네트워크 어플라이언스의 제거

AWS에서는 물리적 네트워크 어플라이언스를 배포할 수 없습니다. 예를 들어 AWS 애플리케이션의 방화벽, 라우터, 로드 밸런서는 더 이상 물리적 디바이스에 상주할 수 없고 소프트웨어 솔루션으로 대체해야 합니다. 로드 밸런싱 또는 VPN 연결 설정 등 다양한 엔터프라이즈급 소프트웨어 솔루션이 있습니다. 이는 AWS 클라우드에서 실행할 수 있는 기능에 대한 제한은 아니지만, 현재 이러한 디바이스를 사용하는 경우 애플리케이션 아키텍처를 변경해야 합니다.

어디에나 있는 방화벽

과거에는 단순한 완충 영역(DMZ)을 구축해 호스트 간에 커뮤니케이션을 개통했지만, AWS는 모든 호스트가 차단되는 보다 안전한 모델을 적용합니다. AWS 배포를 계획하는 단계 중 하나는 호스트 간 트래픽 분석입니다. 이 분석은 정확히 어떤 포트를 열어야 하는지에 대한 결정을 안내합니다. 아키텍처의 각 호스트 유형에 대한 보안 그룹을 생성할 수 있습니다. 또한 단순한 계층형 보안 모델을 매우 다양하게 생성하여 아키텍처 내 호스트 간의 액세스를 최소화할 수 있습니다. Amazon VPC 내에서 네트워크 액세스 제어 목록을 사용하면 서브넷 수준에서 네트워크를 잠글 수 있습니다.

여러 데이터 센터의 가용성 고려

AWS 리전 내의 가용 영역을 여러 데이터 센터로 생각하십시오. 서로 다른 가용 영역에 있는 EC2 인스턴스는 논리적으로 또한 물리적으로 분리되어 있으며, 고가용성 및 안정성을 확보하기 위해 여러 데이터 센터에 애플리케이션을 배포할 수 있는 사용하기 쉬운 모델을 제공합니다. 리전별 서비스로서의 Amazon VPC를 사용하면 가용 영역을 활용하는 동시에 모든 리소스를 동일한 논리적 네트워크에 유지할 수 있습니다.

한시적인 자동증감 호스트

AWS 애플리케이션을 설계하는 방식에서 가장 중요한 변화는 Amazon EC2 호스트가 자동으로 증감될 가능성이 있기 때문에 그 수명이 한시적이라는 사실입니다. AWS 클라우드용으로 구축된 애플리케이션은 호스트를 항상 사용할 수 있다고 가정해서는 안 되며 EC2 인스턴스에 장애가 발생할 경우 EC2 인스턴트 스토어의 데이터가 손실된다는 사실을 인식하고 설계해야 합니다.

새 호스트를 불러올 때 호스트의 가용 영역 내의 IP 주소 또는 위치를 가정해서는 안 됩니다. 구성 모델은 유연해야 하며 호스트 부트스트래핑에 대한 접근 방식에서는 클라우드의 동적 특성을 고려해야 합니다. 이러한 기술은 확장성 및 내결함성이 뛰어난 애플리케이션을 구축하고 실행하는 데 중요합니다.

컨테이너 및 서버리스 고려

이 백서는 주로 보다 전통적인 웹 아키텍처에 초점을 맞추고 있습니다. 그러나 컨테이너서버리스 기술로 전환하고 AWS FargateAWS Lambda 같은 서비스를 활용하여 웹 애플리케이션을 현대화하는 것을 고려해 보십시오. 그러면 컴퓨팅 작업을 수행하기 위한 가상 머신 사용을 추상화할 수 있습니다. 서버리스 컴퓨팅을 사용하면 AWS가 용량 프로비저닝 및 패치 적용과 같은 인프라 관리 작업을 처리하므로 보다 민첩한 애플리케이션을 구축하여 더 신속하게 혁신에 대응할 수 있습니다.

자동화된 배포 고려

  • Amazon Lightsail은 애플리케이션 또는 웹 사이트를 구축하는 데 필요한 모든 것을 제공하는 사용하기 쉬운 가상 프라이빗 서버(VPS)로, 매월 경제적인 요금 플랜도 지원합니다. Lightsail은 단순한 워크로드 및 빠른 배포는 물론, AWS에서 시작할 때 매우 적합합니다. 처음에 작은 규모로 시작했다가 비즈니스 성장에 따라 확장할 수 있도록 설계되었습니다.

  • AWS Elastic Beanstalk는 Java, .NET, PHP, Node.js, Python, Ruby, Go 및 Docker를 사용하여 개발된 웹 애플리케이션 및 서비스를 Apache, NGINX, Passenger, IIS와 같은 친숙한 서버에 간편하게 배포하고 확장할 수 있는 서비스입니다. 코드를 업로드하기만 하면 Elastic Beanstalk가 배포, 용량 프로비저닝, 로드 밸런싱, 자동 크기 조정, 애플리케이션 상태 모니터링을 자동으로 처리합니다. 이뿐만 아니라 애플리케이션을 실행하는 데 필요한 AWS 리소스를 완벽하게 제어할 수 있으며 언제든지 기본 리소스에 액세스할 수 있습니다.

  • AWS App Runner는 개발자가 사전 인프라 경험 없이도 컨테이너화된 웹 애플리케이션 및 API를 대규모로 빠르게 배포할 수 있도록 지원하는 완전관리형 서비스입니다. 소스 코드 또는 컨테이너 이미지로 시작해보세요. App Runner는 웹 애플리케이션을 자동으로 구축 및 배포하고 암호화를 통해 트래픽의 로드 밸런싱을 수행합니다. 또한, App Runner는 트래픽 요구 사항을 충족하도록 자동으로 확장 또는 축소됩니다.

  • AWS Amplify는 모바일 및 프런트 엔드 웹 개발자가 AWS에서 제공하는 확장 가능한 풀 스택 애플리케이션을 구축하도록 지원하는 함께 혹은 단독으로 사용 가능한 도구 및 서비스 집합입니다. Amplify를 사용하면 몇 분 만에 앱 백엔드를 구성하고 앱을 연결하며, 클릭 몇 번 만으로 정적 웹 앱을 배포하고, AWS Management Console 외부 앱 콘텐츠를 쉽게 관리할 수 있습니다.