반응형
제육's 휘발성 코딩
반응형
[인프라공방] 웹 성능 부하 테스트 (K6, Grafana)
Infra 2022. 7. 2. 22:52

부하 테스트 서비스 운영에는 현재 시스템이 어느 정도의 부하를 견딜 수 있는지 확인하고, 한계치에서 병목이 생기는 지점을 파악하고 장애 조치와 복구를 사전에 계획해두는 것이 중요하다. 각 시스템의 응답 성능 및 한계치를 알아보는 것을 부하 테스트라고 한다. 가용성 가용성이란 시스템이 서비스를 정상적으로 제공할 수 있는 상태를 의미한다. 가령, 한 대의 서버에 문제가 생겨도 사용자는 인지할 수 없도록 하는 것이 가용성을 높이는 것이고, 단일 장애점(SPOF)를 없애고 확장성있는 서비스를 만들어야 한다. 가용성은 uptime 등의 지표로 측정되기도 하며, IDC, 네트워크, 하드웨어, 소프트웨어 등의 장애 혹은 점검기간, 그리고 높은 부하에 따른 타임아웃 등으로 서비스를 이용할 수 없는 경우 가용성이 낮아진..

[인프라공방] 웹 성능 테스트하기
Infra 2022. 6. 26. 17:54

웹 성능 진단하기 웹 성능은 webpagetest 등의 도구로 인터넷 구간을 테스트할 수 있다. 또한 3 tier(3계층 아키텍쳐)라고 불리는 웹서버, 웹 애플리케이션, 디비는 부하테스트(브라우저 렌더링을 제외한 전구간)로 테스트할 수 있다. 웹 성능 테스트 성능의 개선 및 저하는 수익에 직접적인 영향을 준다. 사용자는 응답시간이 20프로 이상일 때 차이를 인하식하고, 3초안에 로딩되지 않으면 53프로의 사용자가 떠난다는 규칙도 있다. 즉, 웹 성능 테스트는 꼭 숙지해야하는 사항이다. 테스트하는 과정에서 중요한 점은 사용자 트래픽이 많이 발생하는 페이지, 가장 중요한 페이지가 무엇인지를 파악해야 한다. 또한 경쟁 사이트 또는 유사 사이트의 성능도 조사하는 것이 좋다. 인터넷 구간에서 성능에 영향을 주는 ..

[인프라공방] 스프링 부트 profile 분리 및 배포 스크립트 작성
Infra 2022. 6. 26. 16:49

개발 환경 구성 스프링 부트 웹 애플리케이션 구성에서 서버를 배포한 후 운영, 로컬, 테스트 환경을 분리하여 개발 환경을 구성하는 것은 중요하다. 보통 운영서버에선 실제 디비를 접근하고, 로컬에선 샘플 디비, 테스트에선 메모리 디비를 사용하여 개발 환경을 나눈다. 스프링 부트에선 profile을 기반으로 환경을 분리할 수 있다. 이때 네이밍은 application-xxx.properties로 반드시 지정해야하며, java -jar -Dspring.profiles.active=prod [jar 파일명] 과 같이 원하는 profile을 지정하여 실행할 수 있다. application-prod.properties - 운영 환경 spring.datasource.driver-class-name=com.mysql...

[인프라공방] AWS 리버스 프록시 및 TLS 적용 (Nginx, Docker)
Infra 2022. 6. 26. 16:29

AWS Nginx 운영 환경에서 웹 애플리케이션 앞단에 Nginx를 도커로 사용하여 Reverse Proxy를 구성해보자. 도커 설치 sudo apt-get update && \ sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common && \ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - && \ sudo apt-key fingerprint 0EBFCD88 && \ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubun..

[Docker] 이미지 생성 및 배포
Infra 2022. 6. 21. 17:56

이미지란 도커는 계층 파일 시스템 기반으로, 이미지는 프로세스가 실행되는 파일들의 집합으로 볼 수 있다. 프로세스는 환경을 변경할 수 있으며, 이 환경을 저장해서 새로운 이미지를 만든다. 이미지 구성에는 AUFS, BTRFS, Overlayfs 등이 사용된다. Base Image : 읽기 전용으로 해당 이미지를 변경할 수 없지만, 해당 내용에 추가적으로 변경할 수 있다. Container : Git이 포함된 새로운 이미지로 Commit을 하게되면 새로운 이미지로 변경할 수 있다. Git 설치 docker run -it --name git ubuntu:latest bash apt-get update apt-get install -y git git --version git이라는 이름의 컨테이너로 ubuntu..

[Docker] 도커 설치 및 실행
Infra 2022. 6. 21. 16:15

도커 설치하기 Linux curl -s https://get.docker.com/ | sudo sh 명령어를 입력하고 패스워드를 입력하면 리눅스 배포판에 따라 자동으로 최신버전의 도커를 설치해준다. sudo usermod -aG docker ubuntu ubuntu 유저 권한 추가 MacOS 도커는 기본적으로 리눅스를 지원하기 때문에 MacOS와 Windows에 설치되는 도커는 가상머신에 설치된다. MacOS는 xhyve를 사용하고 Windows는 Hyper-V를 사용한다. 설치는 https://docs.docker.com/desktop/mac/install/ 에서 제공한다. 설치하고 docker version 을 입력해보면 다음과 같이 도커 정보가 출력된다. client-server 구조로 로컬(cli..

[Docker] 도커란?
Infra 2022. 6. 21. 13:56

도커 도커는 컨테이너 기반의 오픈소스 가상화 플랫폼(DotCloud, 현 Docker)으로 계속 바뀌는 서버 환경과 개발 환경을 컨테이너화하여 관리하기 위해 등장했다. 서비스가 점차 확장되면서 기존에 사용하던 서버와 새로 구축한 서버 간에 설정 차이가 발생하고, 관리자의 인적요소에도 영향을 받을 수 있다. 따라서 기존에는 스크립트를 활용한 자동화 방식부터, kickstart 등을 거쳐 OS를 가상화하는 방식으로 서버를 관리해왔다. 기존의 OS 가상화 방식 기존의 가상화 기술은 Hypervisor를 이용해 여러 개의 운영체제를 하나의 호스트에서 생성하여 사용하는 방식이었다. 하이퍼바이저는 호스트 컴퓨터에서 다수의 운영체제를 동시에 실행하기 위한 논리적 플랫폼이다. 여기서 문제점은 시스템 자원을 가상화하고 ..

[인프라공방] AWS 망 분리하기 (2) - Bastion 적용
Infra 2022. 6. 21. 13:55

망 구성 지난 포스팅에서 망 분리는 다음과 같다. VPC 생성 CIDR C 클래스 선택 서브넷 생성 외부망으로 사용할 서브넷 2개 IP 64개 할당 (/26) 및 접근 허용 데이터 센터 A, C 사용 라우팅 테이블 - 모든 네트워크 (0.0.0.0) 에 대해 인터게이트웨이 생성 외부망 보안 그룹 적용 내부망으로 사용할 서브넷 2개 IP 32개 할당(/27) 및 접근 허용 데이터 센터 A, C 사용 라우팅 테이블 - 모든 네트워크에 대해 NAT 게이트웨이 생성 내부망 보안 그룹 적용 EC2 생성 외부망 EC2 1대, 내부망 EC2 1대 외부망 : 보안 그룹 - ICMP(핑 테스트) 전체 오픈, SSH (22) 공인 IP 오픈 내부망 : ICMP(핑 테스트) 전체 오픈, SSH(22) 관리망 오픈 t3.me..

반응형
반응형