답변:
활용할 수있는 여러 가지 개념이 있습니다.
첫 번째 옵션 은 현재 수행중인 작업을 계속 수행하는 것입니다. 즉, 구성을 변경할 때마다 EC2를 다시 작성하십시오 . 완전히 자동화 된 방식으로.
이제 AMI를 통해 구성 업데이트를 수행 할 때이 단계를 한 단계 더 진행 하여 일부 리포지토리의 구성 파일 변경시 다음을 수행 할 파이프 라인 을 만듭니다 .
두 번째 옵션 은 인스턴스를 제자리에 유지 하고 구성 파일 을 다시 작성하지 않고 구성 파일 만 배포하는 것입니다. 일반적으로 구성 파일을 코드로 취급하고 코드 릴리스를 배포 할 때와 같은 방식으로 구성 변경 사항을 배포 할 수 있습니다. AWS는이를 지원하는 많은 도구를 보유하고 있습니다.
이러한 Nginx 구성 업데이트 자동화에 익숙해지면 자동화를 나머지 인프라까지 확장 할 수 있습니다.
AWS에는 배포 옵션 개요 백서가 있으며이를 통해 개요를 쉽게 확인할 수 있습니다.
나는 그것이 도움이되기를 바랍니다 :)
구성을 EFS에 저장하고 Nginx 구성이 예상되는 위치에 EFS를 마운트하십시오. 또는 Amazon S3에 배치하고 가끔 동기화를 실행하거나 s3fs를 사용하십시오 (s3fs가 프로덕션 용도로는 충분하지 않을 수 있음).
구성을 변경해야 할 경우 AutoScaling 그룹의 원하는 크기를 늘려서 새 구성으로 새 인스턴스를 트리거하는 데 필요한 양을 두 배로 늘린 다음 이전 인스턴스를 제거하는 데 필요한 수준으로 되돌립니다. 또는 서버를 롤링 재부팅하면됩니다.
또 다른 옵션은 AWS 코드 배포와 같은 기본 자동화 도구를 사용하여 새 구성을 서버에 푸시하는 것입니다.
위의 완전 자동화 된 옵션은 기술적으로 더 좋고 깨끗하지만 구성을 거의 변경하지 않고 쉬운 솔루션을 원한다면 도움이 될 수 있습니다.
AWS 실행 명령 https://docs.aws.amazon.com/systems-manager/latest/userguide/execute-remote-commands.html
또는 Opsworks https://aws.amazon.com/opsworks/를 사용할 수 있습니다
AMI를 재 구축하거나 다른 것과 같이 본격적인 배포 파이프 라인을 생성하면 구성 파일 변경에 대해서만 제안하는 것이 과도하게 보입니다. Ansible을 사용하여 변경 사항을 푸시하고 모든 노드를 동기화 상태로 유지해야합니다. 일반적인 작업을 자동화하는 데 도움이되는 많은 Ansible 모듈이 있습니다.