차례:
- 로컬에서 서비스 호스팅
- 충분한 자원을 미리 계획하십시오.
- EC2를 사용하여 전개 환경을 작성할 수 있습니다. 이 자습서에서는이 작업을 수행하는 방법에 대해 설명합니다. 이 접근법의 가장 큰 장점은 더 이상 특정 리소스가있는 로컬 시스템이 필요하지 않기 때문에 AWS 응용 프로그램을 이론적으로 개발할 수 있다는 것입니다.
비디오: AWS Summit 2015- AWS를 통한 게임 운영의 정석(정윤진, 아마존 웹서비스 솔루션스 아키텍트) 2024
AWS가 제공하는 서비스의 수에 관계없이 서비스를 사용하려면 하드웨어가 필요합니다. 클라우드에서 서비스 작업을 할 때 필요한 하드웨어의 양은 AWS 하드웨어가 많은 어려움을 겪기 때문에 최소화됩니다. 로컬에서 서비스 작업을 할 때 AWS가 더 이상 힘든 일을하지 않으므로 추가 하드웨어가 필요합니다. 따라서 AWS 서비스를 호스팅하는 위치에 따라 다른 하드웨어 요구 사항을 고려해야합니다.
로컬에서 서비스 호스팅
AWS 설명서에 숨겨져있는 다양한 서비스에 대한 모든 유용한 정보가 있습니다. 예를 들어, AWS Storage Gateway는 클라우드 기반 스토리지로 사내 구축 형 소프트웨어 어플라이언스 (하드웨어 또는 가상 시스템에서 실행하기에 충분한 운영 체제 기능과 결합 된 애플리케이션)를 연결합니다. 즉, 게이트웨이를 사용하여 응용 프로그램을 필요한 데이터 저장소에 연결합니다. 추가 하드웨어에 투자 할 필요가 없기 때문에 클라우드에서 게이트웨이를 실행하는 것이 좋습니다. 그러나 요구 사항을 살펴보면 AWS Storage Gateway에는 특정 하드웨어, 인스턴스 및 스토리지 요구 사항이 제공된다는 것을 알 수 있습니다. 이해해야 할 중요한 점은 클라우드는 모든 계획 단계에서 고려해야하는 한계를 제시한다는 것입니다.
유연성이 떨어집니다.
- 비즈니스가 중단됩니다.
- 기본 하드웨어 요구 사항이 저렴 해짐에도 불구하고, 여분의 비용을 고려해야합니다. 대부분의 조직에서는 클라우드로 이동하는 데 드는 하드웨어 비용이 완전한 IT 부서를 유지하는 것보다 실질적으로 적다는 것을 알게됩니다. 그러나 당신이 할 때 고려해야 할 다른 사항이 있다는 것을 이해하고 이동해야합니다.
- 클라우드에서 서비스 호스팅
- 서비스를 로컬에서 호스팅 할 때 필요한 모든 인프라를 제공해야하므로 비용이 많이 듭니다.AWS는 로컬에서 서비스를 호스팅하기위한 최소 요구 사항에 대한 지침을 제공합니다.
서비스를 로컬에서 호스팅 할 때 공급 업체가 제공 한 요구 사항을 최소값으로 보는 것이 좋습니다. 서비스를 많이로드 할 계획이 아니라면 이러한 최소값이 일반적으로 작동합니다. 그러나 게이트웨이 성능 최적화 링크를 클릭하면 첫 번째 제안은 게이트웨이에 리소스를 추가하는 것입니다. 너무 많은 용량에 대한 계획은 충분하지 않은 것보다 낫습니다. 그러나 필요한 구성에 가능한 한 가까이 배치하는 것이 항상 재정적으로 도움이됩니다.
충분한 자원을 미리 계획하십시오.
모든 서비스가 지역에서 작동하는 것은 아니지만 많은 서비스가 제공된다는 사실에 놀랄 수 있습니다. 이 문제는 특정 서비스를 어떻게 사용할지, 그리고 사용자가 기꺼이 할 트레이드 오프를 정확하게 정의하는 문제 중 하나입니다. 예를 들어 로컬에서 서비스를 호스팅하는 경우 클라우드에서 동일한 서비스를 호스팅 할 때 제 3 자에게 제공 할 수있는 수준의 연결성을 제공하기가 어려울 수 있습니다.
좋은 개발 환경 정의
AWS에 필요한 리소스를 알고 설정의 기본 사항을 고려한 후에는 개발 환경을 고려해야합니다. 처음 고려해야 할 사항은 언어 중 하나입니다. AWS는 어떤 IDE를 사용하든 상관하지 않습니다 (IDE의 선택에 따라 원격 액세스에 사용할 수있는 기능이 결정되지만). AWS가 액세스하려는 서비스에 대해 원하는 언어를 지원하는지 확인해야합니다. 예를 들어, 다음은 SQS (Simple Queue Service)의 선택 항목입니다.AWS가 사용하려는 언어에 대한 지원을 제공하는지 확인하십시오.
EC2를 사용하여 전개 환경을 작성할 수 있습니다. 이 자습서에서는이 작업을 수행하는 방법에 대해 설명합니다. 이 접근법의 가장 큰 장점은 더 이상 특정 리소스가있는 로컬 시스템이 필요하지 않기 때문에 AWS 응용 프로그램을 이론적으로 개발할 수 있다는 것입니다.
그러나 이러한 접근 방식은 무료가 아니기 때문에 개발 작업을 수행하려는 곳 (어디에서나 문제가되지는 않지만 가정에서는 문제 일 수 있음)에서 안정적인 인터넷 연결이 이루어져야 함을 의미합니다. 클라우드 기반 개발 방식은 AWS 명령 행 인터페이스 (CLI)를 사용합니다.
지역화 된 개발 환경을 사용하는 주된 이유는 조직이 현재 개발 작업을 수행하는 데 의존하는 로컬 리소스와 코드 라이브러리에 대한 액세스 권한을 유지한다는 것입니다.이 옵션은 원격 연결에 의존하지 않으므로 안정성에도 이점이 있습니다. 인터넷 연결이 끊어지면 코드 개발을 계속할 수 있습니다 (단, 연결이 복원되어야 테스트가 가능합니다). 이 옵션을 사용하는 경우 최소한 테스트 목적 및 조직의 방화벽을 통한 AWS 액세스 권한에 대해 추가 대역폭이 필요합니다.
AWS로 작업 할 때 두 가지 옵션만으로 제한되지 않습니다. 예를 들어, 지역 개발 환경을 사용할 수 있지만 코드를 S3에 배치 할 수 있습니다.클라우드 기반 데이터 저장소를 사용하면 여러 위치에 현지화 된 설정을 적용 할 수 있으므로 (로컬 리소스에 대한 액세스 권한을 유지할 수 있음) 클라우드 기반 개발의 이점을 얻을 수 있습니다. 예를 들어, 개발 환경이 구성되어 있어야합니다.
이 튜토리얼은 프로젝트, 소스 제어 및 저장소 사용을 위해 Elastic Beanstalk을 사용하도록 개발 환경을 구성하는 방법을 알려주기 때문에 흥미 롭다. 지역화 된 개발 환경에서와 마찬가지로 인터넷 액세스에 필요한 권한과 데이터 요청의 증가를 처리 할 수있는 충분한 대역폭이 여전히 필요합니다. 실제로 대역폭 요구 사항은 로컬 구성보다 높으며 개발 환경은 원격 리소스와 함께 작동해야합니다.
올바른 개발 환경을 선택하는 것은 쉽지 않습니다. 많은 경우, 선택은 개인의 취향과 조직 요구 사항 중 하나가됩니다. 예를 들어, 민감한 개발 작업을 처리 할 때 클라우드 기반 개발 솔루션을 사용하는 것이 옵션이 아닐 수도 있습니다. 보안 요구가 다른 요구보다 우선 할 수 있습니다.