MSA(마이크로 서비스 아키텍처)

MSA(마이크로 서비스 아키텍처)

JWT

전통적인 인증 방식 이전에는 클라이언트가 다양하지 않았음. 인터넷하나에만 보내줬기에 세션과 쿠키를 자주 사용했다. 근데 기기가 모바일도 생기고 패드도 생기고 이래저래 늘어나면서 쿠키 세션을 공유하기 힘들어졌다 좀 더 최신화된 방식 (토큰) 그래서 요즘은 인증 절차를 토큰으로 하는데, 1. 로그인할 때 유저 정보를 보내면 이 정보를 바탕으로 토큰을 만들어서 클라이언트에게 전달한다. 2. 그럼 다른 요청을 보낼때, 클라이언트는 토큰을 같이 실어서 이것좀 해줘~ 하면 서버에서 들어온 토큰과 유저의 토큰을 비교해보고 맞으면 서비스를 제공한다. 좀 더 구체적으로 JWT(Json Web Token) 정보를 비밀리에 전달하거나, 인증할 때 주로 사용하는 토큰, Json객체를 이용한다. 이런 구조로 이루어져 있다. 헤..

MSA(마이크로 서비스 아키텍처)

베포시 크레덴셜과 api key

베포를 하고, 크레덴셜이나 api key를 관리해야겠는데, 어떻게 해야할지 감이 잘 안왔다. 그래서 git-secret?을 써볼려다가 git으로 ci/cd를 해야 사용할 수 있는 것 같아서 포기했다. 결국 젠킨스 안에 직접 yaml 파일을 집어넣는 방식으로 해야하나..? 아니면 차라리 프라이빗 레포를 하나 만들어두고 거기다 모든 크레덴셜이나 키를 넣어두고 쓸까? 잘 모르겠다 아는 사람있으면 알려주세요

MSA(마이크로 서비스 아키텍처)

젠킨스 시작 비밀번호

보통 젠킨스를 컨테이너로 띄우면 이런 화면이 떠야하는데 , 나는 인스턴트 몇번 밀고 다시 할 때마다 안뜬다. 이유 아시는분..? 무튼 이럴땐 저 비밀번호를 직접 찾아가야하는데 젠킨스 컨테이너에 접속한 후 cat /var/jenkins_home/secrets/initialAdminPassword 저 파일 열어보면 뜬다 경로는 알아서 설정에 따라 조금씩 달라질지도 이거 안뜨는거부터 불안해 죽겠다 ㅠ

MSA(마이크로 서비스 아키텍처)

swap 메모리

싸피에서 메모리 빵빵하고 선녀같은 ec2 받아쓰다가 프리티어로 하니까, 모든 곳에서 에러가 떠서 베포하기 눈물난다. 인스턴트만 4번은 밀어버린 것 같다.. 1G로 뭘하라고.. 그래서 2G로 스왑 메모리 시켜줘야한다. 1G일때는 mysql, 도커, 젠킨스 깔면 바로 인스턴스 멈춘다 ㅋㅋ 그래서 2G로 늘려줘야함 스왑 메모리는 하드 메모리를 RAM처럼 쓸 수 있도록 해준다. 대신 속도는 느려진다. 거두절미 하고 가보자 1. SWAP 파일 확인 sudo free -m sudo swapon -s 2. SWAP 파일 생성 sudo fallocate -l 2G /swapfile swap을 하기위한 swapfile을 생성 -l 뒤에는 swapfile의 용량을 입력하면 됩니다. 2G를 입력하면 메모리 외에 추가로 2G..

MSA(마이크로 서비스 아키텍처)

Jenkins, Docker in Docker, Docker out of Docker

젠킨스는 CI/CD 환경을 구축하기 위한 도구이다. CI/CD(Continuous integration, CI, continuous delivery, CD) 빌드, 베포를 자동으로 해주고 문제가 있을 시 바로 피드백을 준다. 나는 도커로 젠킨스를 띄우고 젠킨스를 이용해서 도커를 조작할 것이다. DIND(도커 인 도커) 도커 컨테이너 안에 또 다른 도커를 설치해서 운용하는 구조 젠킨스가 도커 관련 명령을 실행할 수 있으려면 도커 호스트에 해당 명령을 전달할 수 있어야 한다. 호스트 OS에 젠킨스가 자체적으로 설치되어있다면 젠킨스가 도커랑 서로 정보를 주고 받는데, 무리가 없겠지만 도커로 젠킨스 컨테이너를 만들고, 이 컨테이너 안에는 또 다른 환경이고, 이 환경 안에는 도커가 없기 때문에 컨테이너로 올린 젠..

MSA(마이크로 서비스 아키텍처)

docker: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by docker)

문제 해결을 해보자 이런 오류가 뜨고, 이전 문제때문에 도커라이징이 안되는 것을 볼 수 있다. 몬가 버전이 맞지 않다는 것이다. 나는 2.35를 쓰고 있는데, 2.34나 2.32버전이 필요하다고 젠킨스에서 말해주는 것 같다(추측) 이게 찾아보니까 잘 안나오기도 하는데,, required docker 라는 걸 보니 우선 도커 버전 업데이트를 해봤다. 그 결과? fail 짜증나면 지는거다. 이제 도커 재설치를 해볼까...? 지식 + 1 할겸 GLIBC가 뭔지 알아보자 "glibc는 gnu c library를 의미한다. 이게 왜 중요하냐 하면 linux 위에서 돌아가는 거의 대부분의 소프트웨어가 여기에 기반하고 있기 때문이다." 음.. 네.. 도커 재설치할게요 근본원인을 찾아야하지만, 근본원인이 그랜드 캐니언..

MSA(마이크로 서비스 아키텍처)

Docker

도커가 뭔데? -가상화 기술인데 컨테이너 가상화 기술임 OS 가상화가 있고 Container 가상화가 있는데, 도커는 Container 가상화 기술임 참고로 OS 가상화는 버츄얼 박스 같은게 OS 가상화 host컴퓨터의 리소스도 적게 먹고, 굉장히 빠르고 경량화되어있음. 최소한의 라이브러리만 들고 가상화 시키는 것 이런 커맨드들이 있다!

MSA(마이크로 서비스 아키텍처)

데이터 동기화 처리(kafka)

똑같은 서비스가 2개 이상 가동되고, 서로 다른 db를 사용할 때, 이럴 경우 서로간의 db가 동기화되지않으면 서로 잘못된 정보를 표시할 수도 있다. 그래서 데이터를 동기화하는 녀석들을 사용할 것이다. 지금 알아볼 것은 kafka 이다. 카프카를 사용하지 않으면, end to end 연결방식의 아키텍쳐에서 데이터 연동의 복잡성이 증가하고, 확징이 어려워진다. 근데 중간에 카프카 서버를 나두면 한방에 교통정리를 해준다 !

MSA(마이크로 서비스 아키텍처)

Feign Client

Feign Client 페인 클라이언트는 restTemplate 처럼 다른 외부 api에 요청을 보낼 때 사용되는 방법이다. 사용방법은 openfeign 라이브러리 추가 후 메인 클래스에 @EnableFeignClients를 추가해주면 된다. 그리고 인터페이스를 만들고, 그 위에 @FeingClient추가하고 이렇게 되면 @FeingClient(name="order-service") order-service로 등록된 서비스를 디스커버리로 찾으로 간다. 찾아서 GetMapping 안에 order-service/{userId}/orders로 들어간다 그럼 실제 오더 서비스에서 형광색이 칠해진 api를 호출하는 것이다. 그럼 실제 인터페이슬 사용하는 곳에 객체를 하나 생성해주고, 생성자 주입까지 마친뒤, 사용..

MSA(마이크로 서비스 아키텍처)

젠킨스&깃허브 연동 -2

새로운 에러를 맞았따 크레덴셜 아이디를 찾을 수 없다구한다. 아마 요거 말고 XXXXXXXXXXXXXXXXXXXXXXXXXXx 이녀석을 입력해야한다. 그래서 코드를 pipeline { agent any // 사용 가능한 에이전트에서 이 파이프라인 또는 해당 단계를 실행 tools { jdk 'jdk-17' } stages { stage('Prepare') { steps { // "빌드" 단계와 관련 단계 수행 git branch: 'main', credentialsId: 'JENKINS', url: 'https://github.com/FEFE-paypay/eureka.git' } post { success { sh 'echo "Successfully Cloned Repository"' } failure ..

E재HO
'MSA(마이크로 서비스 아키텍처)' 카테고리의 글 목록