묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
왜안될까요
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
MySQL 창이안ㄴ뜹니다
연결했는데왜 화면처럼 창이안뜨죠sql 입력하는창이안떠요
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
포스트맨
포스트맨 깔았는데왜 이거 실행하면 안켜질까요..?
-
미해결AWS Certified Cloud Practitioner 자격증 준비하기
(AWS Certified Cloud Practitioner자격증 준비하기 )의 학습 기간 연장 부탁 드립니다~
안녕하세요.진도를 많이 못 나갔는데요..어느덧 오늘이 마지막 날이네요.(AWS Certified Cloud Practitioner자격증 준비하기 )의 학습 기간 연장 좀 부탁 드립니다. 감사합니다.
-
미해결스프링 부트와 리액트로 구현하는 보안 JWT 로그인
로그인구현
로그인구현 직접하는줄 알고 결재했는데 직접구현하는 강의가 없는건지 제가 못찾은건지바로 서버 생성하고 배포하는걸 보여주시는데 직접구현하는거는 어디서봐야할까요?다른강의일까요?
-
미해결비전공자도 이해할 수 있는 Nginx 입문/실전
default.conf
안녕하십니까 선생님,35번 강의에서 /etc/nginx/conf.d/default.conf 이 경로에 default.conf 파일이 존재하지 않습니다.Certbot, HTTPS 인증서는 모두 정상적으로 받았습니다. 강의 놓친 부분은 없는데 어디서 문제인 지 모르겠습니다..
-
미해결프론트 개발자를 위한 백엔드 101 (NestJS, TypeORM)
db연결이 다되었는데 tables에 posts 테이블이 안생겨요
초반 dmg로 다운받을때도 , 다운받고 뭐 초기셋팅 진행해서 해당 로그처럼 서버 데이터 베이스 선택하는거 psql에 없었는데, 명령어 찾아서 아이디 만들고 권한주고 db만들고 꾸역꾸역해서 jdbc 연결했더니 테이블안생김.. ㅈㄴ 스트레스받음. 노션에 있는거 긁어서 그대로 해서 틀린거없음 커서에서 검증도함 대체 원인을 모르겟
-
미해결AWS Certified Cloud Practitioner 자격증 준비하기
시험예약 CLF-C02,SAA-C03
안녕하세요, 해당 강의 수강자 입니다.내일 시험을 앞두고있어 시험 일정을 예약하는 중인데,저희 강의에서 수업해주시는 내용은 CLF-C02인가요 SAA-C03 인가요?강의 명은 AWS Certified Cloud Practitioner 으로 확인 되는데,마지막 강의에서는 강사님께서 CLF-C02로 예약을 하셔서요.확인 부탁드리겠습니다.감사합니다.
-
미해결AWS Certified Solutions Architect - Associate 자격증 준비하기
Aws csaa 자격증 강의 만료 연장 요청드려봅니다
AWS Certified Solutions Architect - Associate 자격증 준비하기 수강연장 요청드려봅니다. 실제로 수강시간이 2시간도 안되는 상황으로 거의 안들은 상황인데 1월까지 만료라 연장요청드려보겠습니다. 따로 이메일 문의나 쪽지 등 강사님 1대1 문의가 없어서 질문 남겨봅니다.연장시 몇개월 연장될까요?
-
미해결[DevOps] 빠르고 안전한 어플리케이션 배포 파이프라인(CI/CD) 만들기
cosign tlog 관련 409에러
1. 무엇을 하고 싶으신가요?cosign sign을 통한 이미지 스캔을 하고 싶은데 단순히 이미지 재빌드하고 푸시하면 해결될 것이라고 생각하는데 그러지 않고 해결할 수 있는 방법을 찾고 싶습니다. 2. 언제, 어떤 오류가 발생하시나요? cosign에서 맨처음에 태그 기반으로 사이닝을 진행(최초 --tlog-upload=false 옵션 없이 이때 따로 진행할거냐는 경고 없이 바로 사이닝 진행 , 이후 --tlog-upload=false 옵션과 함께 진행하였지만 이미 사인되어있다는 메시지 그리고 ECR을 확인해보니 레포지토리에 서명 결과가 푸시된 것을 확인) , 이후 서명 결과를 ECR에서 삭제하고 다이제스트 기반으로 sign 명령을 내려도 계속 409 에러가 발생합니다. 3. 어떤 시도를 해보셨나요? 4. 작성한 코드를 공유해주세요.cosign sign --tlog-upload=false \ --key awskms:///REDACTED-KMS-KEY-ID \ <AWS_ACCOUNT_ID>.dkr.ecr.<REGION>.amazonaws.com/<REPO>@$( docker buildx imagetools inspect \ <AWS_ACCOUNT_ID>.dkr.ecr.<REGION>.amazonaws.com/<REPO>:latest \ --format "{{json .Manifest}}" | jq -r ".digest" ) Error: signing [<AWS_ACCOUNT_ID>.dkr.ecr.<REGION>.amazonaws.com/<REPO>@sha256:<DIGEST>]: signing digest: signing bundle: [POST /api/v1/log/entries][409] createLogEntryConflict {"code":409,"message":"an equivalent entry already exists in the transparency log with UUID <REDACTED>"}
-
미해결AWS Certified Cloud Practitioner 자격증 준비하기
문제풀이4 40번, 문제풀이10 6번 질문드립니다.
문제풀이4 40번에서는 비용탐색기가 향후 사용량 예측이 가능하다고 해주셨는데, 문제풀이10 6번에서는 비용탐색기가 향후 사용량 예측 및 예측 서비스가 아니라고 해주셔서요. 설명 부탁드립니다.
-
해결됨실무에서 꼭 필요한 서버 모니터링(Zabbix)
강의 소리가 너무 작습니다
강사분의 목소리가 너무 작아서 헤드셋, 이어폰을 착용하여도 평소 소리의 4배 이상을 키워야 소근거리는 수준으로 들립니다. 강사분의 목소리에 맞추어 음량을 늘릴 경우 강의 중 라인 메신저 수신 소리가 너무 커서 귀가 아픕니다. 그렇다고 플레이어에는 음량 증폭설정 또한 할 수 없어서 불편하네요...
-
미해결실무에 바로 적용하는 AWS 배포
2.3 Elastic Load Balancer ↔️ EC2
안녕하세요 강사님! 강의 잘 듣고 있습니다.ELB를 사용하면 웹 트래픽은 모두 ELB에서 받아서 Private Subnet의 EC2로 전달하는 구조가 보안적으로 더 안전하다고 알고 있습니다.그래서 강의 내용을 따라가면서, EC2를 Public Subnet에 두는 이유가 무엇인지 궁금해졌습니다.제가 이해한 바로는 아래 두 가지 때문이라고 판단했는데, 맞는지 확인 부탁드립니다.Private Subnet은 인터넷 직접 접속이 안 되어 apt update, 패키지 설치 등을 하려면 NAT Gateway가 필요한데,NAT Gateway는 비용이 발생해 초보자 실습에서는 과도한 비용이 된다.Public Subnet의 EC2는 인터넷에 직접 접속할 수 있어 패키지 설치나 초기 설정(nginx 설치, 코드 배포 등)이 훨씬 단순해진다.즉, 보안적으로는 Private Subnet 배치가 더 적절하지만,학습 난이도와 비용 문제 때문에 Public Subnet을 사용하는 것이라고 이해했습니다.제가 이해한 내용이 맞을까요?그리고 실무에서는 보통 말씀드린 것처럼 ELB는 Public Subnet, EC2는 Private Subnet 구조로 구성하는 것이 일반적인지도 궁금합니다.
-
미해결AWS Certified Solutions Architect - Associate 자격증 준비하기
aws certified solutions specialty 강의 문의
안녕하세요, 강의를 잘 보며 aws 학습을 하고 있는 수강생입니다.선생님께서 운영하고 계신 aws 자격증 강의 시리즈 중 specialty 강의가 있었던 것으로 나와있는데, 배포가 중단되었다고 합니다수강을 하고 싶은데 배포 중단하신 이유가 있으신가요? 또한, 나중에 다시 운영하실 계획이 있으신지 문의드립니다좋은 하루 되세요. 감사합니다.
-
미해결비전공자도 이해할 수 있는 AWS 입문/실전
RDS 파라미터를 만들었는데 추가구성 데이터 옵션에 토글 버튼에 해당 그룹이 안나옵니다. 어떻게 해야하나요?
파라미터를 만들었는데 추가구성 데이터 옵션에 토글 버튼에 해당 그룹이 안나옵니다. 어떻게 해야하나요?
-
미해결쉽게 설명하는 AWS 기초 강의
문제)커리큘럼 동일한 영상 업로드
175, 176 같은 영상이 업로드 된 것 같아요 확인부탁드려요 ~
-
미해결비전공자도 이해할 수 있는 AWS 입문/실전
RDS 엔트포인트 내부 엔드 포인트로 설정하는 법이 있을까요?
강의에서는 RDS 엔트포인트가 public이라고 생각됩니다내부에서 빠른 속도를 위해 RDS 엔트포인트 private 엔드 포인트로 설정하는 법이 있을까요?
-
미해결비전공자도 이해할 수 있는 AWS 입문/실전
보안그룹질문입니다.
로드밸런서용 보안그룹랑 EC2용 보안그룹 인바운드 규칙을 0.0.0.0/0이렇게 두니까 불안해서 혹시 아래처럼 설정하는것 맞자요?ec2에서 보안그룹을 아래처럼 냅두면 https로 접속이 안되는데요. 근데 0.0.0.0/0으로 풀어놓으면 됩니다. 어떻게 해야하나요?ec2에서 ssh를 내 ip로 등록하니까 크롬 aws 에서 접속인안되는데 어떻게 해야하나요? 0.0.0.0/0으로 풀어놓으면 됩니다. 요즘 gpt가 할루시네이션 많이 나와서 여쭤봅니다. 요즘 존댓말로 바꾸라고 하면 내용을 다른 내용으로 바꾸는 경우가 있어서 그대로 질문드립니다. 가장 많이 쓰는 패턴은:로드밸런서용 보안그룹 (LB-SG)인터넷에서 LB까지만 열어둠.EC2용 보안그룹 (EC2-SG)외부는 막고, LB-SG에서만 접속 허용.SSH는 필요하면 내 IP에서만 열기.즉,인터넷 → [LB-SG] → 로드밸런서 → [EC2-SG] → EC2 인스턴스이 구조로 흘러가게 만드는 거야.2. 로드밸런서 보안그룹 설정 (LB-SG)사진에 있는 규칙은 사실상 로드밸런서 보안그룹에 붙이는 게 맞음 (단, SSH는 필요 없음).인바운드 예시 (ALB/NLB 공통)유형프로토콜포트소스HTTPTCP800.0.0.0/0HTTPSTCP4430.0.0.0/0SSH(22)는 로드밸런서에는 절대 필요 없음, 빼는 게 정답.아웃바운드는 기본 모든 트래픽 / 0.0.0.0/0 그대로 둬도 무방.콘솔에서 적용 방법EC2 콘솔 → 왼쪽 메뉴 보안그룹 → 보안 그룹 생성이름: lb-sg 같은 걸로.인바운드 규칙에 위 표대로 추가.로드밸런서 선택 → 보안 → 보안 그룹 편집 → 방금 만든 lb-sg 선택.3. EC2 인스턴스 보안그룹 설정 (EC2-SG)EC2는 직접 인터넷에 안 열고, 로드밸런서 보안그룹에서만 열어주는 게 포인트.인바운드 예시유형프로토콜포트소스HTTPTCP80LB-SG (보안 그룹 선택)HTTPS (필요 시)TCP443LB-SGSSHTCP22내 IP주소/32 (예: 123.123.123.123/32)여기서 중요한 건 소스를0.0.0.0/0가 아니라“보안 그룹” → lb-sg 선택으로 설정하는 거야.콘솔에서 적용 방법EC2 콘솔 → 보안그룹 생성 → 이름 ec2-sg인바운드 규칙에 위 표대로 추가HTTP/HTTPS 규칙 추가할 때 소스 타입을 “사용자 지정” 말고 “보안 그룹”으로 바꾸고 lb-sg 선택EC2 인스턴스 선택 → 작업 → 보안 → 보안 그룹 변경 → ec2-sg 붙이기(기존에 0.0.0.0/0 열려있는 보안그룹 있으면 떼버려도 됨).
-
미해결[DevOps] 빠르고 안전한 어플리케이션 배포 파이프라인(CI/CD) 만들기
gitleaks 시크릿 스캔의 기준에 대한 질문입니다.
1. 무엇을 하고 싶으신가요? gitleaks가 secret을 판별하는 기준에 대해서, 또 지금 현 상황에 대한 이유가 궁금합니다. 2. 언제, 어떤 오류가 발생하시나요?from flask import Flask app = Flask(__name__) @app.route("/") def hello_world(): return "AROAWU22AXDEPO3JX44FD" @app.route("/rextest") def rextest(): return "REXTEST_PATH" if __name__ == "__main__": app.run( host="0.0.0.0", port=8080, debug=True, ) app.py 코드를 위처럼 작성해서 MR을 날릴 경우, 파이프라인에서 gitleaks에 시크릿 값(AWS 예제)가 스캔되지 않습니다. 때문에 build job까지 문제 없이 실행이 됩니다. 3. 어떤 시도를 해보셨나요?로컬 환경에서 강사님 코드를 pull 하고 tools 디렉토리의 gitleaks 디렉토리에서 gitleaks detect -v --no-git 명령을 수행해도 디스코드 예제와 깃랩 예제 2 종류만 스캔될 뿐 AWS 예제는 스캔되지 않습니다. 그래서 app.py 파일에 디스코드 예제를 넣어서 파이프라인을 실행할 경우, 정상적으로 gitleaks에서 시크릿이 스캔되어 job이 실패합니다. 이러한 경우, 코드 문제가 아니라 gitleaks에 대한 문제라고 생각이 드는데, 강의 영상에서는 AWS 예제가 스캔되어 job이 실패되고 저는 정상적으로 실행되는 이유가 궁금합니다. 4. 작성한 코드를 공유해주세요.stages: - gitleaks - build - deploy default: image: name: bentolor/docker-dind-awscli id_tokens: GITLAB_OIDC_TOKEN: aud: https://gitlab.com variables: AWS_DEFAULT_REGION: ap-northeast-2 IMAGE: ${CI_PROJECT_NAME}:latest REMOTE_LATEST_IMAGE: ${AWS_ECR_REPO_URL}:latest REMOTE_REGULAR_IMAGE: ${AWS_ECR_REPO_URL}:${CI_COMMIT_SHORT_SHA} .get_aws_role: &get_aws_role - > export $(printf "AWS_ACCESS_KEY_ID=%s AWS_SECRET_ACCESS_KEY=%s AWS_SESSION_TOKEN=%s" $(aws sts assume-role-with-web-identity --role-arn ${AWS_ROLE_ARN} --role-session-name "GitLabRunner-${CI_PROJECT_ID}-${CI_PIPELINE_ID}" --web-identity-token ${GITLAB_OIDC_TOKEN} --duration-seconds 3600 --query 'Credentials.[AccessKeyId,SecretAccessKey,SessionToken]' --output text)) .get_ecr_token: &get_ecr_token - *get_aws_role - aws ecr get-login-password --region ap-northeast-1 | docker login --username AWS --password-stdin ${AWS_ECR_REPO_URL} gitleaks: stage: gitleaks image: name: zricethezav/gitleaks:latest entrypoint: [""] script: - gitleaks detect -v --no-git --redact --report-format json rules: - if: $CI_PIPELINE_SOURCE == "merge_request_event" changes: paths: - app.py - Dockerfile - requirements.txt build-container-image: stage: build services: - name: docker:dind before_script: - *get_ecr_token script: - docker build -t ${IMAGE} . - docker tag ${IMAGE} ${REMOTE_LATEST_IMAGE} - docker push ${REMOTE_LATEST_IMAGE} - docker tag ${IMAGE} ${REMOTE_REGULAR_IMAGE} - docker push ${REMOTE_REGULAR_IMAGE} rules: - if: $CI_PIPELINE_SOURCE == "merge_request_event" changes: paths: - app.py - Dockerfile - requirements.txt deploy: stage: deploy image: registry.gitlab.com/gitlab-org/cloud-deploy/aws-base:latest before_script: *get_aws_role variables: AWS_DEFAULT_REGION: ap-northeast-1 script: - | export SERVICE_NAME="${CI_PROJECT_NAME}-service" export AR_SERVICE_NAME=$(aws apprunner list-services --query "ServiceSummaryList[?ServiceName=='${SERVICE_NAME}'].ServiceName | [0]" --output text) # AppRunner에 해당 레포의 매핑되는 서비스가 없는 경우 if [ ${AR_SERVICE_NAME} != ${SERVICE_NAME} ]; then export AR_SERVICE_ARN=$(aws apprunner create-service --service-name "${SERVICE_NAME}" --source-configuration "{\"AuthenticationConfiguration\": {\"AccessRoleArn\": \"${AWS_APP_RUNNER_SERVICE_ROLE_ARN}\"}, \"ImageRepository\": {\"ImageIdentifier\": \"${REMOTE_LATEST_IMAGE}\", \"ImageRepositoryType\": \"ECR\"}}" --instance-configuration 'Cpu="0.25 vCPU",Memory="0.5 GB"' --output text --query "Service.ServiceArn") echo "[+] Creating ${AR_SERVICE_ARN}" # AppRunner 서비스가 존재하는 경우 else export AR_SERVICE_ARN=$(aws apprunner list-services --query "ServiceSummaryList[?ServiceName=='${SERVICE_NAME}'].ServiceArn | [0]" --output text) aws apprunner start-deployment --service-arn ${AR_SERVICE_ARN} echo "[+] Deploying ${AR_SERVICE_ARN}" fi export AR_SERVICE_STATUS=$(aws apprunner describe-service --service-arn ${AR_SERVICE_ARN} --output text --query "Service.Status") while [ ${AR_SERVICE_STATUS} != "RUNNING" ]; do echo "[*] Waiting..." sleep 10 export AR_SERVICE_STATUS=$(aws apprunner describe-service --service-arn ${AR_SERVICE_ARN} --output text --query "Service.Status") if [ ${AR_SERVICE_STATUS} = "CREATE_FAILED" ]; then echo "[-] ${AR_SERVICE_ARN} ${AR_SERVICE_STATUS}" exit 1 fi done echo "[+] ${AR_SERVICE_ARN} deployed!" rules: - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH changes: paths: - app.py - Dockerfile - requirements.txt
-
미해결
read replica가 다운되면 어떻게 되나요?
강의에서 read replica db가 읽기 전용 트래픽을 받고, 마스터 db와 스탠바이 db를 따로 두어서 마스터 db가 위치한 가용영역에 장애가 발생하면 스탠바이를 사용하게 된다고 설명해주셨는데요.만약 read replica db가 있는 영역 전체가 다운돼서 해당 DB를 사용 못하게 되면 트래픽 이동이 어떻게 되나요?