공부메모 & 오류해결/Infra 9

[Nginx] Nginx란 무엇이고 왜 사용할까?

목차1. 개요1.1 리액트와 스프링 부트 조합의 특징 1.2 엔진엑스를 도입하는 일반적인 시나리오2. Nginx를 사용하는 이유2.1 정적 파일 서빙 최적화 2.2 로드 밸런싱 및 리버스 프록시 기능 2.3 확장성과 유연한 설정3. 스프링 부트 내장 서버로 정적 파일 서빙 시 한계점3.1 성능적 제약 3.2 배포 및 확장성 문제 3.3 보안 및 인증서 관리 불편4. 엔진엑스 + 리버스 프록시 설정의 이점4.1 단일 도메인 통합 및 CORS 문제 완화 4.2 독립적 배포, 스케일링 및 운영 편의성 4.3 보안 강화 및 성능 최적화 4.4 트래픽 라우팅과 A/B 테스트 용이성5. 다른 대안들과 비교5.1 아파치(HTTPD) 대비 장점 5.2 Node.js 기반 정적 서버 대비 장점 5.3 클라우드 로드밸런서..

[AWS] EC2에 docker, dokcker-compose 설치하고 yml 작성하기

목차1. docker 설치2. docker-compose 설치3. docker-compose.yml 작성 1. docker 설치우선 관리자 권한으로 실행할 일이 많으니 관리자 권한으로 전환하고 시작해 준다.sudo su -  그 뒤 아래 명령어들을 차례로 입력해서 Docker를 설치해 준다.1. 현재 시스템의 패키지 목록을 업데이트하여 최신 버전을 가져온다.$ sudo apt-get update 2. HTTPS를 통한 패키지 다운로드 및 추가 저장소 관리에 필요한 도구들을 설치$ sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common 3. Docker의 공식 GPG 키를 다운로드하..

[AWS] EC2 고정아이피 만들기 (탄력적 IP - EIP 설정)

목차1. EIP 설정 이유2. EIP 할당받기 1. EIP 설정 이유왜 EC2를 그냥 사용하지 않고 EIP설정을 해줄까? 이유는 바로 IP주소이다. 인스턴스를 중지하고 시작할 때마다 내 인스턴스 IP가 변경된다. IP가 중지시키고 실행될 때마다 변경된다면 귀찮은 일이 많이 발생한다. 따라서 EIP를 설정해서 고정적인 공인 IP를 할당받아서 사용한다.  2. EIP 할당받기이제 EC2에 접속해서 왼쪽탭의 네트워크 및 보안 -> 탄력적IP를 눌러주고 화면 우측상단에 버튼을 클릭한다. 별다른 설정이 필요하지않다. 바로 할당을 눌러준다. 할당을 받으면 위와 같은 화면으로 넘어온다. 여기서 방금 만들어진 탄력적 IP주소를 체크해 주고 우측상단의 작업버튼을 누른 뒤 탄력적 IP 주소 연결버튼을 클릭한다. 이제 기..

[AWS] EC2 접속하고 비밀번호 설정하기 (free-tier)

목차1. putty 다운2. putty 설정3. 패스워드 설정 EC2를 아직 만들지않았다면?https://ngwdeveloper.tistory.com/172 [AWS] 프리티어 EC2 인스턴스 만들어보기목차1. 인스턴스 생성2. 보안 그룹 생성(키페어 생성 한 뒤 그 창은 그대로 두고 새로운 인터넷 창을 하나 더 켜서 잠깐 설정하기)3. 인스턴스 재작성   1. 인스턴스 생성aws에 로그인 후 ec2에 들ngwdeveloper.tistory.com  1. putty 다운https://putty.softonic.kr/ PuTTYPuTTY - 개발자에게 꼭 필요한 도구putty.softonic.krputty 공식 홈페이지에 접속해서 다운을 받아준다. 다운 후 next만 눌러서 설치하기. 2. putty 설정..

[AWS] 프리티어 EC2 인스턴스 만들어보기

목차1. 인스턴스 생성2. 보안 그룹 생성(키페어 생성 한 뒤 그 창은 그대로 두고 새로운 인터넷 창을 하나 더 켜서 잠깐 설정하기)3. 인스턴스 재작성   1. 인스턴스 생성aws에 로그인 후 ec2에 들어왔다면 화면 중앙에 있는 인스턴스 시작을 눌러준다. 이 화면이 뜰 텐데 이제 생성할 ec2의 이름을 지정해 주고 사용할 ec2의 운영체제를 선택해 준다. 나는 우분투가 편해서 우분투로 선택했다. 보통 첫 번째인 Amazon Linux와 내가 선택한 Ubuntu로 많이 나뉘는 거 같다. 비교해본 뒤 편한 걸로 선택하면 될 것 같다. 이제 첫 번째 동그라미인 아키텍처가 64비트로 되어있는지 확인 후 인스턴스 유형은 t2.micro로 선택해 준다. 어느 정도 자본이 된다면 다른 인스턴스를 선택해도 된다. ..

[Docker + Jenkins] Docker에 Jenkins 설치하고 사용하기

목차1. 개발환경2. Jenkins 설치, 실행3. Jenkins 설정4. ngrok 설정5. webhook 설정6. 테스트  1. 개발환경Docker 25.0.2Ubuntu 20.04.6    2. Jenkins 설치, 실행docker image pull jenkins/jenkins:jdk17 우분투에 다음 명령어를 사용해서 젠킨스를 설치한다. jdk버전은 본인의 프로젝트에 맞게 설치하면 된다.  2-1. Jenkins 실행vim docker-compose.yml위 명령을 사용해서 docker-compose.yml을 텍스트 에디터로 실행해 준다.   다음과 같이 설정해 준다.기본포트는 8080이며 다른 포트와 겹칠 가능성이 있어서 8180으로 포트포워딩 해줬다.   docker-compose up -d..

[Linux] ngrok 설치하기

ngrok 설정Ngrok은 로컬 개발 환경에서 인터넷을 통해 웹 애플리케이션에 안전하게 접근할 수 있도록 해주는 도구이다. 보안 연결을 통해 인터넷에서 서버를 실행할 수 있으며, 웹 애플리케이션을 외부에 노출시키지 않고도 테스트할 수 있다.  이걸 사용하는 이유는 webhook을 사용해 테스트할 때 localhost, 127.0.0.1 같은 루프백 아이피를 사용할 수 없다. 때문에 Ngrok을 통해 테스트해 준다.  wget https://bin.equinox.io/c/bNyj1mQVY4c/ngrok-v3-stable-linux-amd64.zip다음 명령어로 우분투에서 ngrok을 다운로드하여준다.   unzip ngrok-v3-stable-linux-amd64.zip다음 명령어로 압축을 풀어준다.   ..

[MSA] MSA란 무엇일까?

목차 1. 모놀리식(Monolithic) 방식(AS-IS) 2. MSA 방식(TO-BE) 3. Monolithic? MSA? 4. MSA방식 성공의 핵심 요소     1. 모놀리식(Monolithic) 방식(AS-IS):하나의 애플리케이션이 하나의 거대한 아키텍처를 가지는 방식 장점단순성모든 코드가 모여있어서 변경 사항이 발생할 경우 필요한 모든 코드가 한 곳에 존재한다. 그래서 테스트와 디버깅이 간단하다. 간편한 배포단일 프로젝트로 배포하면 되기 때문이 간단하다. 새로운 기능이 추가되거나 버그가 수정될때마다 애플리케이션을 배포하면 된다. 보편성대부분의 개발자가 모놀리식 방식으로 개발하기 때문에 익숙함이 높아 프로젝트를 쉽게 시작할 수 있다. 쉬운 모니터링오류 발생시 문제가 발생한 위치를 식별하기 쉽다 ..

[CICD] 상황별 CI/CD 파이프라인 툴 비교

젠킨스(Jenkins)장점: 무료, 오픈 소스, 확장 가능한 CI/CD 도구로 거의 모든 환경 및 통합을 지원 다양한 플러그인을 통해 맞춤형 파이프라인을 구축가능단점: 초기 설정과 관리가 복잡할 수 있으며, 호스팅 및 유지보수가 필요 최신 CI/CD 도구에 비해 사용자 인터페이스 및 경험이 부족할 수 있음 추천 시나리오: 대규모 프로젝트 또는 고급 CI/CD 요구사항이 있는 경우에 적합하며, 특정 요구사항을 충족시키기 위한 맞춤형 설정이 필요한 경우 적합   GitLab장점: GitLab 리포지토리와 강력한 통합을 제공 오픈 소스 및 무료 계획을 제공하며, CI/CD 기능이 GitLab에 포함되어 있음 Docker를 사용한 환경 구성과 다양한 기능을 제공단점: GitLab을 사용하지 않는 경우에는 통합이..

프로필사진

남건욱's 공부기록

반응형