2017-09-09 6 views
1

다음과 같이 VPC에서 VM (EC2)을 사용하는 AWS에서 현재 실행중인 응용 프로그램을 가지고 있습니다. LEMP 주요 API에 대한 스택 실행VM에서 Docker로 - 어떤 컨테이너가 어떤 컨테이너로 이동하는지 이해

  • 홈페이지 LB
    • 2 ~ 4 EC2 인스턴스는
  • 관리자 패널 ReactJS 앱을 실행하는 EC2 인스턴스는
  • EC2 인스턴스는 젠킨스를 실행
  • 2 이메일 키바ElasticSearch

내가 생산 사용 (도커 떼)에 대한 도커이 모두를 변환하는 중이 야를 실행 LogStash

  • 1 EC2 인스턴스를 실행 C2 인스턴스. 나는이 구성 요소 각각에 대해 컨테이너와 Dockerfiles를 만들 수 있다는 것을 이해하지만 배치와 관련하여 내 질문은 다음과 같습니다.

    1. 이 구성 요소는 모두 지금까지 동일한 VPC에 있었기 때문에 서로 로컬로 네트워크 할 수있었습니다. 그래서 그들은 계속 될 것입니다. 하지만 그들은 모두 같은 Docker Swarm에 존재해야합니까?

    2. 각 구성 요소는 자체 소형 서버에 익숙하지만 현재는 각 구성 요소가 자체 컨테이너에 포함됩니다. 몇 가지 더 큰 서버와 여러 컨테이너 (필요한 경우)가 인스턴스 전체에서 실행되도록하는 것이 좋습니다. 즉, 이러한 구성 요소 중 일부는 결국 동일한 서버에있을 수 있지만 컨테이너 작업시 예상되는 동작입니까?

      아니면 특정 구성 요소 (예 : ElasticSearch)가 자체 서버에 있어야합니까?

    3. 여러 개의 Docker Swarm을 갖고 싶습니까? 이 응용 프로그램과 관련이있는 어떤 것이 든이 덩어리 내에 있어야한다고 가정하는 것이 가장 좋습니까?

  • +0

    이것들은 모두 고려해야 할 좋은 것들입니다. 의견의 문제는 주제에 관한 것이 아닙니다. – larsks

    답변

    1

    위해

    1. 같은 떼 클러스터의 모든 컨테이너를 유지하는 것이 필요하지 않으며 같은 VPC 내부의 여러 클러스터를 실행하면 비슷한 네트워킹 기능을 가질 수 있습니다 귀하의 질문에 대답. 그러나 엄격한 규제 요구 사항이나 다른 강력한 요구 사항이없는 한 동일한 클러스터에서 실행하여 도커의 내부 네트워크를 활용하고 컨테이너를 더욱 안전하게 보호 할 수있는 기능을 활용할 수 있도록 권장합니다.

    2. 세분성을 기반으로 현재 서비스를 여러 컨테이너에 도킹하면 개별 배포의 독립 실행 형 확장, 내결함성 처리 및 컨테이너 수명주기 유지가 가능합니다. ElasticSearch는 일반적으로 많은 요청을 받기 때문에 자체 컨테이너에 분리하는 것이 논리적입니다. 또한 동일한 호스트에서 컨테이너를 실행하거나하지 않는 것이 중요하지 않습니다.실제로 Swarm은 다른 호스트에 대한 컨테이너 배치를 처리하므로 호스트에 장애가 발생하면 Swarm은 내결함성에 중요한 구성을 기반으로 다른 호스트에 다른 컨테이너 인스턴스를 제공합니다.

    3. 생산을 위해 단일 용도로 사용할 수 있습니다. 여러 개의 Swarm 클러스터를 사용할 수있는 일반적인 용도는 여러 클러스터에 여러 단계의 배포 (테스트, 준비, 준비, & 등)를 수행하는 것입니다.

    또한 AWS에서 사용할 수있는 완벽하게 관리 고정 표시기 컨테이너 서비스입니다 AWS EC2 container service 봐. Swarm은 AWAM, Autoscaling,로드 밸런싱과 같은 다른 AWS 서비스와 긴밀하게 통합되어 있기 때문에 AWS에서 컨테이너를 관리하는 것이 더 쉬울 것입니다.