# 테스트 환경 설명
1. 테스트 설명
2개의 EC2 인스턴스안에 Docker 컨테이너를 1개씩 설치 포트 포워딩은 9090:80으로 설정했으며, 실제 대상그룹에서 통신하는 포트는 9090이 된다. 9090:80 → 9090은 외부로 서비스할 포트이고, 80은 원래 애플리케이션이 사용하고있는 포트이다.
예를들어, SpringBoot에서 백엔드 서비스의 포트번호를 9999라고 설정하고 빌드 후 Docker에서 8888번 포트로 서비스를 하고싶을 경우에는 8888:9999 라고 포트번호를 설정해 주어야 한다. (이게 별거 아닌데 가끔하면 은근히 헷갈림)
2. 대상그룹이 바라보는 로드밸런서는 docker-test-9090 라는 로드밸런서 이고 정보는 아래와 같다.
- 부하 테스트를 위해 로드밸런서의 DNS 이름과 :80 으로 접속하여 테스트를 수행하자.
3. 위의 테스트 환경에 대해서 간략하게 설명을 하자면
- EC2 2개 → 각각 Docker 컨테이너 설치 (컨테이너9090:80) → 대상그룹에 9090으로 인스턴스를 등록(9090은 Docker 서비스 포트임) → 그리고 로드밸런서에 대상그룹을 연결하면 대상그룹에 등록된 인스턴스에게 부하를 전달함(DNS주소:80(서비스포트)) → DNS주소 : 80으로 웹페이지를 접속하면 → EC2인스턴스 아파치 로그에는 ELB 헬스체크 로그만 쌓이고 아파치 접속로그는 쌓이지 않음 → Docker 컨테이너의 아파치 로그에 새로고침 F5 할때마다 번걸아 가면서 로그가 쌓임 → 결론 → Docker 컨테이너에 정상적으로 로그 쌓임 (설계도 처럼 표시하면 더 좋지 않을까?)
- 다음작업: Docker Replicas를 생생하면 어떻게 쌓일지 궁금함...
- Docker 컨테이너 부하 테스트도 수행 해야함
- 여기서 주의할 점은 도커 컨테이너의 상태포트와 대상그룹의 포트가 일치해야 대상그룹에서 상태확인 시 정상으로 체크를 수행한다.
- 그러면 도커 컨테이너의 상태포트:서비스 포트를 80:80으로 할경우, 그리고 대상그룹의 서비스 포트를 80으로 할 경우 깔끔하게 모든 서비스가 80으로 되는거 아닐까?
위 내용에 대해서 추후 테스트를 해봐야 겠다.
- [ ] 80:80 으로 변경 후 테스트
- [ ] 리플리카 생성 후 LB 테스트 → 번갈아 LOG 찍히는지
'프로젝트 실습 > Docker' 카테고리의 다른 글
[책 리뷰] 완벽한 IT 인프라 구축을 위한 Docker (1) (0) | 2021.05.09 |
---|---|
Docker를 활용한 웹페이지 분산, 신규 컨테이너에 웹서버 구현 (0) | 2021.04.11 |