AWS Elastic Beanstalk
AWS Elastic Beanstalk에 대한 소개를 시작하겠습니다. 저는 Amazon Web Services의 EMEA 기술 강사인 Wilson Santana입니다.
이번 동영상에서는 AWS Elastic Beanstalk service에 대한 간략한 소개를 하겠습니다. 또한 솔루션의 구성 요소에 대해서도 논의할 것이며 제품 및 그 이점과 기능에 대한 데모를 해 보려고 합니다.
AWS Elastic Beanstalk은
여러분이 웹 서비스의 개발자라고 상상해 보세요. 실제 서비스와 시스템의 전반적인 관리를 개발하고, 실제 서비스 개발의 모든 것을 실질적으로 관리하는 문제에 대해 고민해야 할 겁니다. 즉 클라우드로 애플리케이션을 신속하게 가져올 수 있는 방법이 궁금해질 겁니다. 시스템 개발을 시작할 수 있도록, 어떻게 하면 신속하게 전체 환경을 준비할 수 있을까요? 그에 대한 답은 바로 AWS Elastic Beanstalk입니다.
그렇다면 AWS Elastic Beanstalk은 실제로 어떻게 작동할까요? 시스템의 이점과 특징은 무엇일까요?
- 서비스로서 플랫폼(PaaS)이고 그렇기 때문에 전체 인프라가 갖춰져 있고 전체 플랫폼이 알아서 생성됩니다. 따라서 시스템에 필요에 따라 코드를 넣기만 하면 됩니다. 애플리케이션을 빠르게 배포할 수도 있습니다. 이전에 특정 언어로 작성한 코드는 보유하고 있는 플랫폼에 간단하게 배포할 수 있습니다.
- 또한 관리의 복잡성도 줄어듭니다. 전체 시스템 관리에 대해 걱정할 필요가 없지만 원한다면 완전히 제어하는 것도 가능합니다. 개발 중인 시스템의 제어를 통해 인스턴스 유형을 선택하거나 필요에 따라 더 나은 데이터베이스를 선택할 수도 있습니다.
- 또한 필요에 따라 Auto Scaling을 설정하고 조정할 수 있습니다.
- 그 밖에도 애플리케이션을 업데이트하고 서버 로그 파일에 액세스하고 애플리케이션의 필요에 따라 로드 밸런서에서 HTTPS를 활성화할 수도 있습니다.
- 광범위한 플랫폼도 지원합니다. Packer Builder에서부터 Single Container, Multicontainer 또는 Preconfigured Docker까지를 망라합니다.
- Go, Java on Tomcat 또는 SE, Windows의 .NET, Node.js, PHP, Python, Ruby를 지원합니다.
따라서 기술과 웹 서비스 개발 아이디어에 따라 코드를 작성하고 Elastic Beanstalk을 사용하여 필요에 따라 환경을 배포할 수 있습니다.
Elastic Beanstalk은 모든 애플리케이션 서비스 수준, HTTP 서비스, 운영 체제, 언어 번역기 및 호스트를 제공합니다. 그런 다음 코드를 작성하고 배포하고 서비스 요구 사항에 따라 준비한 다음 필요에 따라 애플리케이션을 사용하기만 하면 됩니다. 이를 통해 정말 손쉽게 구현되는 기능을 경험할 수 있습니다.
또한 서비스를 배포하고 업데이트하는 단계는 애플리케이션을 만드는 경우에만 해당됩니다. 그런 다음에 Elastic Beanstalk에 버전을 업로드하고 애플리케이션의 필요에 따라 클라우드에서 필요한 모든 환경을 시작합니다. 그리고 나서 환경을 관리 할 수 있으며 새 버전을 작성하려면 버전을 업데이트하고 배포하기만 하면 됩니다. 관리하기가 어렵지 않습니다. 이 주기를 통해 배포만큼이나 쉽게 애플리케이션을 업데이트할 수 있습니다.
데모
이제 제품 데모를 시작하겠습니다. 이 과정에서 Elastic Beanstalk의 기능과 이점을 설명하겠습니다. (조용한 음악) 웹 서비스를 작성한 실제 사례 시나리오를 생각해 보죠. 예를 들어 Python으로 이 서비스를 생성했고, 모든 코드가 여기에 있다면 애플리케이션이 제대로 압축되어 있는 정말 간단한 코드입니다. 이제 무엇을 해야 할까요? 전 세계 모든 사람들에게 내 웹 서비스가 제대로 제공되고 전 세계 사람들이 사용할 수 있게 하려면 실제로 어떻게 환경을 확보해야 할까요? Elastic Beanstalk을 사용하면 매우 간단합니다. 검색을 시작한 다음 대시 보드로 이동하여 Elastic Beanstalk를 찾는 것이 전부입니다. 됐네요. 새로운 애플리케이션을 만들면 됩니다. 그리고 애플리케이션 이름을 입력합니다. 지금 같은 경우에는 이름을 입력하겠습니다. (내레이터 입력) Beanstalk Demo. 그리고 간단한 설명으로, This is a demo. 지금 알아야 할 단 한 가지는 애플리케이션 환경을 만드는 방법입니다. 이제 무엇을 해야 할까요? 하나의 환경을 지금 생성합니다. 이것은 웹 서버 환경입니다. 필요에 따라 장시간 실행되는 워크로드를 처리해야 하거나, 일정대로 작업을 수행해야 하는 작업 애플리케이션을 실행할 필요가 있는 경우 작업자 환경으로 이동할 수 있습니다. 그러나 이 상황에서 저는 간단한 웹 서버 환경밖에 만들지 않았습니다. 여기로 이동해 웹 서버 환경을 선택하고 필요에 따라 몇 가지 추가 데이터를 입력합니다. 머릿속에서 만들고 싶은 모든 도메인 데이터를 여기에 입력하겠습니다. 하지만 그 값이 자동 생성되도록 비워 두는 방법도 있습니다. 제가 하려는 것이 바로 후자입니다. 설명은, "this is a demo." (내레이터 입력) 몇 가지 옵션이 있는데요. 이미 지원이라고 언급한 언어로 사전 구성된 몇 개의 플랫폼이 있습니다. 그리고 이 경우에는 애플리케이션이 Python으로 생성되었으므로 Python을 선택하려고 합니다. 또한 간단한 애플리케이션을 실행할 수 있는 옵션도 있기 때문에 애플리케이션 없이 지금 당장 계정을 사용하여 Elastic Beanstalk으로 재생하기를 원한다면 전혀 어렵지 않습니다. Elastic Beanstalk를 열고 간단한 애플리케이션을 실행하면 됩니다. 이 경우에는 Python으로 작성된 코드가 있으므로 코드를 업로드한 후 이걸 업로드하겠습니다. 그리고 파일을 선택할 건데요. 제가 갖고 있는 로컬 파일을 선택하죠. 그러나 만약 이 파일을 새로운 URL에서 사용할 수 있다면 여기서 간단히 Public S3 URL을 선택하면 됩니다. 파일을 선택합니다. 여기에 ZIP 형식으로 된 제 파일이 있네요. 그 다음에 그 파일을 업로드합니다. 만약 구성을 수정하고 싶다면 더 많은 옵션들을 간단히 구성해주면 됩니다. 여기 이 영역에서 저비용 요금(무료 티어)을 선택하거나 고가용성 또는 사용자 정의 구성을 선택할 수 있습니다. 이 예제에서는 모두 기본값으로 유지하려고 합니다. 그러나 여기 이 예제에서는 기본값을 생성한 후에 얼마나 유연하게 사용할 수 있는지 확인할 수 있습니다. 자, 이제 환경을 만들어 보겠습니다. 현재 시스템이 수행하고 있는 작업은 전체 환경 또는 필요한 인스턴스 또는 네트워킹 환경을 만드는 것입니다. 애플리케이션에서 데이터베이스가 필요한 경우, 만일 애플리케이션에서 고가용성으로 배포하기 위해 별도의 추가 작업이 필요하면 모든 단계가 수행되고 난 뒤 여기 이 로그에 표시됩니다. 애플리케이션의 크기에 따라 5분에서 10분 정도 소요되는 작업이며, 때로는 더 걸릴 수도 있습니다. 속도를 높이기 위해 이미 사용할 수 있는 코드와 정확하게 동일한 코드로 환경을 만들었습니다. 모든 준비가 끝나면 결과물은 보시는 바와 같습니다. 결과물은 보시는 바와 같습니다. 무엇을 생성했는지 보여 주는 이와 같은 대시보드가 생기고 새로운 버전을 업로드하고 배포할 수 있게 될 것입니다. 하지만 가장 중요한 건 이 URL입니다. 이 URL은 애플리케이션에 생성된 URL이므로 누구든, 어디에서나 액세스할 수 있습니다. 클릭해 보세요. 코드가 배포되었고 요구 사항에 맞게 생성되었다는 것을 알 수 있습니다. 더불어 제어가 가능하기 때문에 명령줄 인터페이스와 스크립트를 사용하여 수행할 수도 있습니다. 이를 통해 생성된 환경이 코드에 따라 제 요구 사항을 만족하고 있다는 것이 명백해집니다. 그리고 시스템의 아키텍처에 대해 미리 걱정할 필요가 없습니다. 따라서 개발자가 쉽게 코드를 작성하고 실제 시나리오에서 사용할 수 있게 만들 수 있습니다.
결론
이 프레젠테이션이 도움이 됐기를 바랍니다. 저는 Wilson Santana였습니다. 시청해 주셔서 감사합니다.