S3 이미지 다운로드 아키텍쳐에 질문이 있습니다. 제가 이해한 순서는, 프런트에서 이미지를 백엔드 서버에 던진다. 백엔드에서 S3 버킷에 저장한다. S3는 해당 이미지에 대한 링크를 다시 서버에 돌려준다. 서버는 링크를 DB에 넣는다. 사용자가 API get 요청을 할 때, DB에 있는 이미지 링크를 프런트로 띄어줌으로서 화면에 페인팅해준다. ------ 03:42 이미지를 다운 받아와서 렌더링 시켜야 된다고 말씀해주셨는데, DB에 담긴 값을 프런트로 보내줌으로서 화면 렌더링을 말씀해주신게 맞으실까요? 아니면 웹을 접속할때마다 화면이 렌더링이 되는데, 이때 S3 이미지 파일을 새롭게 계속 다운받아 온다는 말씀이실까요?
[실습] 7. Express 서버를 EC2에 배포하기 를 다 따라하고 이제 [보충 강의] 7-2. Spring Boot 서버를 EC2에 배포하기 를 보면서 따라해보려고 하는데요 이전 강의에서 인스턴스에 배포한 Express 서버를 끄고 삭제한 다음 그 인스턴스에 Spring Boot 서버 배포하고 싶은데 어떻게 해야하나요?
안녕하세요! 파이썬 강의를 완강하고 이번 aws 강의를 수강하게 되었습니다. 다름이 아니라 이번 강의 소개에서도 컨퍼런스나 여러 최신 소식에 대해 항상 잘 말씀해주시고, 그런 내용을 언급해주실 때마다 중요성을 많이 느낍니다. 혹시 실리콘밸리 개발자분들은 이런 소식을 접하는 커뮤니티 같은 게 별도로 활성화가 되어있나요? 저는 이제야 주니어 개발자로 시작하는 입장이라 그런 노하우라든지 소식을 어디서 접해야 하는지 어디서부터 어떻게 시작해야 하는지 방향성을 잘 모르는 상태라 질문드립니다.
인터넷에서 조사한 대로 하다가 에러를 만났는데 해결전에 프리티어 기간이 끝나서 결국 실습으로 해결하지 못해서 질문드립니다 ㅠㅠ 제가 진행한게 맞는지 이해한게 맞는지도 독학으로 하다보니 잘 모르겠네요... 진행한 순서 : EC2 리눅스 생성 EC2 시간 설정과 프로젝트에서 사용할 환경변수 설정 git 설치 sudo yum install git 도커 다운 sudo yum install docker 도커 시작 sudo systemctl start docker 도커로 자바 다운 docker pull openjdk:11 도커로 젠킨스 이미지 다운로드 docker pull jenkins/jenkins:jdk11 다운로드 이미지 조회 docker images 젠킨스 이미지를 컨테이너로 실행 ocker run -d -p 8080:8080 -p 50000:50000 -v /home/jenkins:/var/jenkins_home -v /usr/bin/docker:/usr/bin/docker -v /var/run/docker.sock:/var/run/docker.sock -u root jenkins/jenkins:jdk11 젠킨스에서 가입 젠킨스에서 시간 설정 젠킨스에서 사용할 플로그인 다운받아서 플러그인 올리기로 등록 젠킨스 디렉토리 생성 sudo mkdir -p /home/jenkins/.ssh SSH 권한 부여 sudo chmod 700 /home/jenkins/.ssh SSH key 생성 sudo ssh-keygen -t rsa 키 파일 설정 구간 /home/jenkins/.ssh/id_rsa 비밀번호 없이 진행할 수 있도록 jenkins ALL=(ALL) NOPASSWD: ALL ssh 퍼블릭을 복사해서 개발서버(authorized_keys)에 복사 git에서 프로젝트의 레포지토리의 설정에서 Deploy keys에 ssh 퍼블릭을 넣음 웹훅 설정 : 젠킨스가 설치된 서버 :포트/github-webhook/ Git Token 발급 Credential 등록 Kind : SSH Username with private key Username : 깃허브 아이디(닉네임) password : git token ID : 원하는 값 설정(아무거나) private key : ssh private 넣기 Publish Over SSH 설정 name : 본인이 사용하고자하는 이름 HostName : EC2 퍼블릭 ip username : 리눅스니 ec2-user directory : 인스턴스 디렉토리`/home/ec2-user` 여기서 Test Configurations을 누르면 에러발생 여기서부터 막혀서 진행이 안됐는데 다음꺼는 조사한 거로 정리한건데 맞는지 확인을 위해 올립니다. Dockerfile 작성 FROM openjdk:11-jre-slim-buster ARG JAR_FILE=build/libs/*.jar COPY ${JAR_FILE} app.jar ENTRYPOINT ["java","-jar","/app.jar"] 젠킨스 item 생성 :파이프라인 파이프라인 설정 파이프라인 충돌 방지 옵션 체크 스크립트 작성 pipeline { agent any stages { stage('Checkout') { steps { git branch: '원하는 브랜치명', url: '본인의 깃 레파지토리 URL(.git으로 끝나는링크)' } } stage('Build') { steps { sh './gradlew build' } } stage('Dockerize') { steps { sh ''' docker stop my_container_name || true docker rm my_container_name || true docker rmi my_image_name || true docker build -t my_image_name . ''' } } stage('Deploy') { steps { sh 'docker run -d --name my_container_name -p 8080:8080 my_image_name' } } } } 도커 허브에 회원가입 도커 로그인 젠킨스 build 부분 수정 ./gradlew clean build echo " Execute shell start" # 도커 빌드와 개시 삭제 sudo docker build --no-cache -t cova1256/dev . # 기존 서버에 있는 컨테이너 중지 sudo docker stop spring-container || true #기존 서버에 있는 컨테이너 삭제 sudo docker rm -f spring-container || true # 도커 로그인 sudo docker login -u cova1256 -p password 입력 # 도커 이미지 태그 설정 및 태그가 없다면 오류가 발생해도 넘어가도록 true 처리 sudo docker image tag dev cova1256/dev || true # 도커 허브에 나의 레포지토리에 도커 푸시 sudo docker push cova1256/dev # 푸시 후 빌드한 이미지 삭제 sudo docker rmi -f cova1256/dev || true echo " Execute shell end" 빌드 후 조치 echo " 빌드 후 조치 start" # 기존에 있는 이미지를 삭제합니다. sudo docker rmi -f cova1256/dev || true # 기존에 있는 컨테이너를 중지합니다. sudo docker stop spring-container || true # 기존에 있는 컨테이너를 삭제합니다. sudo docker rm -f spring-container || true # 컨테이너를 설치하고 실행합니다. sudo docker run -d -p 8080:8080 --name spring-container cova1256/dev # none인 이미지 삭제 sudo docker rmi $(docker images -q -f dangling=true) echo " 빌드 후 조치 end" 질문 1 : 제가 진행했던 진행하려고 정리하는 방식이 맞나요? 질문 2 : 저는 현재 EC2 외부에서 환경변수를 사용하는 방법을 사용했는데 Docker에서 외부 설정 파일 주입할 수도 있다고 하던데 Docker을 사용할 때는 후자의 방법을 선택해야 하나요? 질문 3 : 저 에러는 어떻게 고칠 수 있을 까요? 찾아보니 권한을 줘야한다고 해서 주었고 git이나 젠킨스에 모두 넣었는데...
안녕하세요. 강의 잘 듣고있습니다. 강의 내용에 관한 질문은 아니구요. 커리큘럼 중, '섹션5. 파일 및 이미지 업로드 (S3)'의 '[실습] 1.S3 버킷 생성하기' 강의가 있는데, 영상이 3초로 이상 편집된 것 같습니다. 저만 그렇게 보이는 것인지 모르겠지만 확인 부탁드립니다.
스프링부트 REST + OAuth2 + JWT를 사용하고 있는 상황인데 로컬에서는 잘 돌아갑니다. 로컬에서 소셜로그인이 성공하면 OAuth2SuccessHandler에서 바로 JSON으로 반환해주는 형태입니다. 즉, 컨트롤러가 딱히 무슨 역할을 하지 않아도 바로 반환을 해줍니다. 하지만 EC2에 배포하고 구글 개발자 센터, yml에 EC2 퍼블릭을 제대로 입력해주고 제대로 일치하는 것을 확인했고 버튼을 클릭하면 아이디들이 제대로 뜹니다. 하지만 로그인한 결과 로그인할 아이디를 클릭을 하면 Whitelabel Error Page 404페이지가 뜹니다. 그래서 실패했을 때 JSON으로 반환시켜주는 로직을 추가해서 확인한 결과 "error 발생 : ": "[authorization_request_not_found] " 이러한 오류가 발생했습니다. 항상 체크해야하는요소 yml 체크함 구글 개발자 센터 확인함 → 1, 2번은 일치함 EC2 인스턴스의 보안 그룹이 OAuth2 콜백 URL로 요청을 수신할 수 있도록 올바르게 설정되었는지 확인 → 이거는 어떻게 다른 설정법이 있을까요? application.yml 또는 application.properties 에 설정된 값들이 프로덕션 환경에 맞게 정확히 설정 이렇게 환경변수를 받아서 ec2 배포시 사용할 수 있도록 설정했는데 추가적으로 또 뭔가를 해줘야 하나요? 혹시 OAuth2 google을 테스터로 해놓고 http로 해놓으면 ec2 배포시에는 사용하지 못하나요?
로컬에서는 구글 소셜로그인이 제대로 돌아가고 로그인시 가입, JWT 발급까지 제대로 돌아가는데 프로젝트를 EC2에 배포하고 개발자센터에 승인된 URI에 등록하고 yml에 redirect-uri 똑같이 등록을 했는데 배포시에는 에러가 발생합니다. 발생한 에러: 구글 아이디들이 나오기는 하는데 클릭을 하면 이 에러가 발생합니다. 이게 로컬에서도 안되면 이해가 가는데 로컬에서는 에러없이 잘돌아갑니다. 대체 무슨 문제일까요... ㅠㅠ 급합니다.
네이버 마이박스나 구글 드라이브처럼 사진을 저장해놓는 클라우드 스토리지 서비스를 만들고 싶습니다 이런 서비스들은 클라우드 컴퓨팅을 운영하는 회사들 특히 대기업들이 많이 하고 있는데요 개발이나 운영에 다른 서비스들보다 힘든가요? 왜 스타트업들은 많이 없는지 궁금합니다 또 이런 스토리지 서비스를 aws를 통해 제공하면 비용문제가 심각한가요? 일단 서비스 개발과 업그레이드를 하면서 고객을 확보하고 나중에 좀 커졌을때 따로 데이터센터를 만든다고 하면 어떨까요??
https://velog.io/@dasd412/ec2-%EC%9E%AC%EB%B6%80%ED%8C%85-%ED%9B%84-%EC%97%B0%EA%B2%B0-%EB%B6%88%EA%B0%80-%ED%95%B4%EA%B2%B0%ED%95%98%EA%B8%B0 이걸 참고해도 보안 다시 해도 전 여전히 안되더라구요.. 결론적으로 배포를 성공했고 배포한 주소가 회원가입에 접근을 못해서 시큐리티 설정 때문에 그런줄 알았는데 여기서 멈췄어야 했나봅니다.. 로컬에서는 되고 ec2주소로는 접속이 안되어서 찾아보던 중 ec2를 재부팅 하면 해결된다고 해서 따라 했더니 https://github.com/jojoldu/freelec-springboot2-webservice/issues/485 이제는 아예 ec2주소에 접근이 불가능합니다 ㅠㅠㅠㅠㅠ 이걸 해결해야 하는데 어떡하나요..
안녕하세요 멘토님! 강의 잘 듣고 열심히 정리중 입니다.ㅎㅎ 프로젝트를 도커로 배포하는 중에 문제가 발생했습니다. 위와같이 도커로 배포중 yarn build를 실행할 때 빌드 시간이 멈추고 진행되지 않습니다. 새로고침하고 다시 인스턴스 터미널에 들어가면 연결이 지연되어 연결실패가 뜹니다. (해당 에러는 인스턴스 상태에서 재부팅을 통해 해결했습니다.) 해당 문제를 해결하기 위해 아래와 같이 시도했습니다. 1. 도커 푸룬으로 이미지, 캐시등 삭제 - docker system prune -a 2. ec2 볼륨을 16기가로 올렸습니다. - 파티션화도 완료시켰습니다. - df -h로 xada1의 용량이 46%에서 23%로 줄어든 것을 확인했습니다. 더이상의 방법이 구글링과 제 머리로는 해결되지 않아 질문 올립니다. 감사합니다!
현재 프론트하고 백엔드하고 배포를 따로 하려고 하는데 이 배포를 언제까지 유지해야 하는지가 궁금합니다. 포폴에 배포 링크를 담아주고 취업할 때 까지 유지해야 하는지 아니면 배포하고 시연 이미지 첨부한 설명을 포폴에 담고 배포를 종료해도 되는지 어떻게 해야하는지 궁금합니다. 알려주시면 감사하겠습니다 ㅠㅠ (__) 꾸벅
따라하며 배우는 노드, 리액트 시리즈 - 레딧 사이트 만들기(NextJS)(Pages Router)
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. aws ec2 배포 과정에서 문제가 있습니다. npm run build:prod 에서 문제로 . package.json에도 env-cmd 가 제대로 설치가 되어있고, script 문에도 정상적으로 적어져 있으나, sh: 1: env-cmd: not found 와 같은 문제가 뜨네요 .
제로초님 안녕하세요 고민을 몇시간쨰 해보고 있는데 해결을 못하겠어서 처음으로 글을 올려봐요ㅠㅠㅜ 노드버드 하기전에 배포프로세스를 익히고자 CNA로 테스트 레포를 만들고 따라하고 있었는데요 그냥 sudo yarn start로 했을 때는 잘되서 ip 주소로도 접속이 가능한데 이런 에러가 나는데 왜이러는걸까요??ㅠ