오늘 면접을 보았는데 제가 직면한 질문 중 하나는 다음과 같습니다.
내 애플리케이션은 EC2 인스턴스(AWS Linux 64비트)의 Docker 컨테이너에서 실행됩니다. 애플리케이션용 도커 컨테이너(컨테이너당 하나의 애플리케이션)가 RDS 인스턴스에 연결되어 있으며 컨테이너를 자동 크기 조정하도록 설정했습니다. 이 설정에 대해 어떻게 생각하시나요?
저는 그에게 AWS의 확장성 기능을 사용하여 필요에 따라 자동으로 확장할 수 있으므로 고객 규모에 따라 EC2 인스턴스를 사용하는 것이 더 나은 접근 방식이 될 수 있다고 제안했습니다. 이를 시도했지만 Auto-Scaling을 할 때 고객의 네트워크가 느려졌다고 언급했습니다.
내 질문은: 아키텍처 관점에서 RDS에 연결된 Docker의 확장 가능한 EC2 인스턴스를 실행하는 것이 더 효율적입니까? 아니면 현재 설정이 더 나은가요?
제가 EC2 확장성을 사용하는 이유는 그가 자동 확장 가능한 컨테이너를 실행하고 EC2에 결국 리소스가 부족해지고 잠재적으로 너무 많은 컨테이너를 자동 확장하여 CPU 사용률이 높아질 수 있기 때문입니다.
해당 정보가 이 질문에 유용하다면 그는 Tomcat을 웹/응용 프로그램 서버로 사용하고 있습니다.
답변1
자동 확장 시 고객의 네트워크 속도가 느려집니다.
이 말은 다소 혼란스럽습니다. 하지만 컨테이너 확장에 비해 EC2 인스턴스를 사용할 때 확장 이벤트가 더 느려질 것이라는 뜻이라고 가정합니다.
EC2 인스턴스를 시작하는 것이 Docker 컨테이너를 시작하는 것보다 빠르므로 운영 체제 자체 내에서 컨테이너를 확장하는 것이 EC2 인스턴스를 확장하는 것보다 빠릅니다. EC2 인스턴스를 확장해야 한다면 새 인스턴스를 가동해야 하며 시스템 부팅 프로세스에 따라 시간이 걸립니다.
그러나 도커 컨테이너를 확장하려는 경우, 확장이 필요한 경우 동일한 인스턴스에서 새 도커 컨테이너를 시작하는 것을 의미하며 이는 새 EC2 인스턴스를 시작하는 것보다 훨씬 빠릅니다. 이를 통해 애플리케이션은 확장 이벤트에 신속하게 응답할 수 있습니다.
컨테이너를 확장할 경우 인스턴스의 리소스 부족에 대한 우려를 이해합니다. 하지만...EC2 인스턴스 확장을 방해할 수 있는 방법은 없습니다. 관심있으신 분들은 꼭 확인해 보세요아마존 클라우드 서버그리고 그것이 어떻게 처리되는지자동 크기 조정