묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨개발자를 위한 쉬운 도커
nginx port 질문입니다
4분 58초 쯤에 nginx는 80 포트를 사용한다고 말씀하셨는데, 기본적으로 nginx는 80 포트를 사용하는건가요?docker container inspect 시에 portBindings 앞의 80/tcp 중 80이 포트를 의미하는지도 궁금합니다
-
미해결쥬쥬와 함께 하루만에 끝내는 스프링 테스트
강의를 수강하면서 2가지 질문이 생겼습니다
안녕하세요 쥬쥬님의 강의를 보면서 테스트 코드 작성에 도움을 많이 받고 있습니다. 감사합니다. 질문이 있어서 글을 올려드립니다. 질문1.application.yml 에서 mysql, redis, kafka 의 호스트를 컨테이너 이름으로 지정해주면 굳이 IntegrationTestInitializer 정적 클래스의 initialize() 메서드를 구현해 동적으로 호스트와 아이피를 지정할 필요가 없을 것이라고 생각했습니다. 왜 application.yml 에서 각 모듈의 호스트를 localhost 로 지정해주셨는지 여쭤보고 싶습니다. 질문2.redis, kafka 에 특화된 테스트 컨테이너 모듈을 사용하셨는데, 이러한 모듈을 사용하지 않고 그냥 testImplementation "org.testcontainers:testcontainers:1.19.0" 만을 사용해서 테스트 컨테이너를 구동시켜 테스트해도 되는지 여쭤보고 싶습니다. 예를 들어 이런 식으로 입니다. 질문 읽어주셔서 감사합니다.
-
미해결비전공자도 이해할 수 있는 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
-
해결됨Do It! 장고+부트스트랩: 파이썬 웹개발의 정석
url pattern관련 문의
안녕하세요. urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) 이런식으로 url패턴을 만들어주면 이렇게 (^media/(?P<path>.*)$)패턴이 생기는거 같고 그 다음 views.py에서 해당 url을 처리할 로직을 만들어야하는걸로 아는데.. 이 경우는 어째서 예외인가요?
-
해결됨개발자를 위한 쉬운 도커
이미지빌드 실습 질문
데이터베이스, 백엔드, 프론트 실습에서 컨테이너 실행 실습과 도커파일 이미지 빌드 실습 두개를 하는데 컨테이너 실행 실습은 커밋 방식을 통해 이미지를 만드는 방법인건가요? 두 실습의 연관이 무엇인지 모르겠어요 ㅠㅠ
-
해결됨입문자를 위한 Spring Boot with Kotlin - 나만의 포트폴리오 사이트 만들기
환경변수 설정을 yml 아니라 properties로 해도 상관 없나요?
yml과 properties의 차이가 계층구조 표현의 차이만 있는거 같은데 properties로 적용해서 강의를 진행하여도 상관이 없나요?
-
미해결대세는 쿠버네티스 [초급~중급]
Authentication - 실습 > 5분 3초 > Cluster B가 어딨나요?
5분 3초에 보면 2-2 cluster B(192.168.0.50)이 어디에 있을까요? 여지껏 계속 192.168.0.30만 실습 진행해 왔는데 갑자기 *.50을 cluster B로 지정을 해서요...
-
미해결실무에 바로 적용하는 AWS 배포
2.6 Auto Scaling Group 실습
안녕하세요.2.6 Auto Scaling Group 실습에서 구성한 launch template는 특정한 Web 서비스가 없는 그냥 EC2만 만들고 Scaling 되는 것만 확인한것인가요?직전 실습에서 사용한 Nginx가 설치된 EC2를 Auto Scaling Group으로 구성하려면 어떻게 해야할까요?확인 부탁드립니다.감사합니다.
-
미해결실무에 바로 적용하는 AWS 배포
2.6 Auto Scaling 실습 질문
안녕하세요~2.6강 Auto Scaling 실습에서 만든 launch template는 직전 실습에 사용했던 Nginx 웹서비스가 동작하던 EC2랑은 별개의 인스턴스로 동작하는 건가요?launch template에 웹서비스 없이 그냥 시간에 맞춰서 Scaling-Out 되는 확인만 하는것이 맞는지요?만약 처음 Nginx 웹서버를 설치한 EC2인스턴스에 Auto Scaling을 적용한다면 어떻게 해야하는 건가요?확인 부탁드립니다.감사합니다.
-
해결됨실전도커: 도커로 나만의 딥러닝 클라우드 컴퓨터 만들기
7-3 python을 위한 도커 강의에서 질문드립니다.
vscode에 select kernel을 누르면 아무 kernel도 뜨지 않습니다. 강의에는 Python Environments... 이 뜹니다.
-
해결됨실전도커: 도커로 나만의 딥러닝 클라우드 컴퓨터 만들기
kaggle gpu images 설치시 Error가 발생합니다.
kaggle gpu images 설치시 Error가 발생합니다. docker login -u username으로 login 후에도 동일하게 안됩니다.Error response from daemon: pull access denied for kaggle-gpu-images, repository does not exist or may require 'docker login': denied: requested access to the resource is denied
-
해결됨개발자를 위한 쉬운 도커
docker push 중 경고
안녕하세요, 강의를 열심히 수강 중인 학생입니다. (실습을 진행 중인 환경은 맥입니다.)docker push 중에 선생님과 다른 결과창이 떠서 궁금한게 생겨 질문남깁니다. 메세지 내용을 정확하게 이해할 수 없어 챗지피티한테 먼저 물어봤습니다. 지피티한테 답변을 받은 이후에 생긴 궁금증들 입니다. 레이어가 마운트되고 있다는게 정확하게 무슨 의민가요? 우선 레이어도 무엇을 지칭하는지 모르겠습니다만ㅠ 현재 실습상황에서는 docker images 명령어를 통해 image를 확인해보면, 이렇게 나와있습니다. 원본 이미지(devwikirepo/simple-web)가 이미 존재하고 그에 대한 사본(sjin980530/simple-web)이 존재하기에 이런 경우가 발생하는건가요? 그럼 지금 진행하고 있는 실습은 push를 docker hub에 하고있는건데, 로컬의 상황과는 관계없는게 아닌가요?ㅠㅠ현재 푸시된 이미지가 단일 플랫폼 이미지라는 말은 그럼 제 실습환경(mac)이 아닌 다른 환경(윈도우 등)에서는 사용하지 못하는 이미지라는 뜻인가요?1과 이어지는 질문입니다 원래 레이어와 푸시된 레이어의 다이제스트가 매핑되고있다라고 하는데, 이건 어떻게 이해하면 될까요? 레이어에 대한 지식이 없어 어떤 상황인지 감이 잘 안잡힙니다. 항상 감사드립니다.
-
해결됨그림으로 배우는 쿠버네티스(v1.30) - {{ x86-64, arm64 }}
A.0003 파일 vagrant file 수정 (자문자답)
A.0003 파일 vagrant file 을 올리는 중에 Centos7 이 EOS로 인한 에러가 출력 됬습니다...기존 repo에서 신규 repo 파일로 수정 및 쿠버네티스 repo 또한 변경을 위해 k8s_env_build 파일을 하기와 같이 수정하였습니다.========================추가 구문=======================#기존 레포 Backup 및 신규 repo 등록 후 updatecp -arp /etc/yum.repos.d/CentOs-Base.repo /tmp/Repo_Backupecho "[base]name=CentOS-$releasever - Base#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infrabaseurl=https://vault.centos.org/7.9.2009/os/x86_64/gpgcheck=1gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7#released updates[updates]name=CentOS-$releasever - Updates#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infrabaseurl=https://vault.centos.org/7.9.2009/updates/x86_64/gpgcheck=1gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7#additional packages that may be useful[extras]name=CentOS-$releasever - Extras#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infrabaseurl=https://vault.centos.org/7.9.2009/extras/x86_64/gpgcheck=1gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7#additional packages that extend functionality of existing packages[centosplus]name=CentOS-$releasever - Plus#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infrabaseurl=https://vault.centos.org/7.9.2009/centosplus/x86_64/gpgcheck=1enabled=0gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7#contrib - packages by Centos Users[contrib]name=CentOS-$releasever - Contrib#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib&infra=$infrabaseurl=https://vault.centos.org/7.9.2009/contrib/x86_64/gpgcheck=1enabled=0gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7" >> /etc/yum.repos.d/CentOS-Base.repoyum clean allyum makecacheyum -y update======================================================== ===========================수정 구문 =======================# kubernetes repogg_pkg="packages.cloud.google.com/yum/doc" # Due to shorten addr for keycat <<EOF > /etc/yum.repos.d/kubernetes.repo[kubernetes]name=Kubernetesbaseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/enabled=1gpgcheck=1repo_gpgcheck=1gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpgEOF=========================================================로 수정하면 해결 되는거 같습니다! 저 처럼 문제를 겪는 분들은 해당 파일로 수정 후 진행하면 될거 같습니다! 혹시 문제가 발생 할 수 있다면 답변 부탁드립니다!
-
해결됨AWS 배포 완벽가이드 (feat. Lightsail, Docker, ECS)
실습시 비용 관련 질문드립니다.
안녕하세요.이번 강의를 통해서 매우 많은 도움을 받고 있어서 먼저 감사하다는 말씀을 드립니다. 비용 관련해서 제가 관리를 잘 못하는 부분이 있어보여서요 이전 다른 분들의 답글에 남겨주셨듯이 이번 기회에 배워보려고 합니다. 먼저 비용이 아래와 같이 나왔습니다. ECS 관련 비용 질문먼저 ECS는 Serverless 개념으로 사용한만큼 비용을 지불한다고 알고 있는데요AWS Fargate 비용의 사용시간이 각각 288.405hours, 144.203 hours입니다. 아래에서 확인해보니 이미지를 다운로드한 시점부터 ecs task가 종료될 때까지 사용된 vCpu, 메모리 등등을 고려하여 산출된다고 하는데요... https://aws.amazon.com/ko/fargate/pricing/ 그렇다면 aws fargate로 청구된 저 요금은 실제 사용과 상관 없이 deploy된 상태라면 발생하는 일정의 고정비라고 보면 되는 것인가요? 그러면 실제로 사용한만큼 지불하는 비용은 어떤 카테고리에 포함될까요? VPC 관련 질문0.005 per idle public IPv4 address per hour--> 이건 탄력적 ip 비용으로 보는 것이 맞을까요? 삭제를 안해두고 있었네요 ㅠㅠ 이번 기회를 통해서 ECS 관련 비용 관리하는 방법을 배워가고 싶습니다. 도움 주시면 정말 감사드리겠습니다.
-
해결됨입문자를 위한 Spring Boot with Kotlin - 나만의 포트폴리오 사이트 만들기
git 사용 오류 질문 드립니다
강의 내용대로 진행 후 commit 창과 git 창을 열었을 때 제가 이전에 작업했던 파일들 (D: 루트 디렉토리 안에 있는 이전에 git에 업로드한 적 있는 모든 파일들)이 함께 보입니다파일 경로를 모두 열어보면 선택해서 진행할 수는 있지만 해당 프로젝트의 git 시작 디렉토리가 제대로 설정되지 않은 것 같아 어떻게 해결하는지 질문 드립니다
-
해결됨비전공자도 이해할 수 있는 CI/CD 입문·실전
Github Actions
안녕하세요 . ㅎㅎ 강의 잘 보고있습니다.Jenkins 와 Github Action 비교를 해주셨는데요.Github Actions 도 많이 사용하지만 Jenkins 도 많이 사용하더라고요 gpt 로 검색을 해보니까 Plugin 이 Jenkins 가 더 좋다고 하는데 강사님은 어떻게 생각하시나요 ?
-
해결됨비전공자도 이해할 수 있는 CI/CD 입문·실전
탄력적 IP
말씀하신것처럼 만약에 Frontend 를 Ec2 에 배포했을때 탄력적 IP 가 없다면 불편할것 같습니다. 하지만 강의 초반에 말씀하셨던것처럼 Frontend 배포할때 S3 로 배포할수있을것 같습니다. 이럴경우에 Backend 입장에서 S3 로 배포된 Frontend 만 인바운드 규칙으로 열어주려면 어떻게 해야할까요 ?
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
인바운드 보안 그룹 규칙
안녕하세요. 항상 감사합니다. 다름아니라 프론트엔드 개발자(ionic+react+typescript)님과 처음 협업을 하는데요!(레포지토리가 fe, be 따로 존재합니다.)api를 개발해서 전달해드려야 하는데 프론트엔드 개발자님께서 springboot를 로컬에서 실행하시기 어려우실것 같아 제가 일단 배포를 하여 전달드리려고 합니다.(EC2에서 Docker를 활용한 배포 방법을 사용하려합니다.)질문: 1. 이때 ec2 인바운드 보안 그룹 규칙은 ssh, http(80)만 해주면 될까요? tcp(프론트엔드 개발자님의 포트(아마도 8100번))또한 추가해야 하는 부분일까요?2. Nginx, Certbot를 활용해 리버스 프록시를 설정한다면 해당 포트번호도 ec2 인바운드 보안 그룹에 tcp로 추가해야 할까요?3. 백엔드 개발자는 프론트엔드 개발자에게 api를 제공할때 위에 말씀드린 방식으로 진행하는지 여쭙고 싶습니다. 경험이 부족하여 질문이 이상할 수 있는점 양해바랍니다.감사합니다.+추가)일단 docker compose로 ec2에서 빌드까지 했는데요.보안그룹을 모든tcp 0.0.0.0에서 하니깐 잘 돌아갑니다. 하지만 모든tcp를 제거하고 http 80과 https 433을 추가하면 "ERR_CONNECTION_REFUSED"라고 하고 접근이 안되네요. 여기서 http 8080을 추가하면 또 잘되네요. 프로젝트를 할때 모든 tcp로 하면 안된다고 하셨는데 안전하게 프로젝트를 할 수 있는 방법을 여쭙고 싶습니다.
-
미해결AWS로 구축하는 MSA와 컨테이너 오케스트레이션
lamda node.js 16 버전
현재는 node.js 18버전이 가장 구버전인 버전이라 현재 테스트는 불가능한건가요? 따라해봤는데 안돼서요
-
해결됨비전공자도 이해할 수 있는 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로 전송하지 않고 굳이 임시 디렉토리를 두는 이유가 궁금합니다.