묻고 답해요
138만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨쉽게 설명하는 AWS 기초 강의
wordpress 실습 강의에서 efs 생성 시 서브넷을 default 서브넷으로 구성한 이유가 있나요?
800명이 넘는 AWS 강의실 오픈채팅방에 오시면 더 좋은 답변을 실시간으로 받아보실 수 있습니다.질문내용은 상세하고 자세하게 부탁드립니다.예시 : "Amazon EC2의 t2.micro 타입으로 Amazon Linux 2023타입으로 퍼브릭 서브넷에 프로비전 했습니다. 키페어와 같이 프로비전해서 SSH로 접속하고 싶은데 접속 요청시 Timeout이 발생합니다. 어디를 확인하면 될까요?" 새로 생성한 wordpress 서브넷이 아닌 기존 디폴트 서브넷으로 설정하는 이유가 있나요?
-
미해결비전공자도 이해할 수 있는 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
-
미해결실무에 바로 적용하는 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을 적용한다면 어떻게 해야하는 건가요?확인 부탁드립니다.감사합니다.
-
해결됨쉽게 설명하는 AWS 기초 강의
섹션 12부터 소리가 안나와요
안녕하세요, 새로 업데이트 된 강의를 들으려고 하는데섹션 12부터 소리가 안 나네요 ㅠㅠ 확인 부탁드려요!
-
해결됨비전공자도 이해할 수 있는 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로 전송하지 않고 굳이 임시 디렉토리를 두는 이유가 궁금합니다.
-
해결됨비전공자도 이해할 수 있는 CI/CD 입문·실전
region
만약에 사용자가 한국에도 있고 다른나라 미국 프랑스 에도 있다고 한다면어떻게 해야할까요 ?
-
해결됨쉽게 설명하는 AWS 기초 강의
섹션 2 > 캐싱 강의자료가 pdf 파일에 포함되어 있지 않아요
안녕하세요. 강의 잘 듣고 있습니다.배포중인 PDF에서 캐싱 강의자료가 빠져 있습니다.확인 부탁드려요~(참고로, 압축해제한 PDF 리스트 캡쳐본 첨부드려요)
-
해결됨실무에 바로 적용하는 AWS 배포
git clone
안녕하세요.bastion을 통해서 private-ec2에 접속하는 것은 됩니다.yum으로 nginx도 설치되네요.그런데 git clone은 되지 않습니다. google로 ping도 안되네요.어떤 설정에 문제가 있을까요?NAT Gateway를 설정해야되는 건가요?확인 부탁드립니다.감사합니다.
-
해결됨실무에 바로 적용하는 AWS 배포
EC2 Auto Scaling 부하테스트
안녕하세요.강의 잘 듣고 있습니다.EC2 Auto Scaling에서 시간기반으로 진행하셨는데,추가로 트래픽이나 CPU, Memory 사용량 기반으로 테스트해볼 수 있는 도구나 프로그램이 어떤게 있을까요?감사합니다.
-
해결됨비전공자도 이해할 수 있는 CI/CD 입문·실전
docker stop instagram-server || true 명령어 질문
혹시 뒤에 || true라고 하였는데 이 문장의 의미는 어떤 것일까요??
-
해결됨비전공자도 이해할 수 있는 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/
-
해결됨쉽게 설명하는 AWS 기초 강의
강의자료 중에 누락된 부분이 있습니다
4.amazon_vpc_11.vpc_비용.pdf 이부분의 파일이바로앞 10.설계.pdf자료로 중복해서 들어와있습니다확인부탁드립니다. 감사합니다
-
해결됨비전공자도 이해할 수 있는 CI/CD 입문·실전
C# ASP.NET 백엔드 서버를 리눅스로 배포하려고 합니다 :)
박재성 선생님 안녕하세요!C# ASP.NET 백엔드 서버를 리눅스로 배포하려고 하는데요.이에 대하여 접근 방식(힌트)을 여쭤볼 수 있을까요~?Spring Boot와 Nest.js를 너무나 잘 설명해주셔서혹시 선생님께는 처음 접하는 프레임워크(C# ASP.NET)에 대하여어떻게 접근하실지 궁금하여 질문을 남겼습니다!좋은 강의에 다시 한번 감사드립니다!!
-
해결됨비전공자도 이해할 수 있는 CI/CD 입문·실전
CI/CD 구현시, 여러 개의 인스턴스는 어떻게 적용할 수 있을까요?
안녕하세요~!비전공자도 이해할 수 있는 CI/CD 입문·실전수업 너무 잘 보고 있습니다~!CodeDeploy까지 친절한 수업 잘 봤습니다. 감사합니다!혹시, 복수개의 인스턴스(EC2)를 배포하고 관리하는 방법도 알 수 있을까요~?생각 보다 운용중 AWS EC2에 장애가 발생할 수 있어 복수의 EC2를 준비해야 한다는 주변의 이야기를 들었습니다 ㅠㅠ감사합니다!
-
해결됨쉽게 설명하는 AWS 기초 강의
"(실습) CloudWatch 실습-EC2 커스텀 지표 수집 및 404에러에 따른 알람 받아보기" 에서 2분 경에 나오는 CloudWatch 아이콘이 Event Bridge로 잘못 그려진 것 같습니다
"(실습) CloudWatch 실습-EC2 커스텀 지표 수집 및 404에러에 따른 알람 받아보기" 에서 2분 경에 나오는 CloudWatch 아이콘이 Event Bridge로 잘못 그려진 것 같습니다
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
환경변수 질문 있습니다
저는 application.yml을 통째로 git secret에 작성하지 않고 다음과 같이 각각을 환경변수로 잡아서 민감한 정보를 숨겼습니다. 그리고 build step 에서 env를 통해 환경변수 값들을 전달해서 사용하려 하였는데, 실제 docker를 통해 실행할 때 해당 환경변수 값들을 찾을수 없다는 에러가 발생하는 상황입니다.저는 build 단계에서 해당 환경변수 값들이 모두 들어간 상태의 완전한 상태로 build가 된다고 생각했지만 실제로는 해당 환경변수들을 일단 빈값으로 놔두고 build하기 때문이라고 알게되었는데 저의 이러한 방식보다는 그냥 application.yml을 통째로 git secret에 넣는 방식이 좋은걸까요..?spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: {SQL_URL} username: {SQL_USERNAME} password: {SQL_PASSWORD} jpa: hibernate: ddl-auto: update properties: hibernate: format_sql: true data: redis: host: {REDIS_HOST:localhost} port: ${REDIS_PORT:6379}name : Deploy To EC2 on: push: branches: - main - feat/ci_cd jobs: deploy: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: JDK 17 version install uses: actions/setup-java@v4 with: distribution: temurin java-version: 17 - name: test and build run: | chmod +x ./gradlew ./gradlew clean build working-directory: ./ env: SQL_URL: {{ secrets.DB_URL }} SQL_USERNAME: {{ secrets.DB_USERNAME }} SQL_PASSWORD: {{ secrets.DB_PASSWORD }} REDIS_HOST: {{ secrets.REDIS_HOST }} REDIS_PORT: {{ secrets.REDIS_PORT }} AWS_ACCESS_KEY: {{ secrets.AWS_ACCESS_KEY }} AWS_REGION: {{ secrets.AWS_REGION }} AWS_S3_BUCKET: {{ secrets.AWS_S3_BUCKET }} AWS_SECRET_KEY: {{ secrets.AWS_SECRET_KEY }} TOUR_INFO_KEY: {{ secrets.TOUR_INFO_KEY }} - name: AWS credential setup uses: aws-actions/configure-aws-credentials@v4 with: aws-region: {{ secrets.AWS_REGION }} aws-access-key-id: {{ secrets.AWS_ACCESS_KEY }} aws-secret-access-key: {{ secrets.AWS_SECRET_KEY }} - name: ECR login id: login-ecr uses: aws-actions/amazon-ecr-login@v2 - name: Docker image create run: docker build -t kkilogbu . - name: Docker tag run: docker tag kkilogbu {{ steps.login-ecr.outputs.registry }}/backend:latest - name: Docker image push to ECR run: docker push {{ steps.login-ecr.outputs.registry }}/backend:latest - name: EC2 connection with SSH uses: appleboy/ssh-action@v1.0.3 with: host: {{ secrets.EC2_HOST }} username: {{ secrets.EC2_USERNAME }} key: {{ secrets.EC2_PRIVATE_KEY }} script: | docker stop kkilogbu || true docker rm kkilogbu || true docker pull {{ steps.login-ecr.outputs.registry }}/backend:latest docker run -d --name kkilogbu -p 8080:8080 ${{ steps.login-ecr.outputs.registry }}/backend:latest
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
codedeploy 배포 관련 질문
현재 appspec.yml을 보면 S3에 저장한 모든 파일을 destination에 저장하도록 되어있습니다.files: # S3에 저장한 파일들 중 destination(AWS EC2)으로 이동시킬 대상을 지정한다. # / 이라고 지정하면 S3에 저장한 전체 파일을 뜻한다. - source: / # EC2의 어떤 경로에 저장할 지 지정한다. destination: /home/ubuntu/spring-gift-point그런데 push를 여러개 진행하면 tar.gz파일도 여러개 생기게되는데 이러면 S3의 있는 모든 tar.gz파일을 가져오게되는건가요?deploy.yml에서 파일 압축을 할 때 yml 파일과 scripts폴더를 같이 압축하는 이유가 궁금합니다. 두 파일 모두 project.jar 파일에 들어있기 때문에 project.jar파일만 압축해도 상관없지않나요?- name: 압축하기 run: tar -czvf $GITHUB_SHA.tar.gz project.jar appspec.yml scriptscodedeploy를 활용한 무중단 배포나 로드 밸런싱 강의를 할 수 있다고 하셨는데 따로 강의를 내실 예정이 있으신지 궁금합니다!