AWS Elastic Beanstalk에 대한 보안 업데이트 자동 적용


21

나는 초기부터 Heroku의 팬이었습니다. 하지만 AWS Elastic Beanstalk를 사용하면 인스턴스의 특성을보다 강력하게 제어 할 수 있습니다. Heroku에 대해 내가 좋아하는 한 가지는 앱을 배포 할 수 있으며 관리에 대해 걱정할 필요가 없다는 것입니다. 나는 가정 Heroku가 모든 OS 보안 업데이트를 적시에 적용됩니다 보장된다. 내 앱이 안전한지 확인해야합니다.

Beanstalk에 대한 나의 초기 연구에 따르면 인스턴스를 빌드하고 구성했지만 더 수동적 인 관리 프로세스로 이동하는 것으로 나타났습니다. 보안 업데이트는 인스턴스에 자동으로 적용되지 않습니다. 우려되는 두 가지 영역이있는 것 같습니다.

  • 새 AMI 릴리스-새 AMI 릴리스가 출시되면 최신 (아마도 가장 안전한) 버전을 실행하려고하는 것 같습니다. 그러나 내 연구에 따르면 최신 AMI 버전을 보려면 새 설정을 수동으로 시작한 다음 새 버전을 사용할 새 환경을 만들어야합니다 . 인스턴스를 새로운 AMI 릴리스로 회전시키는 더 나은 자동화 방법이 있습니까?
  • 릴리스 사이에는 패키지에 대한 보안 업데이트가 릴리스됩니다. 우리도 그것들을 업그레이드하고 싶어하는 것 같습니다. 내 연구에 따르면 사람들이 때때로 yum 업데이트를 실행하는 명령을 설치하는 것으로 보입니다.. 그러나 사용량에 따라 새 인스턴스가 생성 / 파기되므로 새 인스턴스에 항상 업데이트가있는 것은 아닙니다 (즉, 인스턴스 생성과 첫 번째 yum 업데이트 사이의 시간). 따라서 때때로 패치되지 않은 인스턴스가 있습니다. 또한 새로운 AMI 릴리스가 적용될 때까지 인스턴스가 지속적으로 자체 패치를 수행하게됩니다. 저의 다른 관심사는 아마도 이러한 보안 업데이트가 AMI 릴리스와 같이 Amazon 자체 검토를 거치지 않았기 때문에 앱이 자동으로 업데이트하지 못하게 할 수 있다는 것입니다. Dreamhost는 데비안 업데이트를 리뷰없이 완전히 자동으로 적용했기 때문에 12 시간 동안 중단 된 것을 알고 있습니다. 나는 똑같은 일이 나에게 일어나지 않도록하고 싶습니다.

내 질문은 아마존이 Heroku와 같이 완벽하게 관리되는 PaaS를 제공하는 방법을 제공하는 것입니까? 아니면 AWS Elastic Beanstalk가 실제로 설치 스크립트에 그치지 않고 그 이후에 제공하는 모니터링 및 배포 도구 이외의 다른 스크립트입니까?


1
또한이 답변을 찾고 있지만 업데이트를 처리 해야하는 것처럼 보입니다. readwrite 기사와 관련하여 Elastic Beanstalk는 등급을 PaaS로 만드는가? AWS Elastic Beanstalk는 PaaS가 아니라 "IaaS의 구성 기능"입니다.
Alexander Taubenkorb

답변:


18

우선, Elastic Beanstalk가 생각하는 방식에 PaaS가 아닙니다. 조각으로 나눈다면 꼭두각시 나 요리사와 같은 가상화 된 인스턴스 템플릿과 애플리케이션 배포 자동화를 사용하는 것과 같습니다. 이와 함께 경외의로드 밸런서 서비스 및 클라우드 워치 모니터링에 자동으로 액세스 할 수있어 메트릭을 기반으로 새 애플리케이션 서버를 시작하거나 기존 서버를 종료 할 수 있습니다.

PaaS와 같은 느낌은 주요 판매 포인트는 코드를 가져 와서 클러스터의 모든 응용 프로그램 서버에 복사하는 응용 프로그램 배포 시스템이라는 것입니다.

PaaS에 대한 일부 사람들의 불만 중 하나는 PaaS 공급 업체가 애플리케이션 환경에 대한 결정을 내린다는 것입니다. 이것은 PaaS의 가치 제안과 같습니다. 고객은 애플리케이션 기능에 집중하고 다른 모든 세부 정보는 PaaS 공급 업체에 맡깁니다. 다른 사람이 인프라를 관리하고 시스템 관리를 제공하기 위해 비용을 지불하고 있습니다. 그 간결성을 위해 ec2 위에서 인프라를 실행하는 Heroku의 경우와 마찬가지로 투명한 방식으로 프리미엄을 지불합니다.

Amazon은 실제로 Ec2와 REST API 위에 Elastic Beanstalk를 제공하고 있으며이를 숨기려고 많은 노력을 기울이지 않습니다. 이는 그들이 IaaS를 통해 돈을 벌고 있기 때문이며, EB는 시간과 방법을 고려하여 직접 설정할 수있는 ec2 리소스 그룹의 설정을 조정하고 있기 때문입니다.

이제 AMI의 세부 사항 측면에서 AMI는 EB를 용이하게하기 위해 사용되는 많은 ec2 조각 중 하나입니다. EB AMI에 대한 마법은 없습니다. EB와 함께 작동하도록 미리 구성된 Amazon Linux ami 일뿐입니다. 다른 AMI와 마찬가지로 EC2에서 시작하여 조정하고 실행중인 인스턴스에서 새로운 사용자 지정 AMI를 파생시킬 수 있습니다. Amazon Linux는 기본적으로 반 가상화 패치와 Amazon에서 사전 구성된 yum 리포지토리가있는 Centos와 Fedora의 교차점입니다.

아시다시피, Amazon Linux는 부팅시 보안 패치를 설치하도록 이미 구성되어 있습니다. 그러나 실행중인 인스턴스는 패치와 관련하여 다른 서버와 다르지 않습니다. 패칭으로 인해 서비스가 중단 될 수 있습니다. 보안 패치가 매우 우려되는 경우 항상 컨테이너 명령과 setup cron을 사용하여 일정한 간격으로 yum update --security를 ​​실행할 수 있습니다.

또한 EB API를 사용하여 EB 구성을 변경하거나 새 EB 환경 작성을 자동화 한 다음 환경이 준비되고 준비되면 이전 환경을 종료 한 후 교체 할 수 있습니다. 여기에 설명되어 있습니다 : http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.CNAMESwap.html

다른 AWS와 마찬가지로 SaaS 이외의 모든 기능을 프로그래밍 방식으로 액세스하고 제어 할 수있는 방법이 있으므로 패치 된 AMI를 생성하는 데 방해가되지 않으며, 새로운 AMI 환경을 생성하고 롤아웃하는 데 사용됩니다. EB는 구성 관련 사항을 강요하지 않으며 인프라를 유지 관리하기위한 시스템 관리 그룹을 제공하지도 않습니다.


2
답변 주셔서 감사합니다. Beanstalk는 PAAS가 아니라고 생각합니다. 불행히도 올바른 답변이라고 생각합니다. cron 작업에서 "음 업데이트"를 수행하거나 API를 사용하여 자동으로 새 버전의 AMI로 회전하는 것과 같은 작업을 수행 할 수 있지만, 이는 안전한 제공을 위해 구축 된 실제 PAAS와 비교할 때 항상 하위 표준 솔루션입니다 자동 환경. 이 질문은 몇 달 동안 진행되었으며 유일한 답변이므로 답변을 올바른 것으로 표시하겠습니다.
에릭 앤더슨

에릭, Opsworks를 보았습니까? 좀 더 콘솔 기반이며 실행중인 서버의 기본 문제를 해결하지 않아도 PaaS와 같은 느낌을줍니다.
gview


1

모든 Beanstalk 애플리케이션 및 환경은 애플리케이션, 컨테이너, OS 등의 일부를 업데이트하거나 재구성하기 위해 YAML 기반 구성으로 애플리케이션 배치 패키지 (예 : Java 앱용 WAR 파일)와 함께 패키지 된 EBEXTENSIONS 파일을 통해 구성 할 수 있습니다. PaaS는 기본 IaaS에 대해 걱정할 필요없이 애플리케이션을 배포 할 수있는 플랫폼이기 때문에. 하루가 끝날 때 모든 PaaS 제공 업체는 특정 형태의 자동화를 통해 기본 IaaS를 난독 처리합니다. 그러나 이것이 우리가 말하는 컴퓨터 과학이기 때문에 PaaS에서 IaaS를 조정할 수있는 능력이없고 모든 애플리케이션에 대해 최적의 단일 상태가 존재하지 않는다는 점에 대해 PaaS 서비스 제공 업체는 귀하의 애플리케이션이 원활하게 실행되도록 보장합니다. 빠르고 안전하게.

Heroku는 다른 관리 계층을 사용하여 AWS에서 실행됩니다. 그러나 응용 프로그램 보안과 같은 일을해야 할 때 엉덩이가 아프게됩니다. 그들은 솔루션을 효율적으로 관리하고 보안 등을 유지하기 위해 최선을 다하지만 하루 종일 앱의 취약점으로 인한 위험과 결과를 감당할 수 없습니다. 그들은 가능한 한 쿠키 커터로 서비스를 만들고 싶어합니다.

플랫폼 기반의 IaaS를 조정할 수있는 기능은 Beanstalk IMO의 강점과 호소력입니다.


나는 이것이 실제로 질문에 대답하지 않는다고 생각합니다.
Drew Khoury
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.