안녕하세요. Docker Containers간 통신 할 때 나타나는 에러 강의 를 듣고 있는데요. 강의중에서 컨테이너1 (노드 js 앱 + redis client) 컨테이너2(레디스서버) 라고 그림을 그려주셨는데요. 궁금한것이 레디스 서버는 왜 다른 컨테이너 안에 있나요? 하나의 docker file에 이미지 생성후 , 컨테이너를 만들어서 실행시킨건데 그러면은 하나의 container 안에 들어있는거 아닌가요?
이 강의를 통해 HTTPS를 적용하기 전에, CloudFront의 배포 도메인 이름(https://d3~~~~~~.cloudfront.net/)으로 접속을 해 봤는데 https가 적용이 됐었습니다. 이유가 무엇인가요? 이 강의에서 HTTPS를 적용하는 거랑, 적용 안 하고도 https로 접속이 되는 것이 어떠한 차이인지 궁금합니다! 강의 잘 보고 있습니다.
여기선 HTTP 프로토콜을 선택하고 HTTP로 오면 HTTPS로 리다이렉트로 하겠다고 선택하였는데 이것이 의미하는 정확한 의미가 궁금합니다. 이 설정에선 HTTP만 허용하고, HTTP로 온 걸 HTTPS로 리다이렉트하긴 하지만, 사용자가 HTTPS 요청을 보내는 거에 대해선 허락하지 않은 건가요?
✅ 모든 질문들은 슬랙 채널에서 답변드리고 있습니다. 💡 ”로펀의 인프런 상담소” 슬랙 채널 가입하기 💡 평일중에는 퇴근 이후(저녁 7시)에 답변을 받아보실 수 있고, 주말중에는 상시 답변드리고 있습니다. 강의화면에서 코드를 읽는데 클릭하실 때 화면이 울렁거려 심히 신경쓰이고 더구나 클릭하면 주변 크기가 늘어나는게 아니라 오히려 줄어드니까 글 읽기가 더 힘드네요...반드시 개선해주셨으면 합니다.
Postman으로 요청을 보내는 게 첫 번째 사진에서 '사용자 -> EC2', 그리고 2번째 사진인 Postman으로부터 받은 응답은 'EC2 -> 사용자' 맞죠? S3가 EC2엔 저 URL을 보내고, 서버에서 다시 가공해서 사용자에게 응답한 게 2번째 사진이 맞는지 궁금합니다. 좀 당연하다고 생각하고 있는데 혹시 제가 헷갈려서 틀렸을까 봐 확인차 질문드립니다.
안녕하세요! 강의 늘 잘 듣고 있습니다! CI/CD 배포하다가 서버가 자꾸 죽어서 스왑 메모리까지 도입을 했는데도 비정상적으로 RAM과 스왑메모리가 꽉 차는 이슈가 있는데 도저히 어떻게 해결해야할 지 몰라서 이렇게 질문 남깁니다! 서버 인프라 환경 ELB - EC2(t3.small, EBS: 30GiB) EC2 내부 : Docker 기반 Spring Boot + MySQL 8.0 + Redis 문제 상황 어디가 구체적으로 문제인지 몰라서 그냥 구구절절 다 설명드릴게요. 처음부터 CI/CD가 안된건 아닙니다. 원래 잘 됐었는데요. 인증 도메인(일반/소셜 로그인) 정상 작동하는거 확인하고 push 해서 배포완료 후 docker-compose.yml 수정해서 push 하고나니까 갑자기 CICD 할때마다 서버가 다운되는 문제를 발견했습니다. yml 파일을 바꾸게 된 경위는, 토큰 받아오는 과정에서 에러 뜨는거 보고 docker-compose.yml에 redis 관련 환경변수를 등록하는걸 깜빡했구나 싶어서 그거 추가한게 다 입니다. 이게 전혀 문제가 안될텐데 이상하게 이 시점 이후로 계속 문제가 터져서 좀 난감합니다. 애플리케이션이래봤자 아직 인증도메인 & 유저 간단한 CRUD가 전부라서 무거울게 없기 때문에 t3.small로도 충분할거라 생각했지만, 혹시나 하는 마음에 t3.medium으로 scale up을 해봤습니다. 그랬더니 이번엔 RAM 4GB와 Swap Memory를 5.9GB 까지 잡아먹는 비정상적인 현상이 계속 반복되더라구요. 혹시 한꺼번에 docker build를 해서 그런가 싶어서 container 별로 나눠서 빌드시키고 각 단계마다 sleep을 줘봤는데도 결과는 똑같았습니다. 아래가 이제 t3.small (Swap 4GB 설정)이구요 이게 t3.medium (Swap 6GB)입니다. (위와 로직이 좀 달라요. 근데 이러나 저러나 결과는 똑같아서..) 배포 관련 파일 대상 : deploy.yml, docker-compose.yml, Dockerfile 글자 수 제한 이슈로 노션에다가 코드 올렸습니다. https://hooby.notion.site/CICD-OOM-2a6f6c063f3e805ba105d78284365fbe?source=copy_link 질문 혹시 제 deploy.yml이나 docker-compose.yml 에 문제가 있나요? 메모리 80% 이상 차지하는게 전부 Docker 관련 프로세스여서요. Update 2: 테스트 결과에 따라 하단의 질문들이 원인이 아니라는게 검증됨 아니면.. t3.small이 docker 기반 Spring Boot + MySQL + Redis를 빌드 못할 수준인가요? (아닐 것 같긴해요.) 아니면 제 인증 구현 방식에 문제가 있어서 저럴 수도 있는건가요? Redis 기반으로 Token에 블랙리스트 설정하고, 클라이언트한테 쿠키로 토큰 심어서 내보내는 방식인데, 혹시 이게 문제가 될 수도 있는건가요? 근데 로컬에서 redis 랑 스프링부트 가동하고 htop으로 메모리 변화를 봤을 땐 문제 없어보이긴 했습니다. 긴 글 읽어주셔서 감사합니다. Update 1: EC2에 직접 실행해본 결과 EC2에서 docker-compose.yml을 그 안에다가 직접 만들어서 mysql, redis만 띄우고 Spring Boot는 클론해서 환경변수 직접 세팅해주고 실행해봤습니다. 이는 혹시나 혹시나 애플리케이션이 너무 비정상적으로 설계되서 메모리를 많이 잡아먹진 않을까 하는 우려에 임시로 이렇게 세팅해뒀습니다. 결과적으로 잘 돌아갑니다. 메모리가 1.36GB 정도 잡히긴 하지만...? 그래도 redis + mysql + spring boot 다 돌렸을 때 이정도고 Swap 메모리 있으니까 괜찮지 않을까 하는 판단 중입니다. (아니면 호되게 지적해주세요) 하단은 임시로 세팅하기 위한 docker-compose.yml 입니다. https://hooby.notion.site/CICD-OOM-2a6f6c063f3e805ba105d78284365fbe?source=copy_link 한번 이것도 CI/CD로 돌려봐야겠긴 한데, 우선 문제가 됐던 deploy.yml과 docker-compose.yml에서 어떤 문제가 있었길래 저런 사태가 발생했던건지 알고싶습니다. Update 2: 우선 대안으로 SCP 활용 강의에서 초기 프로젝트에 좋다고 했던 방법대로 해결했습니다. CICD 과정에서 메모리는 900MB 미만 수준에서 안정적으로 돌았습니다. 근데 제가 원했던 설계는 Docker로 Spring Boot + MySQL + Redis 일원화였기 때문에 개발 완료되는대로 다시 찾아봐야겠습니다. https://hooby.notion.site/Server-Infra-Setup-Remodeling-2a8f6c063f3e808a8674fbc2a62cdd22?source=copy_link
사이트에 들어온 사용자가 화면에 뜨는 이미지들을 보려면 퍼블릭 액세스 차단을 다 풀어서 퍼블릭 액세스를 허용해야 한다면, 퍼블릭 액세스 차단을 해야 하는 경우는 어떤 상황일 때 사용하는 건지 궁금합니다. 현업에선 S3 버킷을 보통 여러 개 만들고, 퍼블릭 액세스 허용하는 버킷과 차단하는 버킷들로 나뉘나요?
RDS 파트 다 듣고 삭제까지 하고 궁금해져서 직접 확인을 못 했는데 퍼블릭 액세스에 체크를 하면 퍼블릭 IP 주소가 할당된다고 나와 있는데, RDS에도 탄력적 IP처럼 공인 IP가 있나요? 노션 자료엔 엔드포인트만 있고 IP 주소가 안 보여서 질문드립니다. +) 강의 순서가 CI/CD -> Docker인데 Docker 먼저 듣는 건 비추하시나요? Docker 강의 자체가 CI/CD 강의를 이미 수강한 사람들이라 가정하고 만들어진 강의인지, 아니면 우선순위 자체가 CI/CD가 먼저인 건지 궁금합니다. 잘은 모르겠는데 CI/CD 강의 중에 Docker를 활용하는 부분이 있길래... 그냥 Docker 먼저 듣는 게 나을까 생각이 드는데, 아무래도 그냥 로드맵 순서대로 하는 게 나을까요?