강의

멘토링

로드맵

Inflearn コミュニティ Q&A

conficker777769 のプロフィール画像
conficker777769

投稿した質問数

非専門者でも理解できるAWS入門・実践

[実習] 5. HTTPS適用のための証明書発行

EC2와 RDS 등 개별적으로 사용시 docker를 사용한다면

作成

·

79

·

編集済み

0

안녕하세요.
강의내용에서 추가적으로 궁금한게 있어서 질문 드립니다.

기존 로컬에서 docker compose를 사용해 각 컨테이너로 프로젝트, DB, redis 등을 사용한다고 할때 추후에 EC2와 RDS, redis 등 사용한다면 EC2 서버 내에서는 로컬에서 사용해왔던 개별적인 컨테이너를 사용하지 않는건지 헷갈려서요.

예를 들어 AWS RDS를 따로 만들어서 사용한다면 로컬에서 사용하던것처럼 컨테이너를 만들어서 사용할 수 없겠다 생각이 들어서요.

이렇게 되면 EC2에서는 프로젝트만 돌아야하니 따로 같이 돌리는거 아닌 이상 메인 프로젝트 하나만 돌리는거니깐 docker가 필요없나 싶네요.

강사님의 docker 강의와 AWS 강의를 들으면서 운영서버를 사용할때 둘의 공존성에 대해서 어떤식으로 활용해야하나 궁금합니다.

awsec2rdsdocker

回答 2

0

jscode님의 프로필 이미지
jscode
インストラクター

안녕하세요 승현님 ! 강의 잘 들어주셔서 감사합니다 ㅎㅎ

질문해주신 내용이 정말 실무에서 자주 고민되는 부분이라, 핵심만 콕 집어서 정리해드릴게요!

 

"운영서버에서는 로컬에서 사용해왔던 개별적인 컨테이너를 사용하지 않는건지 헷갈려요.

운영서버를 사용할 때 docker강의와 AWS 강의는 어떤식으로 공존해서 활용하는지가 궁금해요. "

-> 저도 처음 AWS와 docker를 학습하는 과정에서 승현님과 같은 생각을 했었어요 ~

우선 결론 부터 말씀드리면 EC2에서는 Docker 애플리케이션 단일 실행 환경으로 사용하면 됩니다 !

일반적으로 실무에서는 DB는 따로 RDS나 ElastiCache와 같은 서비스를

따로 분리해서 쓰는 구조가 많습니다 !

또한 드물긴 하지만 하나의 EC2 서버 내부에서

로컬과 같이 compose를 사용해 각 컨테이너를 씌워 운영하기도 해요 ~

 

하지만 실무에서는 전체적인 서비스 안정성을 위해 해당 방법은 지양하고 있죠 :)

로컬 개발환경에서는 모든 구성요소를 Docker Compose로 한 번에 띄워

개발과 테스트를 편리하게 진행하고,

운영 서버에서는 DB와 Redis를 RDS, ElastiCache로 분리해 관리하고,

EC2에서는 애플리케이션만 Docker로 운영하여 책임과 장애 범위를 명확히 구분해요 !!

 

"EC2에는 프로젝트만 돌아가니 docker가 필요없나 싶어요."

-> Docker 강의 첫 수업에서 설명드린 핵심 장점을 기억하실까요 ~?

바로, "이식성 : 특정 프로그램을 다른 곳으로 쉽게 옮겨서 설치 및 실행할 수 있는 특성" 이었죠 !!

프로젝트 하나만 돌리더라도 Docker 쓰는 이유는 많아요!

[1] 프로젝트 빌드된 이미지를 Docker로 묶어두면 → 배포가 단순해짐 (GitHub Actions + ECR + CodeDeploy 등과 연계)

[2] 환경별 설정 분리, 포트 관리, 의존성 충돌 방지 등 여러 프로젝트가 있을 경우에도 격리된 실행 가능

[3] 버전 고정 & 롤백 편리

즉, Docker는 개발용만이 아니라 운영에도 매우 유용한 도구에요 ~~

실제 프로젝트를 진행할 때 배포 환경을 구축하실수록

점차 더욱 docker의 필요성을 깨달게 되실꺼라 생각됩니다 :)

추가로 궁금하신점 있으시면 편하게 질문주세요~~😄😄

0

안녕하세요, 인프런 AI 인턴입니다. 탁승현님.

Docker와 AWS의 서로 다른 환경에서의 활용성에 대해 궁금하신 점을 잘 정리해 주셨습니다. 여러분이 로컬에서 Docker Compose를 통해 일관된 개발 환경을 구축했다면, AWS로 배포할 때 무얼 고려해야 하는지를 설명드리겠습니다.

AWS 환경에서 Docker 활용의 이유

  1. 회귀 테스트 및 일관성:

    • 로컬 개발 환경과 동일한 시스템이 AWS에서도 필요할 경우, Docker는 동일한 환경을 쉽게 복제할 수 있습니다.
    • 이를 통해 버그 발생 시 로컬에서의 테스트와 추적이 용이하다는 장점이 있습니다.
  2. 유연한 서비스 배포:

    • Docker는 다양한 서비스를 독립적으로 구성하고 배포할 수 있는 강력한 도구입니다. AWS 환경에서도 이들을 컨테이너로 패키징하고 쉽게 배포할 수 있습니다.
  3. 자원 관리 및 오토 스케일링:

    • Docker를 사용하면 배포 시 자원 사용을 최적화할 수 있고, AWS의 오토 스케일링 기능과 결합하면 성능 최적화를 극대화할 수 있습니다.

EC2 및 RDS 활용 시 고려 사항

  • EC2 사용 시: EC2에서는 일반적으로 API 서버나 애플리케이션 코드가 클라이언트 요청을 처리하게 됩니다. 이때 로컬에서 테스트한 Docker Compose를 그대로 사용할 필요는 없지만, 컨테이너화된 애플리케이션을 EC2 인스턴스로 배포하여 동일한 환경을 유지할 수 있습니다.

  • RDS 사용 시: 관계형 데이터베이스의 경우, AWS RDS를 이용하여 관리형 서비스로 사용할 수 있습니다. 이는 데이터베이스 관리 및 유지보수 업무를 줄여주고, 고가용성 환경을 쉽게 구성할 수 있는 이점이 있습니다.

  • Redis 사용 시: ElastiCache와 같은 서비스를 이용하면 관리형 Redis 클러스터를 사용할 수 있으며, 이를 통해 인메모리 데이터 저장 기능을 확장할 수 있습니다.

결론

AWS환경에서 Docker와 결합한 인프라를 구축할 경우, 마이크로 서비스 아키텍처나 CI/CD 파이프라인을 통해 최적화된 운영 서버 환경을 만들 수 있습니다. AWS의 관리형 서비스를 최대한 활용하여, 각 구성 요소가 독립적으로 관리되어야 하는 부분에 집중하는 것이 중요합니다.

관련된 유사한 질문 및 답변 참조:
- AWS 배포 시 docker-compose.yml 관리 방법 질문입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

conficker777769 のプロフィール画像
conficker777769

投稿した質問数

質問する