

# 웹 호스팅에 AWS 사용 시 주요 고려 사항
<a name="key-considerations-when-using-aws-for-web-hosting"></a>

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

## 물리적 네트워크 어플라이언스의 제거
<a name="no-more-physical-network-appliances"></a>

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

## 어디에나 있는 방화벽
<a name="firewalls-everywhere"></a>

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

## 여러 데이터 센터의 가용성 고려
<a name="consider-the-availability-of-multiple-data-centers"></a>

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

## 한시적인 자동증감 호스트
<a name="treat-hosts-as-ephemeral-and-dynamic"></a>

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

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

## 컨테이너 및 서버리스 고려
<a name="consider-a-serverless-architecture"></a>

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

## 자동화된 배포 고려
<a name="consider-automated-deployment"></a>
+ [https://aws.amazon.com/lightsail/](https://aws.amazon.com/lightsail/)은 애플리케이션 또는 웹 사이트를 구축하는 데 필요한 모든 것을 제공하는 사용하기 쉬운 가상 프라이빗 서버(VPS)로, 매월 경제적인 요금 플랜도 지원합니다. Lightsail은 단순한 워크로드 및 빠른 배포는 물론, AWS에서 시작할 때 매우 적합합니다. 처음에 작은 규모로 시작했다가 비즈니스 성장에 따라 확장할 수 있도록 설계되었습니다. 
+ [https://aws.amazon.com/elasticbeanstalk/](https://aws.amazon.com/elasticbeanstalk/)는 Java, .NET, PHP, Node.js, Python, Ruby, Go 및 Docker를 사용하여 개발된 웹 애플리케이션 및 서비스를 Apache, NGINX, Passenger, IIS와 같은 친숙한 서버에 간편하게 배포하고 확장할 수 있는 서비스입니다. 코드를 업로드하기만 하면 Elastic Beanstalk가 배포, 용량 프로비저닝, 로드 밸런싱, 자동 크기 조정, 애플리케이션 상태 모니터링을 자동으로 처리합니다. 이뿐만 아니라 애플리케이션을 실행하는 데 필요한 AWS 리소스를 완벽하게 제어할 수 있으며 언제든지 기본 리소스에 액세스할 수 있습니다.
+ [https://aws.amazon.com/apprunner/](https://aws.amazon.com/apprunner/)는 개발자가 사전 인프라 경험 없이도 컨테이너화된 웹 애플리케이션 및 API를 대규모로 빠르게 배포할 수 있도록 지원하는 완전관리형 서비스입니다. 소스 코드 또는 컨테이너 이미지로 시작해보세요. App Runner는 웹 애플리케이션을 자동으로 구축 및 배포하고 암호화를 통해 트래픽의 로드 밸런싱을 수행합니다. 또한, App Runner는 트래픽 요구 사항을 충족하도록 자동으로 확장 또는 축소됩니다.
+ [https://aws.amazon.com/amplify/](https://aws.amazon.com/amplify/)는 모바일 및 프런트 엔드 웹 개발자가 AWS에서 제공하는 확장 가능한 풀 스택 애플리케이션을 구축하도록 지원하는 함께 혹은 단독으로 사용 가능한 도구 및 서비스 집합입니다. Amplify를 사용하면 몇 분 만에 앱 백엔드를 구성하고 앱을 연결하며, 클릭 몇 번 만으로 정적 웹 앱을 배포하고, AWS Management Console 외부 앱 콘텐츠를 쉽게 관리할 수 있습니다.