.NET 프로젝트 용 Elastic Beanstalk와 CloudFormation의 차이점은 무엇입니까?
저는 .NET MVC 애플리케이션을 개발했으며 AWS를 사용하고 Visual Studio Toolkit을 통해 배포하기 시작했습니다. 툴킷의 Elastic Beanstalk 옵션을 사용하여 애플리케이션을 성공적으로 배포했습니다.
툴킷을 사용하여 .NET 앱을 AWS에 배포하기위한 자습서를 살펴보면서 Elastic Beanstalk 및 CloudFormation 둘 다로 배포하기위한 자습서가 있음을 확인했습니다 . 이 둘의 차이점은 무엇입니까?
제가 알 수 있듯이 둘 다 기본적으로 동일한 작업을 수행하는 것 같습니다. 애플리케이션을 AWS 클라우드에 쉽게 배포 할 수 있도록합니다 (EC2 인스턴스 설정,로드 밸런서, 자동 확장 등). 나는 둘 다 읽어 보려고했지만, 나에게 똑같이 들리는 많은 유행어 외에는 아무것도 얻을 수없는 것 같다. 이 정확한 질문에 답해야하는 FAQ 를 AWS 웹 사이트에서 찾았 지만 실제로 이해가되지 않습니다.
둘 중 하나를 사용해야합니까? 양자 모두?
그들은 실제로 꽤 다릅니다. Elastic Beanstalk는 개발자의 삶을 더 쉽게 만들어줍니다. CloudFormation은 시스템 엔지니어의 삶을보다 쉽게 만들어줍니다.
Elastic Beanstalk는 기본 EC2 인스턴스, Elastic Load Balancer, Auto Scaling 그룹 등을 추상화하는 AWS의 IaaS 서비스 위에있는 PaaS와 유사한 계층입니다. 따라서 모든 것을 처리하고 싶지 않은 개발자가 훨씬 쉽게 처리 할 수 있습니다. 애플리케이션을 AWS에 신속하게 배포 할 수 있습니다. Heroku, EngineYard, Google App Engine 등과 같은 다른 PaaS 제품과 매우 유사합니다. Elastic Beanstalk를 사용하면 기본 마법의 작동 방식을 이해할 필요가 없습니다.
반면에 CloudFormation은 자동으로 아무것도 수행하지 않습니다. 배포에 필요한 모든 리소스를 거대한 JSON 파일로 정의하는 단순한 방법입니다. 따라서 CloudFormation 템플릿은 실제로 두 개의 ElasticBeanstalk 환경 (프로덕션 및 스테이징), 두 개의 ElasticCache 클러스터, DyanmoDB 테이블, 그리고 Route53에서 적절한 DNS를 생성 할 수 있습니다. 그런 다음이 템플릿을 AWS에 업로드하고 자리를 비우고 45 분 후에 모든 것이 준비되고 대기합니다. 일반 텍스트 JSON 파일이기 때문에 내 애플리케이션 배포를 버전 화하는 좋은 방법을 제공하는 소스 제어에 붙일 수 있습니다. 또한 다른 지역에 신속하게 배포 할 수있는 반복 가능한 "좋은 것으로 알려진"구성이 있는지 확인합니다.
표준 .NET 웹 애플리케이션을 빠르게 배포하기 시작 하려면 Elastic Beanstalk 가 적합한 서비스입니다.
AWS CloudFormation : "템플릿 기반 프로비저닝"
AWS CloudFormation은 개발자와 시스템 관리자가 관련 AWS 리소스 모음을 생성 및 관리하고이를 순서 있고 예측 가능한 방식으로 프로비저닝 및 업데이트 할 수있는 쉬운 방법을 제공합니다.
CloudFormation (CFn)은 기존 AWS API에 대한 경량의 저수준 추상화입니다. 정적 JSON / YAML 템플릿 문서 를 사용하여 AWS API의 CRUD 작업에 해당하는 리소스 세트 (예 : EC2 인스턴스 또는 S3 버킷 )를 선언합니다 .
CloudFormation 스택을 생성하면 CloudFormation은 해당 API를 호출하여 관련 리소스를 생성하고, 스택을 삭제하면 CloudFormation이 해당 API를 호출하여 삭제합니다. 대부분 (전부는 아님) AWS API 가 지원됩니다.
AWS Elastic Beanstalk : "간편한 웹 앱"
AWS Elastic Beanstalk는 Apache, Nginx, Passenger와 같은 친숙한 서버에서 Java , .NET , PHP , Node.js , Python , Ruby , Go 및 Docker로 개발 된 웹 애플리케이션 및 서비스를 배포하고 확장하기위한 사용하기 쉬운 서비스입니다. 및 IIS.
코드를 업로드하기 만하면 Elastic Beanstalk가 용량 프로비저닝,로드 밸런싱, 자동 확장에서 애플리케이션 상태 모니터링에 이르기까지 배포를 자동으로 처리합니다.
Elastic Beanstalk (EB)는 Heroku 와 범위가 비슷한 웹 애플리케이션 호스팅을위한 상위 수준의 관리 형 '서비스로서의 플랫폼'(PaaS)입니다 . 낮은 수준의 AWS 리소스를 직접 처리하는 대신 EB는 웹 인터페이스를 사용하여 애플리케이션 환경 을 생성하고, 애플리케이션에서 사용 하는 플랫폼을 선택 하고, 소스 번들을 생성 및 업로드하고 , 나머지는 EB가 처리 하는 완전 관리 형 플랫폼 을 제공 합니다 .
EB를 사용하면 애플리케이션 환경 을 모니터링 하고 애플리케이션의 새 버전을 배포 하기 위한 모든 종류의 기본 제공 기능을 얻을 수 있습니다 .
내부적으로 EB는 CloudFormation을 사용하여 애플리케이션의 다양한 AWS 리소스를 생성하고 관리합니다. 애플리케이션과 함께 배포 된 EB 구성 파일에 CloudFormation 리소스 를 추가하여 기본 EB 환경을 사용자 지정하고 확장 할 수 있습니다 .
결론
애플리케이션이 Elastic Beanstalk의 지원되는 플랫폼 중 하나를 사용하는 표준 웹 계층 애플리케이션이고 애플리케이션에 대해 관리하기 쉽고 확장 성이 높은 호스팅을 원하는 경우 Elastic Beanstalk를 사용 하십시오 .
만약 너라면:
- 애플리케이션의 모든 AWS 리소스를 직접 관리하고 싶습니다.
- 인스턴스 프로비저닝 또는 배포 프로세스를 관리하거나 크게 사용자 지정하려는 경우
- Elastic Beanstalk에서 지원하지 않는 애플리케이션 플랫폼을 사용해야합니다. 또는
- 더 높은 수준의 Elastic Beanstalk 기능을 원하거나 필요로하지 않습니다.
그런 다음 CloudFormation을 직접 사용 하고 Elastic Beanstalk의 추가 된 구성 계층을 피하십시오.
Cloud Formation is a service that lets you deploy AWS services. You create a template file that describes which services you want. When you deploy that template, Cloud Formation creates the resources for you as a "package". All the resources you defined in your template are started and terminated together. Examples of types of resources that can be created with Cloud Formation are: S3, EC2 instances, AutoScaling, DynamoDb, etc. For EC2, Cloud Formation also gives you the ability to make use of "cfn-init" scripts; which can be used in conjunction with the template to boot strap your instances.
Elastic Beanstalk uses Cloud Formation templates and scipts to: 1. Create a Load Balancer and Auto Scaling Group, 2. Copy your code to S3, 3. Bootstrap an Ec2 instance to Download the code from S3 and deploy it.
Cloud Formation is not as easy to use as EB, but it is much more powerful, because you can create resources other than EC2 instances, control how the cfn-init script, and etc.
There are other differences worth noting. Elastic beanstalk is designed as a container for a single app. I've a set of several websites and services but found it very difficult to deploy multiple websites with beanstalk and was advised, after several attempts, by AWS help to use cloud formation in this situation as it has the extra flexibility. Theres a really helpful article on bootstrapping AWS cloud formation and updating a running site here thats much clearer than the AWS pages. Still trying to work out if we can deploy from VS straight to the cloud formation template stored on S3 and get it to auto update like beanstalk...
Elastic Beanstalk는 업로드 한 코드를 기반으로 용량 프로비저닝,로드 밸런싱, 자동 확장에서 애플리케이션 상태 모니터링에 이르기까지 배포를 자동으로 처리합니다. 여기서 CloudFormation은 JSON 스크립트를 통해 전체 클라우드 환경을 배포하도록 설계된 자동화 된 프로비저닝 엔진입니다.
Elastic beanstalk는 업로드 한 코드를 기반으로 용량 프로비저닝,로드 밸런싱, 자동 확장에서 애플리케이션 상태 모니터링에 이르기까지 코드 배포를 자동으로 처리합니다. 반면 cloudFormation은 JSON을 통해 전체 클라우드 환경을 배포하도록 설계된 자동화 된 엔진입니다. 스크립트.
'program story' 카테고리의 다른 글
NSFetchRequest 인스턴스에 유형을 적용하는 방법은 무엇입니까? (0) | 2020.08.20 |
---|---|
Maven :이 프로젝트의 패키징은 빌드 아티팩트에 파일을 할당하지 않았습니다. (0) | 2020.08.20 |
JSON 문자열에서 C # 클래스 파일을 자동 생성하는 방법 (0) | 2020.08.20 |
presentModalViewController : Animated는 ios6에서 더 이상 사용되지 않습니다. (0) | 2020.08.20 |
Laravel에서 이것을 수행하는 방법, 하위 쿼리 (0) | 2020.08.20 |