네트워크 & 인프라
-
AWS Auto Scaling 적용하기 (Load balancer를 이용한 부하분산)네트워크 & 인프라 2022. 4. 14. 20:26
이번에는 AWS의 Auto Scaling을 이용하여 확장성에 문제가 있는 경우 scale out을 통해 부하분산이 이루어지도록 적용하자. 기존의 pulic 서버는 미리 모두 종료해두었다. 배포 스크립트 작성 먼저 부하분산된 서버에 배포할 배포스크립트를 작성해두었다. 배포스크립트는 꼭 먼저 일반 사이트에서 정상적으로 작동하는지 확인하자. #!/bin/bash git clone -b [브랜치] --single-branch [저장소 URL] sudo apt update sudo apt install -y default-jre sudo apt install -y default-jdk cd /home/ubuntu/infra-subway-deploy ./gradlew clean build nohup java -j..
-
화면 응답 개선하기네트워크 & 인프라 2022. 4. 14. 19:31
이번엔 화면응답속도를 개선하는 방법에 대해 알아보자. 화면 응답 속도를 개선하는 방법에는 인터넷구간 성능 개선을 통한 방법과 데이터 조회 성능 개선의 방법이 존재한다. 인터넷 구간 성능 개선하기 인터넷 구간 성능을 개선하기 위해서는 캐싱설정, CDN 사용, keep-alive 설정, gzip 압축, 이미지 압축, 불필요한 다운로드 제거, 불필요한 작업 지연로딩, 스크립트 병합하여 요청수 최소화, HTTP 프로토콜 개선 등의 방법이 존재한다. Reverse Proxy 캐싱설정 keep-alive 설정 gzip 압축 HTTP 프로토콜 개선 (HTTP2를 사용하여 하나의 TCP 연결로 다수의 클라이언트 요청 처리) JS 불필요한 다운로드 제거 불필요한 작업을 지연로딩 스크립트 병합하여 요청수 최소화 Appl..
-
서버 진단하기 ( + 로깅, 모니터링)네트워크 & 인프라 2022. 4. 14. 12:41
이번엔 서버를 진단하는 방법을 공부하였다. 서비스의 상태 진단 서버는 크게 CPU, Network Interface Card(NIC), RAM, Disk Drives 4가지로 구성되어있는데 각 자원들은 여유 또는 포화 상태를 가지게 된다. 획득할 수 있는 상태정보는 다음과 같다. 요약 : 단위시간 정보의 합계나 평균을 보여줌 (대략정인 상태만 파악) -> sar, vmstat 이벤트 기록 : 순차적으로 이벤트 기록 -> 패킷, 시스템콜 스냅샷 : 순간의 상태를 기록 (문제 발생 시 원인 조사에 사용됨) -> top 이벤트 기록은 장애상황에서 사용하기에 데이터가 방대하기때문에 문제상황 재현시에 사용된다. 즉 문제 발생시 로그, 요약 정보의 일정 수치등에 알람을 설정해두고 스냅샷을 통해 원인을 파악 하도록 ..
-
부하 테스트 ( + k6, grafana + influxdb, ngrinder)네트워크 & 인프라 2022. 4. 14. 11:40
이번엔 도구를 이용하여 부하테스트를 진행하는 방법을 배웠다. 부하테스트 부하테스트는 서버가 어느정도의 부하를 견딜 수 있는지 확인하기 위한 테스트 이다. 서버의 한계치를 확인함으로서 한계점을 넘어설 때 어떤 증상이 나타나는지 확인하고 장애 발생 시에 어떻게 대응하고 복구할 지 계획할 수 있다. Smoke Test VUser 1~2로 구성 최소한의 부하로 테스트 시나리오 오류 검증 및 시스템 오류 검증 Load Test 평소트래픽과 최대 트래픽에서의 성능 확인(서비스 배포 전에도 가설을 세워서 테스트 진행) 기능이 정상적으로 동작하는지 검증 배포, 인프라변경 (scale out, DB failover)시 성능 변화 확인 외부 요인(결제)등에 따른 예외 상황 확인 Stress Test 점진적으로 부하가 증가..
-
웹 성능 진단하기네트워크 & 인프라 2022. 4. 14. 11:39
이번엔 미션을 통해서 배포한 사이트의 성능을 진단하고 성능을 개선키도록 하였다. 먼저 웹 성능 진단을 알아보자. 서비스의 상태 진단 우선 서비스의 상태진단은 전구간, 인터넷구간, 브라우저 렌더링을 제외한 전 구간으로 실행할 수 있고 각각의 상태진단 방법은 다음과 같다. 전구간 : 브라우저로 직접 QA 인터넷 구간 : webpagespeed등의 도구 (브라우저 렌더링을 제외한) 전구간 : 부하테스트 가용성과 성능 먼저 가용성이란 시스템이 서비스를 정상적으로 제공할 수 있는 상태로 가용성을 높이기 위해선 단일 장애점(SPOF -> 서버장비가 장애 날 경우 서비스가 중단)를 없애고 다중화를 이용하여 장애가 발생하여도 시스템 기능을 계속할 수 있는 장애내성을 기르고 확장성 있는 서비스를 만들어야 한다. 성능이..
-
AWS 망 구성하고 서비스 배포하기네트워크 & 인프라 2022. 3. 28. 14:33
이번에는 AWS를 통해 망을 구성하고 서비스를 배포하는 미션을 진행했다. 배포부분은 heroku 배포를 제외하고는 진행해본 적이 없기에 이번 미션을 통해서 배포에 대해 많은 부분을 배울 수 있어 뿌듯했다! 👏 미션을 진행하던 도중 주의를 기울이지 않은 부분에서 문제가 발생한 부분도 있었지만 해당 부분을 해결하면서 더 많이 배울 수 있었다!😀 망 구성하기 망 생성 VPC 생성 Subnet 생성 외부망 : 64개씩 2개 (AZ 다르게 구성) (a, b) 내부망 : 32개씩 1개 (c) 관리용(bastion server) : 32개씩 1개 (d) 인터넷 게이트웨이 연결 라우팅 테이블 생성 (외부망용 1개, 내부망용 1개) 시큐어리티 그룹 설정 외부망 전체대역 : 8080 포트 오픈 관리망 : 22번 포트 오픈..
-
Mac에서 docker, docker machine, virtualbox설치하기네트워크 & 인프라 2022. 3. 28. 13:04
맥에서 도커를 설치해보자. 먼저 홈페이지에서 docker desktop을 다운받는다. https://www.docker.com/get-started/ Developers - Docker Docker Hub The world’s leading service for finding and sharing container images with your team and the Docker community. For developers and those experimenting with Docker, Docker Hub is your starting point into Docker containers. Create an account and s www.docker.com 도커 버전 확인하자. $ docker ver..
-
통신 확인하기네트워크 & 인프라 2022. 3. 23. 17:56
이번에는 네트워크 통신을 확인하는 방법에 대해 알아보자. ① Ping check IP 정보만으로 서버에 요청이 가능한 지 확인 ICMP 프로토콜 사용 (신뢰성을 보장하지 않는 IP의 오류정보를 발견하고 보고를 담당하는 프로토콜) TCP가 아니라 Port번호가 존재하지 않음 RTT(Round Trip Time) : 한 패킷이 왕복한 시간 (높을 경우 어느구간에서 오래 걸리는지 확인 필요) ARP(Address Resolution Protocol) : IP(논리적 주소)를 이용하여 MAC(물리적 주소)를 알아와 통신이 가능하게 해주는 프로토콜 Broadcast로 요청하면 수신한 장비들 중 자신의 IP에 해당하는 장비가 응답하고 응답 받은 NIC 포트정보와 IP, MAC 주소를 기반으로 이후 통신을 진행 $ ..