일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 자료구조
- dfs
- 명령어
- 프로그래머스
- Java
- 인텔리제이
- 문자열
- 주니어
- spring boot
- Linux
- HTTP
- 배열
- 도커
- 이직
- 코딩테스트
- 개발자
- IntelliJ
- 구름LEVEL
- 스프링
- 스프링부트
- 백엔드
- 스프링 부트
- bfs
- docker
- spring
- HashMap
- 스타트업
- 해결
- 해시맵
- 구현
- Today
- Total
목록Linux (4)
마이의 개발 블로그
배경지정된 사양에서의 부하테스트를 위해 도커가 사용하는 로컬머신의 코어와 메모리를 제한할 필요가 있었습니다. 하나의 도커 컨테이너만 동작시킨다면 실행 옵션에 명령어를 사용하는 방법도 있겠습니다만, 10개 이상의 도커 컨테이너가 도커 컴포즈로 동작하는 상황이었기 때문에 자원을 유동적으로 공유해서 사용해야하므로 OS에서 도커에게 할당하는 자원을 제한하는 편이 낫다고 판단했습니다. 여기서는 cgroups 명령어를 통해 도커 사용 자원을 제한하는 방법을 소개하고자 합니다. cgroups 명령어를 통해 도커 사용 자원을 제한하는 방법1. cgroups 디렉토리 생성(디렉토리명: docker_limit)sudo cgcreate -g memory,cpu:/docker_limit2. CPU, 메모리 제한 설정 추가//..
배경도커 동작 중 방화벽 적용을 위해 리눅스의 방화벽 프로그램인 firewalld를 켜면 서비스가 동작하지 않는 현상이 관찰되었습니다. 처음에는 방화벽 정책때문에 도커 네트워크가 차단되는 문제라고 생각되어 방화벽 정책을 들여다보았고, 이후 컨테이너 재시작 시 출력되는 '기존에 생성해놓은 도커 네트워크 인터페이스를 찾을 수 없다'는 오류메시지를 관찰한 후에는 도커 네트워크가 관리되는 부분을 살펴봐야겠다고 판단했습니다. 문제의 원인은 도커 네트워크 인터페이스는 디폴트로 iptables에서 관리되는데 반해 firewalld는 nftables를 디폴트로 사용하기 때문이었습니다. 방화벽이 내려가있을 때는 도커가 도커용 네트워크 인터페이스(docker0, br-... 등)정보를 iptables에 등록하게 되는데, ..
배경솔루션 설치 중 특정 구간에서 모든 요청에 대한 쿼리스트링이 사라지는 현상이 관찰되었습니다. 서버 A(웹 서버) -> 서버 B(솔루션서버) 로의 요청 시 A의 로그에는 쿼리스트링이 정상적으로 찍히는 반면 서버 B의 로그에서는 쿼리스트링만 사라진 채로 HTTP 요청이 들어오는 것을 확인할 수 있었는데 이상한 건 쿼리스트링만 사라진다는 점이었습니다. 예를 들어, https://www.example.com/solution/user?id=11 호출A (www.example.com에 해당하는 웹서버)-> B(/solution 경로에 리버스 프록시로 맵핑된 솔루션 서버) 호출B에는 www.example.com/solution/user 만 전달됨이런식으로 쿼리스트링이 없어지는 경우 소프트웨어의 정상적인 동작을 기..
배경 소프트웨어가 설치되는 환경에 따라 하나의 서버에 접속한 후 그 서버와 연결된 다른 서버에 접속해야하는 경우가 있습니다. 예를 들어 web, WAS, DB서버들로 구성된 환경에서 web은 외부 IP로 접근이 가능하지만 WAS, DB는 web을 통해서만 접근이 가능한 경우가 이에 해당합니다. 이럴 때 사용할 수 있는 방법들을 제가 겪었던 문제 상황들과 함께 제시해보겠습니다. 문제 상황 1. web서버로만 접근이 가능한 WAS 서버에 접속하여 작업을 수행해야할 때 (ssh 이용) 1) 터미널을 통해 web 서버에 접속합니다. 2) 접속된 web 서버의 터미널에서 ssh 명령어를 이용해 WAS에 접속합니다. - 명령어 형식: ssh @ -p - 예를들어 1.2.3.4:1234 에 user라는 이름으로 접속..