[CI/CD] SonarQube 사용하기 (AWS EC2 + K3s)
·
DevOps/CICD
이번 프로젝트에서 코드 품질을 자동으로 검증해 주는 SonarQube를 도입하게 되었다.사실 SonarQube를 처음 들어봐서 많이 우왕좌왕 했다.나 같은 사람들을 위해 연동 과정을 글로 남겨보려고 한다. SonarQube란?한마디로 프로그램 소스 코드의 품질과 보안을 자동으로 진단해 주는 오픈 소스 정적 코드 분석 플랫폼이다. 소프트웨어가 실행되기 전 단계에서 코드를 분석해 버그, 보안 취약점, 중복 코드, 유지보수가 어려운 코드를 탐지하고 시각화해 주는 역할을 한다. 이 SonarQube를 클라우드 환경에서 별도 서버 설치 없이 바로 사용할 수 있도록 SaaS 형태로 제공하는 것이 바로 SonarCloud다. GitHub, GitLab 등과 손쉽게 연동되어 CI/CD 파이프라인에 정적 분석 단계를 자..
[K3s + Docker] K3s 기반 서버 배포 (2)
·
DevOps/Cloud Native
지난 포스트에 이어 이번 포스트에서는 K3s 기반 서버 배포 내용을 다뤄보겠다. Redis 배포Redis는 K3s 클러스터 내부에서 ClusterIP 서비스로 배포한다. 외부에 노출하지 않고 NestJS 애플리케이션과 동일한 클러스터 내부에서만 접근 가능하도록 구성할 것이다. apiVersion: apps/v1kind: Deploymentmetadata: name: redis-deploymentspec: replicas: 1 selector: matchLabels: app: redis template: metadata: labels: app: redis spec: containers: - name: redis im..
[K3s + Docker] K3s 기반 서버 배포 (1)
·
DevOps/Cloud Native
이번 포스트에서는 K3s 클러스터 위에 앱 서버를 배포하는 첫 번째 과정을 작성해 보겠다.사실 K3s로 서버를 배포하는 게 과제였는데.. 처음이라 K3s에 대해 공부하고 배포 과정을 거쳤다.나 같은 초보들을 위해 K3s에 대해 짤막하게 소개해보겠다.!!K3s란?K3s는 Rancher Labs(현 SUSE)가 만든 경량화된 쿠버네티스 배포판이다. K3s도 K8s(Kubernetes)보다 절반 정도 가볍다는 의미에서 붙여진 이름이다.IoT, 에지 컴퓨팅, 개발/테스트 환경, 소규모 서버처럼 리소스가 제한된 환경에서 쿠버네티스를 쉽고 가볍게 돌리기 위해 설계되었다. 단일 바이너리( 항목 K8s K3s 목적대규모 프로덕션경량/소규모 환경설치 난이도복잡한 줄 명령어최소 메모리~2GB~512MB기본 DBetc..
[AWS] EC2 인스턴스 구축하기
·
DevOps/Cloud Platform
이번 포스트에서는 EC2 인스턴스를 구축하고 ssh로 접속하는 방법을 작성해보겠다. 인스턴스 생성 인스턴스 시작에 들어가 인스턴스를 생성해보자. 인스턴스 이름을 설정하고, OS와 인스턴스 유형을 선택해준다. 필자는 Ubuntu와 t3.small을 선택했다. 키 페어 생성키 페어를 새로 생성하거나 기존에 있던 키 페어를 선택한다. 키 페어 생성 후 다운로드 되는 .pem 파일은 ssh 접속 시 사용되기 때문에 가지고 있어야한다. 또한 기존에 있던 키 페어를 사용하더라도 .pem 파일을 가지고 있어야 ssh 접속이 가능하다. 보안 그룹 설정기존 보안 그룹을 선택하거나 보안 그룹을 생성해준다. 편집을 누르면 더 많은 보안 그룹 규칙을 설정할 수 있다. 포트프로토콜소스용도22TCP내 IPSSH 접속- EC2 인..
[Git] Git, GitHub 란?
·
DevOps/git
참고https://velog.io/@tlsl13/Git-Githubhttps://www.hanbit.co.kr/channel/view.html?cmscode=CMS2036561776 ⚙️ 버전 관리란?내가 원하는 시점(버전)으로 이동할 수 있게 해주는 것이 버전 관리이다. 그리고 이를 도와주는 시스템을 버전 관리 시스템이라고 한다. 버전 관리의 예시로는 게임 내의 savepoint와 잘못친 코드를 이전으로 되돌리기 위해 Ctrl+z를 사용하는 것을 예로 들 수 있다. 만약 협업 프로젝트에서 버전 관리를 하지 않는다면, 여러 사람이 한 코드를 동시에 수정하였을 때, 어느 파일이 최종 파일인지 알기 힘들 것이다. 팀원이 많아 질 수록, 프로젝트 기간이 길어질 수록 막막해질 것이다. 이것은 협업 프로젝트에서..
[GCP VM] VM 인스턴스로 배포하기 (4) - Docker Image 배포하기
·
DevOps/Cloud Platform
지난 포스트에 이어 Docker Image를 VM에 배포해보자 참고 https://velog.io/@helloaway/Docker%EC%99%80-GCP%EB%A5%BC-%ED%99%9C%EC%9A%A9%ED%95%9C-React-Spring-boot-mysql-%EB%B0%B0%ED%8F%AC-%EC%B4%9D-%EC%A0%95%EB%A6%AC2%ED%8E%B8https://velog.io/@helloaway/Docker%EC%99%80-GCP%EB%A5%BC-%ED%99%9C%EC%9A%A9%ED%95%9C-React-Spring-boot-mysql-%EB%B0%B0%ED%8F%AC-%EC%B4%9D-%EC%A0%95%EB%A6%AC3%ED%8E%B8 Docker Image Build docker ..
[GCP VM] VM 인스턴스로 배포하기 (3) - docker 설치하기
·
DevOps/Cloud Platform
이전 포스트에 이어서 docker를 설치해보자. 참고 https://haengsin.tistory.com/128https://zhfvkq.tistory.com/411. Docker 설치하기 sudo apt-get updatesudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common 패키지를 업데이트하고 필요한 패키지를 설치해준다. sudo apt install gnupg lsb-release -ysudo mkdir -p /etc/apt/keyringscurl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor..
[GCP VM] VM 인스턴스로 배포하기 (2) - mysql 서버 설정하기
·
DevOps/Cloud Platform
지난 포스트에 이어서 VM 인스턴스에 mysql 서버를 생성하고 docker 이미지와 연결할 수 있도록 하자. 참고 https://aaroni.tistory.com/entry/GCP-VM%EC%97%90%EC%84%9C-Mysql-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0 https://wildeveloperetrain.tistory.com/198 1. Mysql 서버 설치 생성한 vm 인스턴스에 들어가서ssh로 접속한다. sudo apt-get updatesudo apt-get install mysql-server 업데이트 후 mysql-server를 설치해준다. sudo systemctl start mysqlsudo systemctl enable mysql 다음 명령어로 my..
[GCP VM] VM 인스턴스로 배포하기 (1) - 인스턴스 생성
·
DevOps/Cloud Platform
맨땅에 헤딩 수준으로 GCP VM 인스턴스로 Spring boot와 Mysql 서버를 배포했다.다음에는 좀 더 공부해야겠다. 참고 https://velog.io/@helloaway/Docker%EC%99%80-GCP%EB%A5%BC-%ED%99%9C%EC%9A%A9%ED%95%9C-React-Spring-boot-mysql-%EB%B0%B0%ED%8F%AC-%EC%B4%9D-%EC%A0%95%EB%A6%AC1%ED%8E%B8 1. GCP VM 인스턴스 생성하기 우선 gcp에 접속한 후 Compute Engine에서 인스턴스 만들기를 해준다. vm 인스턴스 무료 사양은 https://nicotina04.tistory.com/313 를 참고하길 바란다. 나는 mysql 서버까지 vm에 설치할 것이기 때문..
[Back-end] Cloud Computing
·
DevOps
들어가기 전에 웹사이트를 운영하려면 당연히 고성능 컴퓨터와 서버를 직접 구매해야 할 것 같지만 그럴 필요가 없다. 클라우드 컴퓨팅을 사용하면 필요한 만큼 컴퓨팅 자원을 빌려 쓰고, 필요 없으면 바로 반납할 수 있기 때문이다. 클라우드 컴퓨팅의 3가지 기반인 IaaS, PaaS, SaaS라는 생소하지만 중요한 개념을 이해하면, 우리가 일상적으로 사용하는 웹 서비스가 어떤 원리로 유연하게 동작하는지 알 수 있다. 이번 글에서는 클라우드 컴퓨팅의 핵심 개념을 쉽게 설명해보려고 한다. 참고영상 : https://www.youtube.com/watch?v=XBu54nfzxAQ 1. IaaS(Infrastructure as a Service) 웹사이트를 운영할 때, 회사가 클라우드 컴퓨팅 서비스를 통해 컴퓨터를 ..