트래픽 증가에 따른 시스템 설계 및 확장 방법
·
Server&load/load test
트래픽 증가에 따른 시스템 설계 및 확장 방법은 병목지점에 따라 성능 개선 방법이 달라진다.시스템 설계 방식가장 간단한 형태EC2서버 한 대에서 프론트엔드, 백엔드, DB 관련 프로그램을 전부 실행시키는 형태의 구성장점하나의 서버에서 모든 리소스를 관리하기 위해 관리 및 조직이 간단함.다양한 리소스를 쓰지 않기 때문에 비용이 적게 나옴.단점데이터베이스가 많은 컴퓨팅 자원을 사용하여, 웹 애플리케이션 성능에 악영향을 줌.위와 같은 단점 때문에 별도 서버를 분리하는 형식을 많이 가져감.데이터베이스 분리웹 서버와 데이터베이스를 분리한 인프라 구성단점인프라 구성에서 트래픽이 많아지면 정적 파일을 제공하는 부분에서 문제 발생 가능성이 큼.정적 파일은 용량이 크므로 컴퓨팅 자원을 많이 소모하여 서버 과부화가 걸릴 ..
병목 지점을 해결하여 성능 개선하기
·
Server&load/load test
가용성가용성이란?시스템이 서비스를 정상적으로 제공할 수 있는 가능성서비스에 장애가 발생할 확률이 극히 적은 시스템을 가용성이 높은 시스템이라고 함.서비스가 다운되는 시간이 긴 시스템을 가용성이 낮은 시스템이라고 함가용성을 높이기 위한 시스템 설계 방법서비스 사용 불가능 시간을 최대한 발생시키지 않게 하고,발생하더라도 시간을 짧게 만들기 위해 시스템 이중화를 사용.시스템 이중화시스템 이중화란?시스템의 일부분을 사용할 수 없게 되어도 다른 시스템을 이용하여 서비스를 계속 이용할 수 있도록 만듬.위 이미지 중 EC2중 하나에서 서비스가 고장났을 때, 또다른 서 버를 통해서 연결할 수 있도록 조치수평적 확장과 수직적 확장수평적 확장특정 시스템 성능을 올리기 위해 시스템 개수를 늘림장점시스템 이중화를 통한 가용성..
병목현상 측정환경 생성 및 병목지점 진단.
·
Server&load/load test
병목현상 측정환경 생성인프라 구성EC2에 부하테스트 툴 세팅하기인스턴스 시작.이름, OS 설정부하테스트를 위한 인스턴스 유형 설정사양이 충분해야 더 많은 부하를 진행할 수 있음.네트워크 설정 편집 후 5665 포트 설정K6가 부하테스트 진행 후 결과 데이터를 실시간으로 보여주는 웹페이지에서 사용.인스턴스에 k6 설치인스턴스 연결 후 아래 명령어 진행.sudo gpg -k && /sudo gpg --no-default-keyring --keyring /usr/share/keyrings/k6-archive-keyring.gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys C5AD17C747E3415A3642D57D77C6C491D6AC1D69 && /ech..
모니터링과 메트릭
·
Server&load/load test
모니터링어떤 대상을 지속적으로 감시하는 것을 의미함.모니터링이 필요한 이유병목 지점 파악을 위해 자원 사용량을 알아야 함.EC2, DB, 캐시 등의 사용량이 필요한데, 컴퓨터가 무언가 요청 후 처리를 진행하기 때문.즉, 무언가를 처리하기 위해서는 cpu, memory와 같은 자원이 필요하고, 최대한의 요청을 처리하고 있다면, 자원 사용량이 100%가 됨.특정 자원 사용량이 100%인 컴퓨터가 병목지점임을 알 수 있다.메트릭메트릭은 수치 data. 즉, 측정값을 의미함.즉, cpu, memory와 같은 값을 전부 메트릭이라고 할 수 있다.CPU, Memory, Disk 사용량CPU명령어(코드) 를 해석하고 실행한다.memorycpu 가 작업하기 위해 임시로 사용하는 공간.디스크보다 메모리로부터 데이터를 가..
부하 테스트의 기본 개념
·
Server&load/load test
부하테스트부하 테스트란?시스템이 어느정도의 부하를 버틸 수 있는지 테스트하는 것을 의미함.여기서 시스템이란 전체 인프라를 의미함.부하테스트를 하는 이유서비스를 배포하기 전에, 백엔드 서버가 어느정도 요청을 견딜 수 있는지 부하 테스트를 진행.어느 정도의 트래픽을 감당할 수 있는지 미리 파악함으로써, 부하 상황을 예상하고 대처할 수 있음.즉, 대규모 트래픽 처리를 위한 필수 작업처리량과 시간 지연처리량 (Throughput)서비스가 1초에 처리할 수 있는 트래픽 양단위는 TPS를 사용하며, 1초에 최대 100개의 API를 처리할 수 있따면, 100TPS.RPS 라고도 한다.(Request per second)지연 시간부하테스트에서 Latency 는 요청에 대한 응답시간을 의미한다.서비스에 부하 테스트를 했..
AWS 언어 정리
·
Server&load/AWS
EC2컴퓨터를 빌려 원격으로 접속하여 사용하는 서비스본인의 컴퓨터를 사용하기보단 AWS EC2를 사용하는것이 보안적으로도 유리하고 부가기능도 쓸수 있다.리전인프라를 지리적으로 나누어 배포한 각각의 데이터 센터.전세계적으로 다양한 리전을 가지고있으며 거리와 속도가 반비례하므로, 주 사용자가 위치한 리전을 선택한다.ELB트래픽 부하를 적절하게 분배하는 장치를 의미함. (로드밸런서)서버 2개 이상 가용할 때 ELB를 도입하게 되며, 부가기능을 통해 SSL/TLS (HTTPS) 를 적용할 수 있다.SSL/TLSHTTPS를 HTTPS 로 바꿔주는 인증서를 의미한다.RDSDB 관련 서비스로, 관계형 DB Service 를 의미한다.관계형 데이터베이스 서비스브를 AWS 로 빌려서 사용하는 형태이다. S3파일 저장 서..
도메인 연결 및 HTTPS 적용하기
·
Server&load/AWS
HTTPS 적용을 위한 인증서 발급받기.클라우드 프론트는 HTTPS를 적용하기 위해 인증서를 미국 동부 버지니아 리전에서 발급받아야 한다.리전 변경 후 요청 선택하여 인증서 발급받기이후 인증서 발급받기 포스트 참고 (1.2~1.7)CloudFront 에서 인증서 추가하기CloudFront 에서 배포 > 일반 선택 후 편집 선택대체 도메인 이름 및 SSL 인증서 선택하기Rout53 에서 CloudFront 도메인 연결하기Route53 > 호스팅 영역 선택 > jscode-edu.linkt > 레코드 생성 선택트래픽 라우트 대상에서 CloudFront 배포에 대한 별칭 선택배포는 배포 도메인 이름 입력 후 레코드 생성. 접속 확인
CloudFront 생성하기
·
Server&load/AWS
CloudFront 생성하기CloudFront 접속배포 생성원본 도메인 선택하기엔드포인트 사용 선택기본 캐시 동작에서 Redirect HTTP to HTTPS 선택HTTP로 들어오는 것들을 HTTPS로 강제로 변환시킴으로써 보안을 높임웹 애플리케이션 방화벽 비활성화추후 세부적인 보안이 필요한 경우, 활성화 진행.가격 분류에서 북미, 유럽, 아시아, 중동 및 아프리카에서 사용 선택설정에 따라 가격이 변경되며, 아시아에서만 사용하는 경우 위 설정값 적용.기본값 루트 선택에서 html 입력 후 배포 생성배포 생성 완료 확인CloudFront 주소를 통해 접근하기배포 > 일반에서 배포 도메인 이름 확인하기배포 도메인 이름 접속해보기