자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
HTTP 메서드에 처음 공부할 때 수정의 경우에는 PUT과 PATCH를 사용한다고 배웠는데요. PUT의 경우에는 통째로 갈아끼우는 방식의 갱신이고 PATCH의 경우에는 부분 수정이 가능하다고 배웠습니다. 이 강의에서는 USER의 정보중에 이름만받고 있어서(PUT은 전체 필드를 명시해주어야 한다고 배웠습니다.) PATCH가 더 적당한 방식이 아닌가라는 생각이 들었습니다. PATCH가 아닌 PUTMapping을 사용하신 이유가 있으실까요? 그리고 이와 관련된 블로그 글들이 많은데 저마다 내리는 결론이 달라서 조금 혼란스럽습니다. 강사님의 생각을 듣고 싶습니다. 좋은 강의 만들어주신 태현님을 존중하고 존경하며 이만 글 줄이겠습니다!
Lecture 7 진행 하고 있는데.. 코드를 복사해서 붙여 넣어서 똑같이 만든 다음 봐보니까 lambda.ts에서 오류?가 2개가 나오더라구요.. 내용은 이렇습니다. Bucket: Bucket.Uploads.bucketName TableName: Table.Collections.tableName 여기에 Uploads / Collections 가 속성이 없습니다라고 나오네요.. 확인 부탁드립니다! lambda.ts 오류 내용 MyStack.ts 내용
강의를 보면서 똑같이 user data에 넣어서 인스턴스를 만들다보면 어떤 인스턴스는 브라우저에 화면이뜨고, 어떤 인스턴스는 연결할 수 없다고하는데 이유가 먼가요..? 심지어 같은 sercurity를 사용할때 이런 현상이 나오더라구요. 민약 public lpv4 접속할때 브라우저에 화면이 안떠도 인스턴스 자체에 connect가 되면 상관없는건가요..?
IAM파트 강의보면서 실습중인데(현재는 EC2), 인스턴스 생성을 하려면 vpc를 만들고, 네트워크 설정도 넣어줘야하더라구요 강의 상에서는 이미 만들어져있는것으로 보이는데 해당 값들은 어떻게 줘야할까요? 이해하는데에는 무리가 없어서 일단은 강의를 듣고있는데 어떻게 처리하면 좋을지 궁금합니다
강의로 듣는 사람들은 DB를 제공하지 않는다고 해서 저는 직접 DB를 만들어 실습을 해보고 싶어서 만들어 봤고 아마 저처럼 DB를 직접 만들어 실습하고 싶은 분들이 많을 것 같아서 공유합니다. +EC2말고 RDS로 하면 더 쉽게 DB를 만들 수 있다고 하는데 따로 알아보셔도 좋을 것 같습니다. +비용이 들 수도 있는데 이부분에 대해선 잘 모르겠습니다. 저도 조금 비용이 나가는데 투자한다치고 걍하는중 OS는 window10 입니다. PostgreSQL 설치를 위한 aws EC2 인스턴스 생성 - https://velog.io/@yun8565/AWS-EC2-%EC%9D%B8%EC%8A%A4%ED%84%B4%EC%8A%A4-%EC%83%9D%EC%84%B1%ED%95%98%EA%B3%A0-%EC%9B%90%EA%B2%A9-%EC%A0%91%EC%86%8D%ED%95%98%EA%B8%B0 * aws 계정 회원가입&로그인 해야합니다. * EC2(EC2 대시보드) > 인스턴스 시작 버튼으로 인스턴스 만들기 * 다운받은 키페어파일(.pem 파일)은 'C:\Windows\System32' 이 경로에 넣어두시면 cmd에서 굳이 pem파일이 있는 경로로 갈 필요 없어서 편리합니다! Ubuntu에 PostgreSQL 설치 - https://velog.io/@yun8565/EC2-Ubuntu%EC%97%90-Postgresql-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0 * \password 명령어로 password 입력할 때 입력한게 안보이는 것이 정상입니다! 입력하고 엔터 누르시면 됩니다! * 접속 확인 단락에 create user로 사용자 생성하고 생성한 user에 비밀번호를 설정하고 권한을 부여할 필요 없습니다! 그냥 기본 postgres 로 사용해도 됩니다.(이것 때문에 index.ts에서 username과 password에 기본으로 있는 postgres로 입력해야 할지 생성한 걸로 입력해야 할지 계속 접속 실패하고 한참 헤매서 ㅠ 인스턴스를 다시 만들고 저도 그냥 기본으로 진행했습니다.) * 사이트 처럼 pgAdmin4를 사용해도 되지만 강의와 똑같이 하고 싶으신 분들은 스킵하고 나중에 DBeaver 설치하고 연동하시면 됩니다! ex) class_backend > index.ts import { DataSource } from "typeorm"; import { Board } from "./Board.postgres"; const AppDataSource = new DataSource({ type: "postgres", host: "**.**.***.**", // 내 인스턴스 우측 맨 위에 있는 퍼블릭 IPv4 주소 port: 5432, username: "postgres", // 기본 계정? password: "******", // cmd에서 \password 명령어로 설정해준 비밀번호 입력 database: "postgres", entities: [Board], // 우리가 만든 테이블 형태 synchronize: true, // 동기화하다, 테이블 만들어 달라는 요청 logging: true, }); AppDataSource.initialize() .then(() => { console.log("DB접속 성공"); }) .catch((error) => { console.log("DB접속 실패"); console.error("원인: ", error); }); [cmd로 내 ubuntu의 postgresql 다시 접속하는 법] AWS > EC2 > 내 인스턴트의 연결로 들어가 SSH 클라이언트 탭에서 밑에 '예:' 밑에 있는 코드를 CMD 에 입력(키페어파일 있는 경로에서) 2. 입력 후 sudo -u postgres psql 명령어 입력(종료할 땐 \q ) [정리] 인스턴스 생성 후 CMD 관리자권한으로 실행 AWS > EC2 > 내 인스턴트의 연결로 들어가 SSH 클라이언트 탭에서 밑에 '예:' 밑에 있는 코드를 CMD 에 입력(다운받은 키페어가 있는 경로에서)하면 내 인스턴스에 연결됨(ssh -i ~ 로 시작하는 거, 위에 있는 건 할 필요 없음) 연결된 상태에서(최초 접속 시 sudo apt update 명령어로 패키지 목록 업데이트(왜하는진모름)) sudo -u postgres psql 명령어 입력하면 내 인스턴스에 설치된 PostgreSQL 에 접속( \q 입력하면 접속 종료, 그 외 명령어들은 검색해서 참고) 강의처럼 테이블 클래스 만들고 index.ts로 db 접속하는 로직 만들고 package.json에서 ts-node로 typescript 파일 실행할 수 있도록 만든 명령어로 실행(ex. yarn ti ), console로 성공여부를 보여주도록 했고 실패하면 오타가 있거나 잘못 적은 것이 있을 것이다. PostgreSQL을 육안으로 더 편하게 보고 관리하기 위해 DBeaver를 설치하여 연결하고 확인해보기(DBeaver 연결도 index.ts에서 입력해준 것처럼 그대로 입력해주면 끝) DBeaver 내 PostgreSQL에 연결하는 법 - https://www.sfdccode.com/95
안녕하세요~ 선생님! #섹션6. 웹페이지 배포하기/[실습]4.도메인 연결하기, HTTPS 적용하기# 강의 수강 중 질문있습니다. [개념정리 : 브라우저 <-> AWS] 1)브라우저 > AWS(ELB) > 서버 > DB(필요하다면) 2)브라우저 > AWS(CF) > 서버(캐싱된 문서가없다면) > DB(필요하다면) 이렇게 정리했습니다. [질문] 우선 url에 처음 접속시, 로그인 페이지가 나온다고 하면 1) CDN통하여 로그인 페이지 받아옴 2) 아이디 비밀번호 입력 후 전송버튼 누름 2번의 경우, CDN이아닌 본 서버(웹서버)로 API호출을 해야할것같은 느낌이 드는데요. 그렇다면 AWS에서는 [개념정리]의 1,2(ELB,CF) 두개 다 Route53에 등록 되어야 하는게 맞을까요? ex) API호출할떄는 ELB로 호출, 페이지 받을떄는 CF로 호출 강의 04:32에서 기존 ELB레코드는 삭제하는 장면을 보고 궁금하여 질문드립니다.
안녕하세요 강의 잘 음미하고 있습니다. " Core DNS파드 배포시에 ENI slot에 Secondary IP가 전부 차 있는 것을 확인하고(실제로 파드가 사용은 안하고 있지만 L-IPAM의 warm pool에서 할당만 받은 상태) 이후 slot이 가득 차 있으므로 새로운 ENI를 생성한다. 따라서 2개의 ENI가 생긴다. " 라고 말씀해 주셨습니다. 그래서 노드 셀렉터걸어서 Core DNS 있는 노드에 배포해 봤는데, 첫 파드 생성 시에만 저 규칙(ENI 생성)이 적용되고, 계속해서 규칙대로 ENI가 생성되는 것은 아니고 기존 ENI 2개에 있는 Secondary IP를 가져다 쓰더라구요. 당연히 계속 ENI를 생성하는 건 비용 측면이나 네트워크 측면이나 비효율적이니 그러려니 싶겠는데 , 노드에 첫 파드 생성 시 에(aws-node, kube-proxy 제외)는 왜 항상 ENI가 1개는 추가로 생성되면서 시작하게 되는건가요? 그냥 ENI에 남은 IP가 있는데 쓰면 되지 않을까요? 감사합니다. 수업 내용이 꽤나 딥다이브해서 이게 이거구나 할 때가 많아서 좋습니다. ㅎㅎ
비전공자를 위한 풀스택 맛집지도 만들기 프로젝트!: Front, Back-end 그리고 배포까지
선생님 강좌덕분에 무사히 서버 개설과 웹사이트 로드까지 마친 수강생입니다! 감사합니다 ㅠㅠ 제가 만든 사이트는 데이터를 수집하고 그 데이터 중 유저가 원하는 데이터만을 보기좋게 가공해서 화면에 표기해주는 간단하다면 간단한 기능을 수행하고 있습니다. 그런데 그 데이터의 양이 많아지니 로딩 시간이 확 늘어났고 확인해 보니.. sql 쿼리문 자체가 응답시간이 많이 소요되더군요... ㅠㅠ sql 최적화나 index 적용 등은 이미 다했는데도 느리고... 아직 테스트 버젼으로 사실 데이터의 양도 제가 원하는 양에 비하면 턱없이 적은 양인데 벌써 이렇게 느려지니 막막한 심정입니다 ㅠㅠ 해당 강좌와는 크게 관련이 없지만 어디 물어볼 곳도 마땅히 없어서...ㅠㅠ 혹시 관련한 해결 방안이나 추천해주실만한 강좌같은게 있으실까요..?
https://cloudneta.github.io/cnaeblab/2023-05-21-CH5-1/ 여기서 EKS Node Viewer 설치 까지 완료한 뒤 https://cloudneta.github.io/cnaeblab/2023-06-02-CH1/ 여기에서 파드배포 부분을 실습하여 파드를 배포하였습니다. kubeopsview에서도 마리오 파드 생성이 확인되었으며 kubectl get pod,svc에서도 마리오 디플로이먼트와 로드밸런서 생성도 확인하였고 콘솔에 들어가서도 nlb 활성상태 확인이 됩니다 curl -s -O https://raw.githubusercontent.com/cloudneta/cnaeblab/master/_data/mario.yaml 하지만 해당 명령어로 나오는 DNS로 접속이 안됩니다. 웹페이지를 찾을 수 없어요. 1. 왜 접속이 안되는지 2. mario.yaml 에 레플리카를 1로 뒀는데 대상그룹의 등록된 대상 마리오 인스턴스 3개 잡힙니다. 3. yaml에서 8080포트 넣었는데 대상그룹 포트 30836 입니다. 어떤게 잘못된 것일까요? 4. 프로메테우스 타겟 메뉴 들어가보면 모니터링 네임스페이스의 파드들만 타겟으로 잡혀있는데, 원클릭 설치시 노드익스포터가 모니터링 노드만 잡고 있는건지? 그렇다면 추가적으로 파드를 설치할 경우 모니터링 네임스페이스에 apply해야하는건가요? 이러한 작업을 하는 이유는 실습을 따라하면서 그라파나와 프로메테우스를 설치했고, 추가적인 파드를 설치해서 새로운 데이터를 노드익스포터가 잘 받아오는지, 그라파나가 제대로 출력하는지를 보기 위함입니다.