묻고 답해요
156만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결누구나 이해할 수 있는 AWS를 이용한 클라우드 기초
최신 AMI 변경으로 인한 작동확인 시 세팅 변경
위와 같이 최신 Amazon Machine Image 가 변경되어 작동 확인 시 아래와 같이몇 가지 내용을 변경해서 적용해야 했습니다. 확인되시면 피드백 부탁드립니다~(^_^)⭐ 작동확인1)파이썬 버전확인 시 미설치 확인...python --version=> -bash: python: command not found2)패키지 업데이트sudo yum update -y3)파이썬3 설치 & 버전확인sudo yum install python-pip -y... 설치 완료 후 버전확인python3 --version=> Python 3.9.234)index.html 파일 생성 & 생성한 파일 확인하기=> 강의와 동일5)서버 작동python3 -m http.server 3000 참고로 저는 AWS 유료계정을 사용 중이에요. 강의 보시는 분들에게 도움되면 좋겠습니다~
-
미해결누구나 이해할 수 있는 AWS를 이용한 클라우드 기초
aws S3 강의를 듣다가 궁금해서 질문 남깁니다!!
S3는 정적 이미지 혹은 텍스트를 저장한다고 하셨는데 그러면 실제 실무에서는RDS에 테이블을 생성 (예를 들어 name, id, image, video)사용자가 이미지나 동영상을 업로드 하게 되면 S3에 저장을 하게 되고 RDS에는 S3의 주소를 저장다른 사용자가 게시글을 열람하게 되면 RDS는 S3의 주소를 리턴하여서 사용자가 비디오나 이미지를 열람하게 함 위와 같은 방식으로 개발을 하게 되는 건가요??
-
미해결누구나 이해할 수 있는 AWS를 이용한 클라우드 기초
인스턴스 유형에 강의에 해당하는 인스턴스가 없습니다.
선생님께서는 Amazon Linux 2 Kernal 5.10 AMI 2.0~~~ 인데저는 밑에 사진처럼 나와 있습니다.둘 중에 아무거나 사용해도 될 까요?
-
해결됨누구나 이해할 수 있는 AWS를 이용한 클라우드 기초
혹시 제가 이해한게 맞을까용?
public subnet의 경우에는 외부 인터넷과 바로 연결이 되고 NAT 게이트웨이를 public subnet과 연결 해서 private Subnet으로 들어오는 패킷을 public subnet을 통해서 전달되게 하는 것NAT 게이트웨이를 사용하는 이유는 실제 외부 인터넷 패킷이 private 한 공간에 들어오면 안되므로 NAT을 이용해서 외부 인터넷과 통신이 가능한 IP를 Private subnet에 제공한다.그리고 내부 서버(public subnet,private subnet)끼리는 라우팅 테이블을 이용해서 상호 간의 통신이 되게 한다.제가 이해한게 위와 맞을까요?
-
미해결주니어를 위한 6시간만에 끝내는 AWS 아키텍처
web server / 로드밸런서
web server와 로드밸런서에 대해 질문이 있습니다.아키텍처는 구성하기 나름이겠지만, 보편적으로는 web server(reverse proxy)를 가장 앞단에 두고,aws alb를 그 뒷단에 두고,그 alb 뒷단에 각 종류별 application server를 둔다고 생각하면 될까요?
-
미해결쿠버네티스 대신 도커 SWARM 사용 방법 핵심 강의
Docker Swarm과 Traefik을 활용한 MSA 아키텍처 설계 방식
안녕하세요.Docker Swarm 기반 마이크로서비스 아키텍처(MSA)를 구성 중입니다. 처음에는 Traefik을 이용해 모든 내부 마이크로서비스를 거치도록 (즉, serviceA가 serviceB를 호출할 때도 Traefik을 통해서만 통신) 운영하려고 했습니다. 그런데 그렇게 할 경우 아래와 같은 문제가 예상됩니다:성능/오버헤드모든 내부 트래픽이 Traefik을 중간에 두고 오가므로, 네트워크 홉이 추가됩니다.Keep-Alive 연결이 많아지고, Traefik이 병목이 될 가능성이 있음.복잡한 설정내부 수많은 서비스가 각각 Traefik의 라우터/서비스 규칙을 가져야 하므로 라벨 설정이 매우 복잡해질 수 있음.Path/Host 기반 라우팅 규칙도 내부 API 전부에 대해 관리해야 하므로 관리 부담 증가.인증/인가가 불필요한 내부 통신외부 노출이 전혀 필요 없는 내부 서비스 등까지도 Traefik을 거치는 것은 과도할 수 있음. 이러한 이유로, Traefik이 모든 트래픽을 일괄 처리하는 대신, 내부 통신은 Docker Swarm 로드밸런싱으로 처리하고, 외부 트래픽(HTTPS/도메인/인증서)은 Traefik에 맡기는 구조로 변경하려고 합니다. 구체적으로는,Docker Swarmservice 간에는 “user-service:8001” 식으로 연결 → Swarm 라운드 로빈Keep-Alive나 오토스케일 시 컨테이너가 늘어나면 Swarm이 자동 분산Traefik오직 외부 접근이 필요한 Gateway나 public API에 대해서만 라벨(traefik.enable=true) 적용HTTPS 인증서, Path/Host 라우팅, 미들웨어(인증/인가, IP 제한)를 외부 경계에서만 적용내부적으로는 Swarm에 맡기고, Traefik은 외부→Gateway(혹은 외부→공개 서비스)만 처리네트워크 분리“public-net”: Traefik, Gateway 등 외부 노출이 필요한 서비스“backend-net”: user-service 등 내부용 서비스만 존재, 외부와 직접 연결되지 않음궁금한 점위와 같은 구조(외부는 Traefik, 내부는 Swarm + 네트워크 분리)가 흔히 권장되는 방식인가요?내부 서비스까지 Traefik을 거치는 구조가 과연 득보다 실이 많을지, 실제 운영 사례가 궁금합니다. 보안 측면에서 “Traefik + Swarm ” 방식을 쓸 때 주의해야 할 점이나, 더 권장되는 패턴이 있으면 알려주세요!감사합니다.
-
미해결처음 시작하는 도커와 컨테이너
PostgreSQL 실습시 아래 오류 발생합니다.
1. 무엇을 하고 싶으신가요? PostgreSQL 실습시 아래 오류 발생합니다.2. 언제, 어떤 오류가 발생하시나요? 3. 어떤 시도를 해보셨나요? 4. 작성한 코드를 공유해주세요.
-
미해결처음 시작하는 도커와 컨테이너
도커를 실행하기 위해 무엇이 더 필요한가요?
1. 무엇을 하고 싶으신가요? docker run --rm -d -p 8080:80 nginx위 명령어 수행2. 언제, 어떤 오류가 발생하시나요? 아래 이미지와 같이 에러 표출 됩니다.3. 어떤 시도를 해보셨나요? 명령어 수행4. 작성한 코드를 공유해주세요. 도커를 실행하기 위해 무엇이 더 필요한가요?
-
미해결쿠버네티스 대신 도커 SWARM 사용 방법 핵심 강의
질문드립니다.
해당 부분 혹시 조인하여 확인하였습니다만\_ svc_spring2.1 virnect0073/test-spring:test-9090 node2 Shutdown이부분은 오류가 있는걸까요? traefik를 사용했어도 매니져노드에 docker container ls 라고 검색하면 결과값이 나오나요?
-
미해결쿠버네티스 대신 도커 SWARM 사용 방법 핵심 강의
도메인을 구매 안했다면
개인 로컬에 등록 하는 법도 있을까요? 서버 두대로
-
미해결쿠버네티스 대신 도커 SWARM 사용 방법 핵심 강의
404 에러
traefik.yamlservices: traefik: image: traefik ports: - target: 80 published: 80 mode: host protocol: tcp - target: 443 published: 443 mode: host protocol: tcp - 9001:9001 volumes: - /var/run/docker.sock:/var/run/docker.sock:ro - /var/log/traefik:/var/log/traefik - traefik-certificates:/certificates deploy: mode: global placement: constraints: - node.labels.traefik-public.traefik-certificates == true labels: - traefik.enable=true - traefik.docker.network=traefik-public - traefik.constraint-label=traefik-public - traefik.http.middlewares.https-redirect.redirectscheme.scheme=https - traefik.http.middlewares.https-redirect.redirectscheme.permanent=true - traefik.http.routers.traefik-public-http.rule=Host(`test.shop`) - traefik.http.routers.traefik-public-http.entrypoints=traefik-ui - traefik.http.routers.traefik-public-http.middlewares=https-redirect - traefik.http.routers.traefik-public-https.rule=Host(`test.shop`) - traefik.http.routers.traefik-public-https.entrypoints=traefik-ui - traefik.http.routers.traefik-public-https.tls=true - traefik.http.routers.traefik-public-https.service=api@internal - traefik.http.routers.traefik-public-https.tls.certresolver=le - traefik.http.routers.traefik-public-https.middlewares=admin-auth - traefik.http.services.traefik-public.loadbalancer.server.port=8080 - "traefik.http.middlewares.non-www-to-www.redirectregex.regex=^https?://(?:www\\.)?(.+)" - "traefik.http.middlewares.non-www-to-www.redirectregex.permanent=true" - "traefik.http.middlewares.non-www-to-www.redirectregex.replacement=https://www.$${1}" update_config: order: stop-first command: - --providers.swarm.network=traefik-public - --providers.swarm.constraints=Label(`traefik.constraint-label`, 'traefik-public') #v3 버전 전용 코드 - --providers.swarm.exposedbydefault=false - --providers.swarm.endpoint=unix:///var/run/docker.sock - --entrypoints.http.address=:80 - --entrypoints.https.address=:443 - --certificatesresolvers.le.acme.email=email - --certificatesresolvers.le.acme.storage=/certificates/acme.json - --certificatesresolvers.le.acme.tlschallenge=true - --accesslog.bufferingsize=100 - --accesslog.filepath=/var/log/traefik/traefik-access.log - --accesslog.fields.defaultmode=keep - --accesslog.fields.names.ClientUsername=drop - --accesslog.fields.headers.defaultmode=keep - --accesslog.fields.headers.names.User-Agent=keep - --accesslog.fields.headers.names.Authorization=drop - --accesslog.fields.headers.names.Content-Type=keep - --log - --api - --entrypoints.traefik-ui.address=:9001 networks: - "traefik-public" volumes: traefik-certificates: {} networks: traefik-public: name: traefik-public external: true app.yamlservices: flask: image: 192.168.219.114:5000/fastapi-helloworld networks: - traefik-public deploy: labels: - "traefik.enable=true" - "traefik.http.routers.flask.rule=Host(`test.shop`)" - "traefik.http.routers.flask.entrypoints=http" - "traefik.http.routers.flask.middlewares=https-redirect" - "traefik.http.routers.flask-https.rule=Host(`test.shop`)" - "traefik.http.routers.flask-https.entrypoints=https" - "traefik.http.routers.flask-https.tls=true" - "traefik.http.routers.flask-https.tls.certresolver=le" - "traefik.docker.network=traefik-public" - "traefik.constraint-label=traefik-public" - "traefik.http.services.flask-https.loadbalancer.server.port=8080" networks: traefik-public: name: traefik-public external: true stack 배포하고 test.shop 접속 시 404 에러가 발생합니다.현재 애플리케이션 컨테이너의 포트는 8080으로 설정되어있습니다.원인이 뭘까요??
-
해결됨쿠버네티스 대신 도커 SWARM 사용 방법 핵심 강의
13:00
13:00 에서 서비스의 연결 포트는 어떤 포트를 의미하는 건가요?
-
미해결처음 시작하는 도커와 컨테이너
docker compose watch가 없는 명령어로 출력됩니다.
1. 무엇을 하고 싶으신가요? [실습] docker compsoe develop - 심화 를 수강중에 있습니다. 4:46초에 입력되는 명령어 중에docker compose -f compose.yaml -f dev.compose.yaml watch 를 입력하여 빌드를 진행하는 과정에서 오류가 발생되어 해결방법을 찾고 있습니다. 2. 언제, 어떤 오류가 발생하시나요?아래와 같이 watch커맨드가 없는 것으로 출력됩니다.compose v2.20.3 이며 ubuntu 22.04 입니다. 3. 어떤 시도를 해보셨나요? chatgpt 등을 통해 검색해보았으나, 별다른 내용이 검색되지 않았습니다. 4. 작성한 코드를 공유해주세요.sudo docker compose -f compose.yaml -f dev.compose.yaml watch
-
미해결처음 시작하는 도커와 컨테이너
Bind Mount에서 마운트가 되지 않습니다. (파일/경로 동일)
1. 무엇을 하고 싶으신가요?강좌 bind mount에서 로컬과 도커 컨테이너간의 파일 또는 경로를 공유 (/usr/local/apache2/htdocs/) 를 하고자 하는데 계속 연결이 되지 않습니다. 2. 언제, 어떤 오류가 발생하시나요? [doyoung@dockers-m:/test]$ sudo docker run --rm --name httpd -p 8080:80 \> -v "$(pwd)"/index.html:/usr/local/apache2/htdocs/index.html:rw \> -d httpd:2.4a6223fce61285c77f71be99f448e28b4cdba768662030e240db12c6c3d827b55docker: Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error mounting "/test/index.html" to rootfs at "/usr/local/apache2/htdocs/index.html": mount /test/index.html:/usr/local/apache2/htdocs/index.html (via /proc/self/fd/6), flags: 0x5000: not a directory: unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type.[doyoung@dockers-m:/test]$ 3. 어떤 시도를 해보셨나요?로컬 index.html의 권한 변경 chmod 777 index.html 파일 경로 변경 /home/doyoung/~~~/~--> /test/ 4. 작성한 코드를 공유해주세요.sudo docker run --rm --name httpd -p 8080:80 \-v "$(pwd)"/index.html:/usr/local/apache2/htdocs/index.html:rw \-d httpd:2.4
-
해결됨처음 시작하는 도커와 컨테이너
깃허브 액션에서 deploy가 실패해요
1. 무엇을 하고 싶으신가요? 2. 언제, 어떤 오류가 발생하시나요? 3. 어떤 시도를 해보셨나요? 동일하게 파일을 넣고 simple-cicd를 넣고 실행시키는데 도커 배포에서 실패합니다.err: #0 building with "default" instance using docker driver23err: #1 [internal] load build definition from Dockerfile24err: #1 transferring dockerfile: 2B done25err: #1 DONE 0.0s26err: ERROR: failed to solve: failed to read dockerfile: open Dockerfile: no such file or directory27err: Error response from daemon: No such container: 84337131928err: Unable to find image 'cokeholic-kim/docker-cicd-test:latest' locally29err: docker: Error response from daemon: pull access denied for cokeholic-kim/docker-cicd-test, repository does not exist or may require 'docker login': denied: requested access to the resource is denied.30err: See 'docker run --help'. 위의 배포파일을 서버로 복사하는부분은 잘 실행되었는지 똑같이 터미널에서 ls로 확인했을때 폴더와 파일은 잘 옮겨져있는데 docker배포부분에서 실패하는것같습니다.4. 작성한 코드를 공유해주세요.
-
미해결처음 만난 AWS
미니프로젝트
미니프로젝트 관련 질문인데 혹시 파일을 업로드하면 밑에란에 업로드가 되고있는 과정이 그림으로 보여줘야하는데 보여지지 않고 upload 파일에만 떠잇네요
-
해결됨처음 시작하는 도커와 컨테이너
logs 폴더가 없는 것 같습니다.
강사님 안녕하세요,git에 container.commandlogs폴더가 없는 것 같습니다 ㅠ
-
미해결처음 만난 AWS
작동테스트 시, 새로운 인스턴스 생성이 안됩니다
이렇게 auto scaling을 생성하여,ec2인스턴스 생성된 것 확인했고 그 인스턴스 pulic ipv4주소로 워드프레스 블로그 접속되는 것 까지 모두 확인했습니다모니터링에서 99%까지 cpu구동되는것 확인했습니다로드밸런서, 오토스케일링 구성은 강의와 완전히 동일하게 구성했습니다그러나, 새로운 인스턴스 생성이 안됩니다cpu stress 8까지 주고 20분을 기다려도 생성이 안됩니다추가적으로 더 확인하거나 조치할 수 있는 방법이 있을까요?
-
미해결처음 만난 AWS
강의 질문있는데요 S3버킷 정책관련입니다!
'퍼블릭 액세스 차단(버킷 설정)' 이것을 허용해야지만 버킷 정책이 허용되나요?? 꼭 두가지를 같이해야만 할까요? 두가지의 차이가 뭔지 잘 모르겠습니다...
-
미해결처음 만난 AWS
강의 RDS 정상 작동 테스트 관련
모든 인스턴스를 삭제 후 생성되기까지 기다렸는데 이와 같은 에러가 발생하면서 로드밸런스의 dns주소에 접속할 수 없다는 알람이 나왔습니다(gateway 502에러, Error establishing a database connection)하라는데로 똑같이 했는데 무엇이 문제였을까요? 전부지우고 처음부터 다시 하였는데 ec2 인스턴스가 삭제후 2개 생겼는데 한개만 생기고 로드밸런스에서 대상 그룹을 변경해주니 접속이 되더라구요 자동으로 대상그룹이 반영이 안될까요? ec2 인스턴스는 왜 1개만 생성되는걸까요...