1. 망이란 무엇일까 AWS는 각 나라별로 데이터센터를 운영하고 있으며, 이러한 데이터 센터가 모여있는 지리적인 영역을 리전이라고 합니다. 또한, VPC는 하나의 리전에만 종속되어야 합니다. 그리고 위 사진처럼, 하나의 VPC 내에서 여러 개의 서브넷으로 구분할 수 있는데, 이들은 각각 다른 AZ에 구성할 수 있습니다. 그렇다면, 여기서 서브넷은 무엇이고, 이들을 별도의 AZ에 구성하는 이유는 무엇일까요?1) 서브넷서브넷은 일종의 망입니다. 그렇다면, 망이란 무엇일까요? 망은 노드들과 노드들을 연결하는 링크로 구성된 시스템을 일컫습니다.노드 : OSI 7계층 기준, 3계층(네트워크 계층) 이상의 장비를 칭합니다. 즉, IP로 식별되는 장치를 말합니다.링크 : 노드들을 연결하는 물리적 회선을 칭합니다.이러..
웹 서비스를 구동하였을 때, 이것이 잘 동작하는 지를 확인하는 방법으로 크게 3가지가 있습니다.Ping 테스트Port 테스트Http Status 테스트이번 포스팅에서는 이 중 첫 번째인 Ping 테스트에 대해 알아보고자 합니다.참고로 위 세 가지를 꼭 순서대로 진행할 필요는 없습니다. 다만, 특정 테스트를 했을 때, 문제가 발생했다면 이것이 서버의 문제인지 네트워크의 문제인지를 파악하는 근거를 마련할 수 있을 것입니다.1. Ping 체크를 하는 이유Ping 명령어는 ICMP 프로토콜을 사용해 대상 서버에게 보내 IP 주소만으로 서버에 연결이 가능한지에 대한 피드백을 얻는 방법입니다.ping 명령은 호스트나 게이트웨이로부터 ICMP ECHO_RESPONSE를 확보하기 위해 인터넷 제어 메시지 프로토콜(IC..
https://whxogus215.tistory.com/135 로그를 분석하며 문제를 발견하다 [커넥션 풀 트러블 슈팅 - 2]https://whxogus215.tistory.com/134 EC2가 자꾸 죽네...? [커넥션 풀 트러블 슈팅 - 1]서비스 오픈을 앞두고 있는 시점에서 서버가 터지는 일이 발생했는데, 한달 동안 두 번이나 이런 문제가 발생했다. 도whxogus215.tistory.com지난 포스팅에서 NginX 및 스프링부트의 로그를 바탕으로 원인을 분석하였고, 데이터를 저장하는 과정에서 불필요하게 많은 insert 쿼리가 발생함을 발견하였다. 그러나 IDENTITY 방식으로 ID를 관리하던 엔티티였기에 JPA가 아닌 JDBC를 통해 batchInsert를 적용하기로 하였다. 1. JPA..
https://whxogus215.tistory.com/134 EC2가 자꾸 죽네...? [커넥션 풀 트러블 슈팅 - 1]서비스 오픈을 앞두고 있는 시점에서 서버가 터지는 일이 발생했는데, 한달 동안 두 번이나 이런 문제가 발생했다. 도대체 어디서 문제가 발생한건지 싶어 EC2에서 실행중인 스프링부트(WAS) 컨whxogus215.tistory.com지난 포스팅에서 서비스를 정식 오픈하지 않았음에도 커넥션 풀의 스레드 기아 현상으로 인해 서버가 두 번이나 죽는 문제가 발생했다. 필자는 먼저 우리 서비스의 구조인 3-Tier에서 가장 앞 단에 있는 웹서버, NginX의 로그를 확인해보았다. 1. 충격적인 NginX의 로그 NginX의 로그는 Ubuntu 기준, /var/log/nginx/access.lo..
서비스 오픈을 앞두고 있는 시점에서 서버가 터지는 일이 발생했는데, 한달 동안 두 번이나 이런 문제가 발생했다. 도대체 어디서 문제가 발생한건지 싶어 EC2에서 실행중인 스프링부트(WAS) 컨테이너의 로그를 확인해보았고,다음과 같은 에러가 발생했다. 당시에 로그를 저장하지 않고, 컨테이너를 재실행해서 로그를 캡쳐하지 못했다... 다만 해당 포스팅에서 발생한 것과 동일한 에러가 발생했다. (로그를 어떻게 효과적으로 남길 수 있는지에 대해서도 추후 공부해볼 예정...!) 우리 서비스는 성적 파일을 업로드하거나 자신의 공학인증 결과를 조회할 때 커넥션을 사용하여 DB의 쿼리 결과를 가져온다. 하지만 아직 오픈하기 전이라 서버에 들어오는 사용자가 우리 개발진들(3명) 말고는 없없다. 즉, 다수의 요청으로 인한..
해당 글은 팀 프로젝트를 진행하면서 맡았던 파트에 대한 내용을 기록하는 용도로 작성되었습니다. 공부를 통해 배운 내용을 응용하고 이와 관련된 문제점을 파악하며 느낀점을 작성하기 위함입니다. 필자는 백엔드에서 DB 및 데이터 접근 계층을 담당하게 되었다. 따라서 데이터 접근 계층에 대한 인터페이스를 정의하고 관련된 메서드를 구현하여 테스트해야 한다. 1. 데이터 접근 인터페이스 정의 서비스 계층이 구현체에 의존하게 되면, 이후 데이터 접근 기술을 변경하였을 때 영향을 받을 수 있다. 따라서 인터페이스와 의존할 수 있도록 데이터 접근 관련 인터페이스를 정의하였다. public interface QuestionRepository { public void questionWrongCountRead(); publi..
내 블로그 - 관리자 홈 전환 |
Q
Q
|
---|---|
새 글 쓰기 |
W
W
|
글 수정 (권한 있는 경우) |
E
E
|
---|---|
댓글 영역으로 이동 |
C
C
|
이 페이지의 URL 복사 |
S
S
|
---|---|
맨 위로 이동 |
T
T
|
티스토리 홈 이동 |
H
H
|
단축키 안내 |
Shift + /
⇧ + /
|
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.