[6] 자주 언급되는 질문

EC2와 Lambda 중 어떤 것을 사용해야 할까요?

EC2는 항상 작동하는 서버를 사용하는 반면, Lambda는 필요한 시점에만 서버를 사용합니다. 따라서 EC2는 항상 작동하는 서버가 필요한 경우에 사용하고, 필요한 시점에만 서버를 사용하는 경우는 Lambda를 사용합니다. 예를 들어, 매일 오전 9시에 실행하거나 자주 실행되지 않는 경우에는 Lambda가 적합합니다. 그러나 매일 정해진 시간이 아니라 사용자가 요청할 때마다 서버가 필요한 경우 그리고 요청이 자주 들어오는 경우에는 EC2를 사용해야 합니다.

Lambda에서 코드를 직접 작성하는 것과 도커 이미지를 사용하는 것 중 어떤 것이 좋을까요?

결론적으로 도커 이미지를 사용하는 것이 좋습니다. 그 이유는 여러 가지가 있습니다.

  • Lambda에서 코드를 직접 작성하는 방법은 Node.js, Python, Ruby만 지원합니다.
  • 콘솔 편집기를 사용해서 코드를 작성하기 때문에 코드를 수정하고 배포하는 것이 불편합니다.
  • 함수 실행에 필요한 패키지나 라이브러리 등 의존성 레이어를 만들어 추가해야 하므로 매우 불편합니다.

반면, 도커 이미지를 사용하면 프로그래밍 언어의 제약 없이 애플리케이션을 만들 수 있습니다. 또한, 라이브러리를 미리 설치해 놓을 수 있기 때문에 편리합니다. 가장 중요한 점은 도커 이미지를 소스 코드나 라이브러리 업데이트에 따라 새로운 이미지를 빌드하고 람다에 새로운 이미지를 적용하는 모든 과정을 자동화할 수 있습니다.

Cloudwatch를 반드시 설정해야 하나요?

Cloudwatch는 AWS에서 제공하는 로깅 및 상태 감시 서비스입니다. EC2 인스턴스 또는 Lambda를 생성할 때 별도로 설정하지 않으면 각 서비스의 상태나 애플리케이션 실행 관련 기록이 Cloudwatch에 자동으로 기록됩니다. 만일, EC2나 Lambda 실행 중 문제가 발생한 경우 문제의 원인을 찾고 분석하기 위해서 당시 애플리케이션의 상태와 로깅 기록이 필요하기 때문에 애플리케이션을 운영하는데 필수적인 도구입니다. Cloudwatch에 관해서는 7장에서 자세하게 설명할 것입니다. 참고로 Lambda 실행 도중 타임아웃이 발생하는 경우 Cloudwatch 로그에는 해당 내용이 남지 않기 때문에 주의가 필요합니다.