0

시나리오 :ELB를 사용하지 않고 EC2 인스턴스에 대한 사용자 지정 상태 검사를 구현하는 방법은 무엇입니까?

  • 나는 자동 스케일링 그룹 뒤에 EC2 인스턴스를 실행하는거야,하지만 나는 ELB를 사용하지 않는.
  • EC2 인스턴스 내부에는 웹 서버가있는 도커 컨테이너가 실행 중입니다.

웹 서버가 응답하는 간단한 상태 검사를 추가하고 싶습니다. 따라서 도커 컨테이너가 다운되면 자동 크기 조정 그룹이 인스턴스를 대체 할 수 있습니다.

내가보기에 ELB 만 사용자 지정 건강 검사를 지원합니다. ELB가 필요 없기 때문에 cron 작업으로 EC2 인스턴스 내부의 상태 확인을 실행하는 것이 합리적인지 궁금합니다.

export INSTANCE=$(curl http://169.254.169.254/latest/meta-data/instance-id) 
export AWS_DEFAULT_REGION=$(curl http://169.254.169.254/latest/dynamic/instance-identity/document|grep region|awk -F\" '{print $4}') 
aws autoscaling set-instance-health --instance-id $INSTANCE --health-status Unhealthy 

내 생각, 그것은 작동해야하지만, 그래도 조금 복잡 보인다 : 웹 서버 (로컬) 응답하지 않는 경우,이 같은 건강 상태를 설정할 수 있습니다. ELB를 사용하지 않고 사용자 지정 상태 검사를 구현하는 더 좋은 방법이 있습니까?

+2

이 권장되는 방법이 될 것 같습니다 AWS의 문서를 찾고 있습니다. -> http://docs.aws.amazon.com/autoscaling/latest/userguide/healthcheck.html#as-configure-healthcheck – Colwin

답변

2

2017 년에는 ECS 인스턴스의 상태를 설정하는 API 인 AWS의 직접적인 지원이 없습니다.

  • 사용자 정의 상태 검사를 구현 (쉘 스크립트 또는 당신이 무엇을 선택할 수) 정기적으로 실행 (cron을 통해 또는 당신이 무엇을 선택)
  • : 따라서, 질문에 설명 된 기술은 권장되는 방법입니다 사용자 정의 상태 확인이있는 경우

    것은, 당신이 t을 보낼 수 있습니다 자동 스케일링 그룹

AWS documentation on custom health checks에 결과를 전달하기 위해 autoscaling set-instance-health API를 사용하여 Auto Scaling이이 정보를 사용할 수 있도록 건강 ​​검사에서 자동 확장에 이르는 정보. 예를 들어 인스턴스가 예상대로 작동하지 않는다고 판단한 경우 인스턴스의 상태를 비정상으로 설정할 수 있습니다. Auto Scaling이 다음에 인스턴스의 상태 검사를 수행하면 인스턴스가 비정상임을 확인한 다음 대체 인스턴스를 시작합니다.

는 건강에 해로운 지정된 인스턴스의 상태를 설정하려면 다음 설정 인스턴스 건강 명령을 사용하여

aws autoscaling set-instance-health --instance-id i-123abc45d –-health-status Unhealthy

관련 문제