2017-12-08 19 views
1

certbot auto를 사용하여 GitLab 페이지에서 호스팅하는 웹 사이트의 SSL 인증서를 자동으로 갱신하려고합니다. 이미이 작업을 수행했지만 Lightsail 인스턴스를 계속 실행해야합니다.3 개월마다 Lightsail 인스턴스의 부팅을 자동으로 예약하는 방법이 있습니까?

저는 3 개월마다 Lightsail 인스턴스를 자동으로 부팅하는 방법을 찾고 있습니다. 부팅 한 후 스크립트를 조금 실행 한 다음 다시 전원을 끕니다. 현재 5 달러의 비용이 소요되고 매회 몇 분 동안 만 사용하고 있습니다.

3 개월마다 Lightsail 인스턴스의 부팅을 자동으로 예약하는 방법이 있습니까?

답변

1

제안 된 접근 방식 : 3 개월마다 실행되고 4 단계를 수행하는 예약 된 람다 함수.

    원격 인스턴스를 종료

일부 전제 조건을 완료

  • 때까지 명령을 모니터하여 lightsail 예를
  • 에서 명령을 실행하는 인스턴스
  • 사용하여 EC2 RunCommand API를 시작
  • :

    • 람다 만들기 기능을 사용하고 IAM 역할을 가진 사용 권한을 부여하여 ssm:*, ec2:startinstancesec2:stopinstances (람다 함수가 라이트ail 인스턴스와 통신하고 명령을 모니터링 및 전송할 수있게합니다.
    • 는 람다 함수 예약 기능 확인, 그래서
    • 유무 SSMAgent이 this
    • 같은 인스턴스에 설치 automaticalle 당신은 (인스턴스 정책을 통해 인스턴스를 SSM 통신을위한 적절한 IAM 권한을 부여 3 개월마다 그것을 실행할 수 있습니다 이 인스턴스 지금

      "ec2messages:*","ssm:updateinstanceinformation","ssm:listassociations"

    ) AWS SSM과 통신하여 람다 함수를 작성 할 수 있습니다 AWS SDK를 사용하면 매력처럼 작동합니다. 비용이 걱정된다면 스크립트의 어머니 한 명을 돌리지 않으면 한 달에 400GB의 계산 시간을 얻으므로 무료 티어에 속해야합니다.

    이것은 1GB 메모리로 매월 400 초 동안 무료로 람다 기능을 실행할 수 있음을 의미합니다.

    추신 : EC2 많이 언급했는데, 당신은 lightsail을 사용하고 있다는 것을 알고 있습니다.하지만 EC2의 래퍼 일 뿐이므로 동일한 기능을 사용할 수 있다고 상상해 봅니다. 내가 잘못하면 나를 바로 잡습니다.

  • +0

    정말 고마워요. 그리고 이것을 알아내는 데 도움이되는 훌륭한 세부 사항입니다. – khriskooper

    +1

    Lightsail 인스턴스가 시작되고 필요한 작업을 수행하는 데 5 분 이상이 소요되면 제안 된 방법으로 해결하기가 정말 어려울 것입니다. 더 나은 접근 방법은 helloV가 제안한 것처럼 람다 함수가 단순히 인스턴스를 시작한 다음 인스턴스가 부팅 할 때 자동으로 작업을 실행하게하고 작업이 완료되면 자동으로 종료되도록하는 것입니다. –

    +0

    AWS DataPipeline을 사용하는 것이 더 매끄러운 환경이 될 것이라는 점도 여기 @helloV에 동의합니다. 그것은 lightsail에서 ec2로 강요 할 것입니다. 단 한 시간 만에 실행하는 데 드는 비용이 아무 것도 없기 때문에 (동등한 1 시간당 $ 0.0116) 이는 똑같이 실행 가능한 옵션입니다. –

    4

    내가 생각할 수있는 두 가지 옵션이 있습니다. 더있을 수 있습니다.

    AWS Data Pipeline : 3 개월마다 쉘 활동을 예약하고 마이크로 인스턴스를 선택하십시오. AWS CLI 명령을 지정하여 인스턴스를 시작하고 작업이 완료되면 인스턴스가 인스턴스 중지 명령을 보내도록하십시오. 비용 : 마이크로 인스턴스 1 시간.

    AWS Lambda (선호) : 3 개월마다 인스턴스를 시작하도록 람다 이벤트를 예약하십시오. AWS CLI 명령을 지정하여 인스턴스를 시작하고 작업이 완료되면 인스턴스가 인스턴스 중지 명령을 보내도록하십시오. 비용 : (무료 한도 내에서 될 가능성이) 아무것도

    aws lightsail start-instance

    정지 상태에서 특정 아마존 Lightsail 인스턴스를 시작합니다. 인스턴스를 다시 시작하려면 reboot 인스턴스 작업을 사용하십시오.

    제 생각에는 인스턴스에 에이전트를 설치하는 것은 명령을 보내려는 잔인한 행위입니다.

    +0

    제안 해 주셔서 감사합니다. 매우 유용합니다. – khriskooper