일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- ecs
- 모캠
- Reducer
- 쿠버네티스 컨트롤러
- React.js
- #Swagger
- #Swagger-ui
- React
- SRE
- fluentd
- server
- 기술PM
- docker
- 모두의캠퍼스
- #api 문서화
- 프로세스 통신
- action
- 쿠버네티스
- Kubernetes
- AWS
- javascript
- #Swagger-editor
- Site Reliability engineering
- 프로세스
- 카카오게임즈
- #Swagger-codegen
- Redux
- 북딜
- #스웨거
- IP
- Today
- Total
목록분류 전체보기 (166)
탕구리's 블로그
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cyMjTD/btqDRwl8AIM/Gs5TrAxJJUEnMUKoDJFilK/img.png)
오늘은 nginx에 인증 모듈을 추가하는 작업을 진행하였고 그중에서도 ldap을 연동하는 과정에 대해서 정리를 진행합니다. nginx 인증이란, nginx를 통해서 특정 페이지로 이동할 때, 로그인과 같은 인증과정을 nginx에서 처리할 수 있도록 하는 과정입니다. 인증을 위한 방법에는 여러가지가 존재하는데 그중에서도 LDAP을 통하여 인증과정을 진행하도록 하겠습니다. 우선, nginx를 통해서 인증을 진행하려면 nginx를 설치해야 됩니다. (당연한 소리) 1. 바이너리를 통해 설치하는 방법 2. 패키지 매니저를 통해 설치하는 방법 1. nginx 설치하기 저는 centoss7에서 yum 패키지를 통해 nginx를 설치하는 방법으로 진행하였습니다. yum 저장소에는 nginx가 포함되어 있지 않기 때문..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/ejTUUM/btqDvhv3g4Z/dvQ3JK7ve6nDXal8irIZM1/img.png)
지난 글에서 Docker를 통해 Tomcat과 Redis를 구동하기 위해했던 작업 과정을 정리했었어요. 내용을 정리해놓은 링크는 글 맨 아래에 링크 걸어둘 테니 궁금하신 분들은 한번 들려주세요! 이번엔 두개의 컨테이너가 데이터를 주고받아야 하기 때문에 네트워크가 가능한 상태가 되어야 합니다. 그러기 위해서는 도커에서 사용하는 네트워크 구조에 대해서 어느 정도의 이해가 필요하기 때문에 도커의 네트워크 구조는 어떻게 이루어져 있는지 내용을 정리하는 시간을 갖도록 할게요~! 도커 네트워크의 구성 처음 도커를 설치하고 데몬은 구동하게 되면 docker0이라는 네트워크 인터페이스가 생성됩니다. 이는 기본적으로 도커에서 사용하는 가상의 네트워크 인터페이스입니다. 도커 데몬 구동시 도커 내부 로직에 의하여 172.1..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/xRLRL/btqDhvXqKsP/VJ6vx8RCpdaIhBXjKyjEBk/img.png)
도커를 통한 작업을 하다 문제가 발생했을 때, 우리는 로그에 굉장히 많은 의존을 하게 된다. 원인모를 오류가 계속되는 것은 굉장히 답답한 일이기 때문에, 도커 로그를 확인하는 방법을 기록해두기로 하였다. 우선, 우리가 필요한 도커 파일을 전부 작업하고 도커 이미지를 기반으로 도커 컨테이너를 구동하게 된다. 우리가 내린 명령어에 의해 도커 데몬은 작업을 진행하게 되고, 우리의 컨테이너가 구동되는 과정에서 발생하는 디버그를 로깅할 수 있다. 1. 데몬 설정하기 도커 데몬의 디버그를 위해서는 도커 데몬에 대한 디버깅을 허용해야 한다. /etc/docker/daemon.json으로 이동하여 "debug " : true 로 설정하여 준다. # /etc/docker/daemon.json { "debug" : tru..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/tkTst/btqDg6hPg0G/UYBlPqArM2rAgRkPpXIlSk/img.png)
오늘의 내용은 레디스를 테스트하며 도커로 컨테이너를 띄우는 작업을 진행하며 겪었던 삽질에 대해서 적어보려 한다. (생각만 해도 벌써 짜증이 밀려온다) 하려고 했던 작업의 과정은 아래와 같다. 1. 기존에 사용하던 레디스의 백업본(*.rdb)과 설정파일(*.conf)을 생성한다. 2. 도커를 사용하기 위해 내가 원하는 환경의 DockerFile를 작성한다. 3. 레디스를 구동하여 테스트한다. 내용만 보면 진짜 간단하다. 할 것도 없다. 해본 적이 없던 것도 아니다. 그렇지만 항상 맘대로 되는 게 없다. 1. 레디스의 백업본은 쉽게 만들 수 있다. 우선, 레디스의 백업? 본은 두 가지가 존재한다. aof파일과 rdb 파일의 차이점이 궁금하면 여기를 참고하자. 레디스에 접속하여(redis-cli) save 명..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bIOtEU/btqCO2tX0W6/sEIubxLb3gIlkBqPRfTe21/img.png)
Docker로 Tomcat을 사용하자 서버 환경을 재구축하는 작업을 진행하며 겸사겸사 컨테이너 환경 운영에 대해서도 고려해보던 중 사용할 수 있을진 모르겠지만 한번 환경을 만들어보고 운영에 대해 시뮬레이션해보기로 했어요 기본적인 웹서버 구성이기 때문에 dockerhub에 올라와있는 이미지를 그대로 가져다 쓸까 생각도 했지만 운영환경에 대한 버전을 맞춰 주어야 했기 때문에 centos7 기반의 이미지를 새로 만들기로 하였습니다. centos에 톰캣을 올리는 정도였기 때문에 도커 파일의 작성은 크게 복잡하지 않았습니다. Dockerfile FROM centos:7 LABEL maintainer= # openjdk1.8. 설치 RUN mkdir -p /apps && mkdir -p /bin && mkdir -..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dGOjx5/btqCFxnirEd/Gdd11DNaCGyiecHXY4H6tK/img.jpg)
요 근래, 나를 아주 힘들게 했던 일이 하나 있었다. 앱 클라이언트가 서버로 요청을 보내지 못하는 문제, 근데 브라우저에서는 아주 잘^^ 요청이 온다는 사실. 몰랐다 생각보다 간단한 문제인 줄.. 특정 앱에서만 통신이 안 되는 상황이었고 당연히 앱에 문제가 있을 거라고 생각했고 네트워크는 ACL만 잘 설정 되어 있으면 문제가 없을 줄 알았다. 현실은 그게 아니었다는게 문제지만... 문제는 간단했다. 클라이언트의 TLS 버전이 낮아서 https의 인증 부분을 담당하는 로드밸런서에서 TLS 협상 오류가 발생하고 있었다. TLS 협상오류가 뭘까? 뭔지 알아야 확인을 해보든 말든 할 텐데... 우선 TLS에 대하여 알아보자. TLS(Transport Layser Security)란 무엇일까? - SSL 3.0 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/AjghW/btqCEPgRY42/KjSwtK7cNqZqdzud7kzSG0/img.png)
쉘 스크립트 짤 일이 생겼다. 자주 사용하지 않기 때문에 볼 때마다 문법을 새로 공부하는 것 같다. 그래서 오늘은 준비했다. 쉘 스크립트 for 문 활용하기!! 우선 for문에 관련 된 문법을 살펴보자 # 우선 아래와 같은 형태로 동작한다. for 변수 in [범위](리스트, 배열, 묶음) do 작업할 내용 done # 기본 문법을 통한 for문 #!/bin/bash for var in 1 2 3 do ehco $var done # 출력 // 1 // 2 // 3 # 배열을 이용한 for문 #!/bin/bash ARRAY=("hello", "dongsu", "zzang") for value in "${ARRAY[@]}"; do echo $value done # 출력 // hello // dongsu //..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/nggxx/btqCy4efFhB/mHxI7il9mhETfqGUoxKp1k/img.png)
이 글은 토스트 밋업에 올라온 "개발자를 위한 레디스 튜토리얼02"의 내용을 정리한 글입니다. 레디스 캐시로서 사용하기 레디스를 캐시로 사용하는데 있어서 다양한 캐싱전략이 사용됩니다. 캐싱 전략은 캐싱되는 데이터의 유형과 데이터에 대한 엑세스 패턴ㄴ에 따라 달라지기 떄문에, 서비스 환경에 따라서 적절한 캐싱 전략을 사용해야합니다. Look Aside(=Lazy Loading) Look Aside 방식은 캐시서버를 옆에 두고 필요할 때만 데이터를 캐시에서 로드하는 캐싱 전략입니다. 요청의 흐름은 다음과 같습니다. 1. 캐시에 데이터가 있는지 먼저 확인합니다. 2-1. 캐시에 데이터가 있는 경우(cache hit) 해당 데이터를 사용합니다. 2-(2). 캐시에 데이터가 없는 경우(cache miss) 데이터..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/ttclL/btqCz6PElr9/BuMWmUEw8fU75UIhhu8A9K/img.png)
몇일전, 일을 하며 네트워크에 관련된 설정을 해야하는 상황이 있었다. 나는 내가 가진 지식에 대해 확신이 별로 없는편(?)이기 때문에, 뭔가를 해야하는 상황이 오면 곧 잘 뇌정지가 오곤하기 때문에...도메인 네임과 호스트네임에 대한 개념과 관련하여 뇌정지가 오기 시작했다. 그래서 다시는 헷갈리지 않도록 내용을 간단하게 정리하려 한다. 부끄럽다.. 우선, 도메인네임(DomainName)이란 넓은 의미로는 네트워크 상에서 컴퓨터를 식별하는 호스트명을 가리키며, 좁은 의미에서는 도메인 레지스트리에게서 등록된 이름을 의미한다. 무슨말이냐 하면, 우리가 네트워크상에서 원하는 호스트를 가리키는 이름정도로 생각하면 될 것 같아요. 네이버를 예를 들면, 네이버 메인 페이지는 naver.com라는 도메인 주소를 갖죠? ..