개발/MSG-Lab (12) 썸네일형 리스트형 [WIP] Ncloud 사용 후기 feat. F-Lab 안녕하세요 F-Lab에서 멘티로 과정을 진행중인 @BueVonHun입니다😆. 오늘은 제가 진행한 MSG-Lab 프로젝트에서 NCloud를 활용한 경험을 공유하겠습니다. 이런 분들이 읽으면 좋아요 F-Lab 과정을 진행중인 멘티, 화이팅!! NCloud를 처음 사용해보는 개발자 # 그래서... NCloud는 뭐지..? NCloud는 네이버 클라우드에서 만들고 있는 클라우드 서비스입니다!! AWS와 같은거라고 생각하면 되요! # NCloud 어떤 서비스가 있는데?? 클라우드 컴퓨팅, Pinpoint, RabbitMQ 등의 프로그램, 각종 네트워크 등을 구축할 수 있습니다! # NCloud 어떻게 활용했어? 저는 아래와 같은 서비스를 이용했습니다. 클라우드 컴퓨팅, 네트워크 등의 IaaS Pinpoint, R.. [MSG-Lab] 우테코 따라잡기 1차 답안지 문제지 해설 1. ide 대신 콘솔로 실행하기 인텔리제이로 실행하게 되면, 불필요한 java agent가 함께 실행된다. 콘솔 커맨드로 실행하여 오버헤드를 줄였다. 2. jvm 설정 jvm 메모리 사이즈를 설정하지 않으면, 낮은 수치부터 힙을 살살 늘린다. 힙을 실행시점에 할당하여 오버헤드를 줄였다. Xmx, Xms 둘 다 같은 수치로 설정하면 정적으로 할당한다. 3. jvm warm-up if kakao 2022를 참고했다. 직접 c2의 lv4까지 컴파일된 로그를 확인했다. 처음에는 약 천줄만 c2 lv4였다면, warm-up 이후에는 4천줄가량이 카운팅되었다. 4. tomcat 튜닝 인스턴스에 적합한 tomcat 설정을 찾았다. 쓰레드가 너무 많으면 컨텍스트 스위칭 비용이 커진다. 시작시 쓰레드수가 .. [MSG] 네이버 클라우드로 인프라 구축하기 - 9, cloud db 여기서는 mysql 서버 사용법만 다룹니다! 단순히 디비 생성만 진행해주시면 바로 사용이 가능합니다. 저는 asg와 동일한 서브넷에 생성했습니다. db 이름, 포트 번호등을 주의해서 생성합니다.(나중에 접속할때 필요합니다.) acg은 생성시 자동으로 새로 생성되고(추가로 설정 해주라는 의미입니다.), url은 생성되면 확인할 수 있습니다. [MSG] 네이버 클라우드로 인프라 구축하기 - 8, 오토 스케일링 1. launch configuration 설정 스케일링으로 생성될 인스턴스를 설정하는 단계입니다. 운영체제, 컴퓨터 코어 갯수 등을 설정할 수 있습니다. 보통 미리 생성해둔 서버 이미지 + init script 조합으로 운영한다고 합니다. (저도 정적인애들은 미리 서버 이미지로 만들고, jar 파일같은건 init script로 object storage에서 가져옵니다) 2. ASG 생성 여기서는 헬스 체크 유형에서 서버가 아니라 로드 밸런서를 선택해 주셔야 밸런서를 통해 asg로 요청이 뿌려져요. 스케일링 정책을 설정해야 하는데요. 별건 아니고 특정 이벤트가 발생했을때, 인스턴스를 어떻게 증가/감소시킬지 설정하면 됩니다. 그럼 이벤트는 어떻게 설정할까요? 바로 cloud insight를 이용해서 설정해.. [MSG] 네이버 클라우드로 인프라 구축하기 - 7, 로드 밸런서 요청을 asg에 뿌려주기 위한 친구입니다. 타겟 그룹을 먼저 생성하고, 밸런서를 띄워야 합니다.(나중에 타겟 그룹 연결해도 되나..?ㅎㅎ) 1. 그룹 생성 그룹 생성할때는 어디 포트로 요청 흘려줄지를 설정해야합니다. 헬스 체킹은 어떤 포트로 할지도 정해야 하는데요. 요청 흘려주는 포트랑 달라도 된다고 하네요.(저는 같게 했습니다. 어차피 스프링 액츄에이터로..ㅋㅋ) 헬스 체킹이 조금 특이한데요. 무려 임계값 개념이 들어있습니다.(생물 전공에서 배웠던 역치랑 비슷한..ㅋㅋ) 임계 이상일때만 진짜 그런 행동/결과가 발생했다고 생각하는데요. 비정상에서 정상으로 이동할때, 정상에서 비정상 상태로 이동할때 모두 적용됩니다. 정상 상태 := "저는 지금 정상 상태입니다" X 특정 횟수만큼의 응답 이렇게 상태가 정의.. [MSG] 네이버 클라우드로 인프라 구축하기 - 6, source deploy 1. 배포 프로젝트 생성 배포하려는 서버, asg(오토 스케일링 그룹) 등을 설정해야합니다. 2.배포 시나리오 생성 배포 전략(기본, 블루그린), 배포 과정(순차, 동시), 배포 파일(나중에 설정 가능), 배포 전후 실행 스크립트 등을 설정 할 수 있습니다. 주의 사항으로는 배포하려는 인스턴스에 미리 source deploy agent가 설치되어 있어야 합니다. (init script를 이용해서 설치하면 됩니다) [MSG] 네이버 클라우드로 인프라 구축하기 - 5, object storage 1. 오브젝트 스토리지란 aws의 s3같은 기능을 제공해주는 object storage입니다. 프로젝트에서는 깃허브에 소스 코드를 올리고, 이를 GA(github action)을 통해 ci를 진행합니다. GA에서 테스트와 빌드가 성공하게 되면 jar파일을 zip형태로 압축해서 object storage에 전송합니다. 2. 프로젝트에서 스토리지에서 파일을 가지고 오는 2가지 경우 스토리지의 파일은 2가지 방법으로 클라우드에 전달되는데요. 첫번째 상황은 init script를 통해, 방금 생성된 인스턴스에 어플리케이션을 띄우는 경우입니다. 두번째 상황은 source deploy를 통해 이미 생성되어, 어플리케이션이 실행중인 인스턴스에 새로은 어플리케이션 버전을 배포하는 경우입니다. 3. 사용법 그럼 이제 본.. [MSG] 네이버 클라우드로 인프라 구축하기 - 4, 접근 제어 이미 이전 포스팅에서 언급한 내용이지만, 정말 중요한 내용이라 또 작성합니다. 1. VPC안의 NACL 이걸 설정하지 않으면 bastion server 사용이 불가능합니다. 2. server의 ACG 아주 기본적인 설정이라 인스턴스 띄우기전에 강제하는 절차로 기억합니다. 3. DB서버의 ACG(기존 acg랑 다르게 새로 만들어지는 친구) 이걸 설정하지 않으면 spring 어플리케이션을 띄울때, communication link faile 에러가 발생하면서 강제 종료됩니다. 4. 게이트웨이와 라우터 이걸 설정하지 않으면 프라이빗존에 생성된 인스턴스에서 apt install python 같은 명령어를 사용하지 못합니다. [MSG] 네이버 클라우드로 인프라 구축하기 - 3, 컴퓨터 1. ACG 인스턴스에 대한 접근을 제한할 수 있습니다. 저는 8080, 80포트에 대해서 모든 IP를 허용했습니다 클라우드 환경에서는 기본적으로 어디에 접근하는 행위 자체가 "다른 사람 집에 방문하기"와 같아요, 즉 허용하지 않으면 다 안돼요 2. server 인스턴스를 생성 할 수 있어요. 운영체제, 컴퓨터의 사양, 어떤 VPC를 쓰고 어떤 서브넷에 위치시킬지 결정해야합니다. init script를 사용할지 결정 할 수 있어요. 저는 bastion 전용 서브넷에 bastion server를 생성했어요. (이 친구는 초기화 과정이 필요 없으니 init script설정도 하지 않았습니다) 3. public ip 퍼블릭 존에 생성된 인스턴스에 붙힐 수 있는 공인 ip 주소를 생성할 수 있어요 ssh roo.. [MSG] 네이버 클라우드로 인프라 구축하기 - 2, 네트워크 네이버 클라우드의 VPC에 대한 내용입니다!! 1. VPC란 VPC management를 통해 VPC를 생성할 수 있습니다. VPC는 우리가 사용할 수 있는 IP 범위를 의미한다고 생각하면 편합니다. 예를들어 건물을 짓는데 1층짜리 건물에 방은 10칸이 있는 건물을 짓는다면, 우리는 방 10개를 사용할 수 있는데요. VPC는 이와 같은 역할을 수행합니다. 단 건물이 몇층인지, 방은 몇개인지를 서브넷 마스크와 ip를 통해 나타냅니다. 10.0.0.0/16 이런식으로요 10.0.0.0/16의 의미는, "10.0.0.0 IP주소 부터 시작할거고, 끝은 앞에서부터 16비트를 마스킹했을때 가능한 가장 큰값으로 할거예요"라는 의미입니다. VPC는 크게 잡아 주어야 합니다.(공간이 충분해야 필요한 분들에게 나눠줄 수.. 이전 1 2 다음