묻고 답해요
148만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨개발자를 위한 쉬운 도커
어떻게 Primary-Standby Replication으로 구성되는지
안녕하세요, 강의에서 구현해주신 Primary-Standby Replication 구조가 어떤 명령어를 통해 구성되는지 궁금해서 여쭤봅니다.실습시에 복붙만 해서 정확히 어떤 명령어가 데이터를 복제해주고 동기화할 수 있는지, standby 쪽에서는 어떻게 읽기만 가능한지 궁금합니다.REPMGR_PRIMARY_HOST 는 Primary로 세팅되고,REPMGR_PARTNER_NODES 는 primary를 제외한 나머지 name:port는 standby로 세팅이 되는게 맞을까요? 추가로, primary-standby 방식에서 primary는 "반드시" 한개여야만 하나요 ? 여러개 일수도 있는지 궁금합니다
-
해결됨개발자를 위한 쉬운 도커
캐싱에 대한 질문이 있습니다.
COPY . . 와 같은 copy 레이어에서, 기존의 내용과 다른 경우 새로운 레이어를 생성한다고 했는데요, 기존의 내용과 다른지 같은지를 판별하려면 해당 명령어를 실행하여 결과를 가져와서 비교를 해봐야 같은지 다른지 알 수 있지 않나요?? 혹은 실행전에 특정 해시값이 존재하고, 그 해시값은 비교하는 형식으로 캐싱이 동작하나요 ? 궁금합니다!
-
해결됨개발자를 위한 쉬운 도커
3030 포트 질문
11분 50초에 3030을 사용하는 포트가 없기 때문에 정상적인 응답이 오지 않는다고 말씀하셨는데요, envnodecolorapp 내부적으로 3000 포트를 사용한다고 명시했기 때문에 응답이 오지 않는게 맞나요? 3030은 왜 사용이 불가한지 이해가 잘 가지 않습니다
-
해결됨개발자를 위한 쉬운 도커
nginx port 질문입니다
4분 58초 쯤에 nginx는 80 포트를 사용한다고 말씀하셨는데, 기본적으로 nginx는 80 포트를 사용하는건가요?docker container inspect 시에 portBindings 앞의 80/tcp 중 80이 포트를 의미하는지도 궁금합니다
-
미해결실전! GitHub Actions으로 CI/CD 시작하기
처음 강의에서 push.yaml을 workflows 폴더에서 part1으로 옮겼을때
push.yaml을 part1으로 옮기고 actions가 작동되지 않은 이유가 workflows 폴더에서 벗어나서 그런건가요? 만약 위 이유가 맞다면 테스트 할 때마다 workflows에 파일을 계속 만들어야 되나요?
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
Github Actions로 ECR 에 이미지 push 후, EC2 에 ssh 로 접속해 pull 받을 때 발생하는 문제
======CMD====== sudo docker stop github-action-prod || true sudo docker rm github-action-prod || true sudo docker pull [ECR URL]/github-action-prod:latest sudo docker run -d --name github-action-prod -p 8080:8080 [ECR URL]/github-action-prod:latest ======END====== err: Error response from daemon: No such container: github-action-prod err: Error response from daemon: No such container: github-action-prod err: Error response from daemon: Head "https://[ECR URL]/v2/github-action-prod/manifests/latest": no basic auth credentials 2024/10/03 02:07:08 Process exited with status 1위와 같이 컨테이너를 찾을 수 없다 그러고 'no basic auth credentials' 이런 문구가 출력됩니다로그인도 잘됐고, ECR에 push도 잘 됐는데 왜 이런 문제가 발생하는 걸까요ㅜㅜ실행한 스크립트는 아래와 같습니다 steps: - name: Github Repository 파일 불러오기 # uses 키워드로 Github Actions의 라이브러리를 사용할 수 있다 uses: actions/checkout@v4 - name: JDK 17 설치 uses: actions/setup-java@v4 with: distribution: corretto java-version: 17 - name: application.yml 파일 만들기 run: echo "${{ secrets.APPLICATION_PROPERTIES }}" > ./src/main/resources/application.yml - name: 테스트 & 빌드 run: ./gradlew clean build - name: AWS Resource에 접근할 수 있게 AWS credentials 설정 uses: aws-actions/configure-aws-credentials@v4 with: aws-region: ap-northeast-2 aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} # ECR 에 업로드 하기 위한 과정 - name: ECR에 로그인하기 id: login-ecr uses: aws-actions/amazon-ecr-login@v2 - name: Docker 이미지 생성 run: docker build -t github-action-prod . - name: Docker 이미지에 Tag 붙이기 run: docker tag github-action-prod ${{ steps.login-ecr.outputs.registry }}/github-action-prod:latest - name: ECR에 Docker 이미지 Push하기 run: docker push ${{ steps.login-ecr.outputs.registry }}/github-action-prod:latest # ECR 에 업로드한 Docker Image 를 EC2 로 가져와 실행시키기 - name: SSH로 EC2에 접속하기 uses: appleboy/ssh-action@v1.0.3 with: host: ${{ secrets.EC2_HOST }} username: ${{ secrets.EC2_USERNAME }} key: ${{ secrets.EC2_PRIVATE_KEY }} script_stop: true script: | sudo docker stop github-action-prod || true sudo docker rm github-action-prod || true sudo docker pull ${{ steps.login-ecr.outputs.registry }}/github-action-prod:latest sudo docker run -d --name github-action-prod -p 8080:8080 ${{ steps.login-ecr.outputs.registry }}/github-action-prod:latest
-
해결됨개발자를 위한 쉬운 도커
이미지빌드 실습 질문
데이터베이스, 백엔드, 프론트 실습에서 컨테이너 실행 실습과 도커파일 이미지 빌드 실습 두개를 하는데 컨테이너 실행 실습은 커밋 방식을 통해 이미지를 만드는 방법인건가요? 두 실습의 연관이 무엇인지 모르겠어요 ㅠㅠ
-
해결됨개발자를 위한 쉬운 도커
docker push 중 경고
안녕하세요, 강의를 열심히 수강 중인 학생입니다. (실습을 진행 중인 환경은 맥입니다.)docker push 중에 선생님과 다른 결과창이 떠서 궁금한게 생겨 질문남깁니다. 메세지 내용을 정확하게 이해할 수 없어 챗지피티한테 먼저 물어봤습니다. 지피티한테 답변을 받은 이후에 생긴 궁금증들 입니다. 레이어가 마운트되고 있다는게 정확하게 무슨 의민가요? 우선 레이어도 무엇을 지칭하는지 모르겠습니다만ㅠ 현재 실습상황에서는 docker images 명령어를 통해 image를 확인해보면, 이렇게 나와있습니다. 원본 이미지(devwikirepo/simple-web)가 이미 존재하고 그에 대한 사본(sjin980530/simple-web)이 존재하기에 이런 경우가 발생하는건가요? 그럼 지금 진행하고 있는 실습은 push를 docker hub에 하고있는건데, 로컬의 상황과는 관계없는게 아닌가요?ㅠㅠ현재 푸시된 이미지가 단일 플랫폼 이미지라는 말은 그럼 제 실습환경(mac)이 아닌 다른 환경(윈도우 등)에서는 사용하지 못하는 이미지라는 뜻인가요?1과 이어지는 질문입니다 원래 레이어와 푸시된 레이어의 다이제스트가 매핑되고있다라고 하는데, 이건 어떻게 이해하면 될까요? 레이어에 대한 지식이 없어 어떤 상황인지 감이 잘 안잡힙니다. 항상 감사드립니다.
-
해결됨비전공자도 이해할 수 있는 CI/CD 입문·실전
Github Actions
안녕하세요 . ㅎㅎ 강의 잘 보고있습니다.Jenkins 와 Github Action 비교를 해주셨는데요.Github Actions 도 많이 사용하지만 Jenkins 도 많이 사용하더라고요 gpt 로 검색을 해보니까 Plugin 이 Jenkins 가 더 좋다고 하는데 강사님은 어떻게 생각하시나요 ?
-
해결됨비전공자도 이해할 수 있는 CI/CD 입문·실전
탄력적 IP
말씀하신것처럼 만약에 Frontend 를 Ec2 에 배포했을때 탄력적 IP 가 없다면 불편할것 같습니다. 하지만 강의 초반에 말씀하셨던것처럼 Frontend 배포할때 S3 로 배포할수있을것 같습니다. 이럴경우에 Backend 입장에서 S3 로 배포된 Frontend 만 인바운드 규칙으로 열어주려면 어떻게 해야할까요 ?
-
해결됨비전공자도 이해할 수 있는 CI/CD 입문·실전
tobe 디렉토리를 사용하는이유
안녕하세요 강사님!강의 너무 잘듣고 있습니다.강의를 보다가 궁금한 점이 생겨서 질문드립니다. - name: SCP로 EC2에 빌드된 파일 전송하기 uses: appleboy/scp-action@v0.1.7 with: host: ${{ secrets.EC2_HOST }} username: ${{ secrets.EC2_USERNAME }} key: ${{ secrets.EC2_PRIVATE_KEY }} source: project.jar target: /home/ubuntu/instagram-server/tobe - name: SSH로 EC2에 접속하기 uses: appleboy/ssh-action@v1.0.3 with: host: ${{ secrets.EC2_HOST }} username: ${{ secrets.EC2_USERNAME }} key: ${{ secrets.EC2_PRIVATE_KEY }} script_stop: true script: | rm -rf /home/ubuntu/instagram-server/current mkdir /home/ubuntu/instagram-server/current mv /home/ubuntu/instagram-server/tobe/project.jar /home/ubuntu/instagram-server/current/project.jar cd /home/ubuntu/instagram-server/current sudo fuser -k -n tcp 8080 || true nohup java -jar project.jar > ./output.log 2>&1 & rm -rf /home/ubuntu/instagram-server/tobe해당 부분을 보면 tobe폴더로 빌드파일을 전송하고 current라는 별도의 디렉토리를 두어서 그 디렉토리로 빌드파일을 옮겨서 실행하고 있는데 혹시 이렇게 하는 이유가 있을까요?? 바로 current로 전송하지 않고 굳이 임시 디렉토리를 두는 이유가 궁금합니다.
-
미해결실전! GitHub Actions으로 CI/CD 시작하기
이벤트 트리거 pull_request의 types
이 부분에서types에 closed 가 추가되는 이유가 있을까요?
-
해결됨비전공자도 이해할 수 있는 CI/CD 입문·실전
region
만약에 사용자가 한국에도 있고 다른나라 미국 프랑스 에도 있다고 한다면어떻게 해야할까요 ?
-
해결됨개발자를 위한 쉬운 도커
Windows WSL 설치 문구 없음
강의때 버전과 Docker 버전이 달라WSL설치에 대한 경고문구가 나오지않습니다.설치 하지않아도 문제없을까요?아니면 필수적으로 설치해야할까요?
-
해결됨개발자를 위한 쉬운 도커
섹션 2 - 가상화기술 질문
강의내용가상화 기술 사용 이전에는 하나의 OS에서 여러 프로그램을 동작시키는 경우 하나의 프로그램에서 오류가 발생하거나, 주어진 리소스보다 많은 리소스를 사용하면 다른 프로그램에 영향을 미친다.이에 대한 해결책으로 가상화 기술을 사용하면서 각 프로그램이 독립적으로 동작하며 할당된 자원만을 사용하므로 근본적인 문제를 해결할 수 있다. 라고 이해했습니다.질문하지만 결국 호스트 OS가 뻗어버리면 가상화된 방식으로 동작하는 것들도 모두 뻗어버린다고 생각이 들어 근본적인 해결책이 되지는 않는다는 생각이 들었습니다.얕은 지식으로 생각해본 결과 결국 하나의 컴퓨터에 하나의 프로그램만 돌아가도록 해야할 것 같은데, 이러면 많은 리소스가 사용될 뿐만 아니라 관리의 어려움도 있을 것 같다는 생각이 들었습니다.제가 너무 극단적인 상황을 생각을 생각하는 걸까요? 실무 레벨에서는 실제로 어떻게 관리하는지, 정말 가상화가 근본적인 해결책이 되는지 등에 대해서 궁금증이 생겨 질문 드립니다.강의 잘 보고 있습니다. 감사합니다!--- 추가적으로 프론트앤드 개발 환경에서 다양한 환경을 구성해보면서 도커를 공부해보고 싶은데요.실무에서는 이런 식으로 도커를 활용하니 이런걸 중점적으로 공부하고 구성해보세요. 하는 환경이 있다면 몇개 추천해주시면 감사드리겠습니다!
-
해결됨개발자를 위한 쉬운 도커
Git Bash Winpty 설정
첫주 환경 구축 중에 Git Bash Winpty 설정하는 부분에서 alsias가 적용되지 않았습니다. 아마 이전에 사용하던 git 설정으로 인해 해당 alias가 적용되지 않은 것 같은데, 위 부분을 넘어가도 괜찮을까요? 제가 사용하고 있는 os는 window 10을 사용하고 있고, git bash의 버전은 2.46.0입니다.
-
해결됨비전공자도 이해할 수 있는 CI/CD 입문·실전
docker stop instagram-server || true 명령어 질문
혹시 뒤에 || true라고 하였는데 이 문장의 의미는 어떤 것일까요??
-
미해결실전! GitHub Actions으로 CI/CD 시작하기
강의자료 다운
강의자료를 다운받으니까 파일이 아무것도 원래 없는걸까요?
-
해결됨비전공자도 이해할 수 있는 CI/CD 입문·실전
Amazon CloudFront 오리진 액세스 제어(OAC)로 S3 오리진 보호하기
S3에 대한 접근차단(보안성 향상)과 CloudFront에 S3 연결 방법에 대해 공유 드립니다. (OAC 방식) 과거에 CloudFront를 S3와 연결함을 위해 ①S3와 직접 연결하거나 ②OAI라는 방식으로 연결했던 것으로 보여집니다.하지만 최근(2022년말)에는 AWS의 정책이 변경되고 점차 OAC 방식이 권장 및 확대되는 것 같습니다.OAC를 사용하면 간편하게 S3의(1)"정적 웹 사이트 호스팅-비활성" ,(2)"모든 퍼블릭 액세스 차단-활성화" ,(3)"버킷 정책-모든 사용자(*) Allow 방지"가가능합니다. (물론 (1)~(3)은 수동으로 바꾸셔야 합니다. 강사님 영상을 보시면 충분히 하실 수 있습니다 🙂) OAC 방식에 대한 링크를 아래와 같이 공유드립니다! 선생님 영상을 먼저 보고 이후에 OAC방식과 (1),(2),(3)에 대한 보안성 여부를 확인하시면, S3의 보안성이 향상된 것을 경험하실 수 있습니다. Amazon CloudFront 오리진 액세스 제어(OAC)로 S3 오리진 보호하기 에 대한 링크: https://aws.amazon.com/ko/blogs/korea/amazon-cloudfront-introduces-origin-access-control-oac/
-
해결됨개발자를 위한 쉬운 도커
localhost 접속질문 입니다.
안녕하세요 좋은강의 만들어주셔서 감사합니다. 제가 섹션6. 컨테이너 애플리케이션 구성부분을 따라하고 있습니다.prstgreSQL , SpringBoot 백엔드 두개는 컨테이너 구성 및 접속이 잘됩니다.postman 으로 백엔드에 데이터를 날려보니 잘 나옵니다. 하지만 꼭 프론트엔드 접속부분에서 항상 접속이 안됩니다.frontend 컨테이너도 물론 잘실행 됩니다. docker desktop 에서 프론트 로그를 보면2024-09-12 12:30:06 2024/09/12 03:30:06 [notice] 1#1: signal 3 (SIGQUIT) received, shutting down 2024-09-12 12:30:06 2024/09/12 03:30:06 [notice] 7#7: gracefully shutting down 2024-09-12 12:30:06 2024/09/12 03:30:06 [notice] 8#8: gracefully shutting down 2024-09-12 12:30:06 2024/09/12 03:30:06 [notice] 10#10: gracefully shutting down 2024-09-12 12:30:06 2024/09/12 03:30:06 [notice] 11#11: gracefully shutting down 2024-09-12 12:30:06 2024/09/12 03:30:06 [notice] 7#7: exiting 2024-09-12 12:30:06 2024/09/12 03:30:06 [notice] 11#11: exiting 2024-09-12 12:30:06 2024/09/12 03:30:06 [notice] 8#8: exiting 2024-09-12 12:30:06 2024/09/12 03:30:06 [notice] 13#13: gracefully shutting down 2024-09-12 12:30:06 2024/09/12 03:30:06 [notice] 13#13: exiting 2024-09-12 12:30:06 2024/09/12 03:30:06 [notice] 8#8: exit 2024-09-12 12:30:06 2024/09/12 03:30:06 [notice] 12#12: gracefully shutting down 2024-09-12 12:30:06 2024/09/12 03:30:06 [notice] 14#14: gracefully shutting down 2024-09-12 12:30:06 2024/09/12 03:30:06 [notice] 13#13: exit 2024-09-12 12:30:06 2024/09/12 03:30:06 [notice] 12#12: exiting 2024-09-12 12:30:06 2024/09/12 03:30:06 [notice] 9#9: gracefully shutting down 2024-09-12 12:30:06 2024/09/12 03:30:06 [notice] 9#9: exiting 2024-09-12 12:30:06 2024/09/12 03:30:06 [notice] 12#12: exit 2024-09-12 12:30:06 2024/09/12 03:30:06 [notice] 9#9: exit 2024-09-12 12:30:06 2024/09/12 03:30:06 [notice] 10#10: exiting 2024-09-12 12:30:06 2024/09/12 03:30:06 [notice] 10#10: exit 2024-09-12 12:30:06 2024/09/12 03:30:06 [notice] 11#11: exit 2024-09-12 12:30:06 2024/09/12 03:30:06 [notice] 14#14: exiting 2024-09-12 12:30:06 2024/09/12 03:30:06 [notice] 14#14: exit 2024-09-12 12:30:06 2024/09/12 03:30:06 [notice] 7#7: exit 2024-09-12 12:30:06 2024/09/12 03:30:06 [notice] 1#1: signal 17 (SIGCHLD) received from 10 2024-09-12 12:30:06 2024/09/12 03:30:06 [notice] 1#1: worker process 10 exited with code 0 2024-09-12 12:30:06 2024/09/12 03:30:06 [notice] 1#1: worker process 12 exited with code 0 2024-09-12 12:30:06 2024/09/12 03:30:06 [notice] 1#1: signal 29 (SIGIO) received 2024-09-12 12:30:06 2024/09/12 03:30:06 [notice] 1#1: signal 17 (SIGCHLD) received from 11 2024-09-12 12:30:06 2024/09/12 03:30:06 [notice] 1#1: worker process 7 exited with code 0 2024-09-12 12:30:06 2024/09/12 03:30:06 [notice] 1#1: worker process 9 exited with code 0 2024-09-12 12:30:06 2024/09/12 03:30:06 [notice] 1#1: worker process 11 exited with code 0 2024-09-12 12:30:06 2024/09/12 03:30:06 [notice] 1#1: signal 29 (SIGIO) received 2024-09-12 12:30:06 2024/09/12 03:30:06 [notice] 1#1: signal 17 (SIGCHLD) received from 8 2024-09-12 12:30:06 2024/09/12 03:30:06 [notice] 1#1: worker process 8 exited with code 0 2024-09-12 12:30:06 2024/09/12 03:30:06 [notice] 1#1: signal 29 (SIGIO) received 2024-09-12 12:30:06 2024/09/12 03:30:06 [notice] 1#1: signal 17 (SIGCHLD) received from 14 2024-09-12 12:30:06 2024/09/12 03:30:06 [notice] 1#1: worker process 13 exited with code 0 2024-09-12 12:30:06 2024/09/12 03:30:06 [notice] 1#1: worker process 14 exited with code 0 2024-09-12 12:30:06 2024/09/12 03:30:06 [notice] 1#1: exit 2024-09-12 12:30:07 2024/09/12 03:30:07 [notice] 1#1: using the "epoll" event method 2024-09-12 12:30:07 2024/09/12 03:30:07 [notice] 1#1: nginx/1.21.4 2024-09-12 12:30:07 2024/09/12 03:30:07 [notice] 1#1: built by gcc 10.3.1 20210424 (Alpine 10.3.1_git20210424) 2024-09-12 12:30:07 2024/09/12 03:30:07 [notice] 1#1: OS: Linux 5.15.153.1-microsoft-standard-WSL2 2024-09-12 12:30:07 2024/09/12 03:30:07 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1048576:1048576 2024-09-12 12:30:07 2024/09/12 03:30:07 [notice] 1#1: start worker processes 2024-09-12 12:30:07 2024/09/12 03:30:07 [notice] 1#1: start worker process 7 2024-09-12 12:30:07 2024/09/12 03:30:07 [notice] 1#1: start worker process 8 2024-09-12 12:30:07 2024/09/12 03:30:07 [notice] 1#1: start worker process 9 2024-09-12 12:30:07 2024/09/12 03:30:07 [notice] 1#1: start worker process 10 2024-09-12 12:30:07 2024/09/12 03:30:07 [notice] 1#1: start worker process 11 2024-09-12 12:30:07 2024/09/12 03:30:07 [notice] 1#1: start worker process 12 2024-09-12 12:30:07 2024/09/12 03:30:07 [notice] 1#1: start worker process 13 2024-09-12 12:30:07 2024/09/12 03:30:07 [notice] 1#1: start worker process 14이렇게 나오는데접속 에러 로그도 안나오네요 제가 다른곳에서 80 포트를 사용중인가 싶었지만그렇지도 않습니다.혹시 제가더 살펴볼 다른곳이라도 있을까요?