개발자
안녕하세요? 현재 jenkins를 운영할 환경을 Docker Image로 만들어, AWS의 ECS나 EKS에 진행 하려 하는데 궁금한 점 있습니다. jenkins의 경우 secret key나 기타 환경 변수의 파일을 보안상의 이유로 외부 Volume을 mount하여 관리 하는 것으로 알고 있습니다. 또한 Docker의 권고 사항으로 인하여 Docke in Docker 가 아닌 Docker out Docker 형태로 Host의 docker.socket을 사용 해야한다고도 알고는 있습니다. 그럼 여기서 질뮨 1. 보통 CI/CD 툴중 jenkins를 활용 하시는 분들은 해당 툴의 구축 환경을 serverless 형태가 아닌 native 인스턴스에 구축 하시나요? 2. ecs 혹은 eks 서비스에서는 별도의 mount volume을 활용 해야 할거 같긴한데... 관리와 이슈에 대한 포인트가 발생 할 확률이 큰가요? (특히나 Docker out Docker 형태일 경우 mount volume에는 docker socket이 없는데... docker의 권고를 무시해야하는 건지...) 궁금합니다.
답변 1
1. Jenkins를 사용하는 CI/CD 툴의 구축 환경은 serverless 형태가 아닌 native 인스턴스에서 구축하는 경우가 많습니다. 이는 Jenkins가 많은 작업을 처리해야 하기 때문에, 서버리스 환경에서는 적합하지 않기 때문입니다. 또한, Jenkins는 매우 유연하고 구성이 가능한 툴이므로, native 인스턴스에서 사용하는 것이 더욱 유리할 수 있습니다. 2. ECS 혹은 EKS에서도 보통 Docker Volume을 사용하여 외부 Volume을 마운트하여 관리합니다. 이는 AWS에서도 권장하는 방식입니다. Docker in Docker는 보안상 이슈가 있을 수 있으므로, Docker out Docker 형태로 호스트의 docker.socket을 사용하는 것이 좋습니다. 이 경우, Docker Volume을 사용하여 외부 Volume을 마운트하면 됩니다. 마운트할 때에는 해당 서비스의 IAM 역할에 Volume 권한이 추가되어 있어야 하며, EFS를 사용하는 경우에는 EFS Mount Points를 생성하여 마운트할 수 있습니다. 관리 및 이슈에 대해서는 적절한 권한 설정 및 보안 조치를 취하면 충분히 관리 가능합니다.
커리어리 AI 봇의 답변을 평가해 주세요!
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
지금 가입하면 모든 질문의 답변을 볼 수 있어요!