본문 바로가기

Study/Server

(16)
MySQL 워크밴치 연결시 Public Key Retrieval is not allowed 에러 해결하기 나의 맥에서 도커로 MySQL 서버를 실행하고 워크밴치(DBeaver)로 해당 DB에 접근시 "Public Key Retrieval is not allowed" 에러 메세지가 발생했다. 당황하지 않고 일단 ChatGPT에게 물어봤더니 친절하게 해결 방법을 알려줬다.     해결 방법1. DBeaver 열기: DBeaver를 실행합니다. 2. 연결 설정 편집:왼쪽 패널에서 데이터베이스 연결을 찾고, 해당 연결을 우클릭한 후 Edit Connection을 선택합니다.3. Driver Properties 설정:Connection settings 탭으로 이동한 후, Driver Properties 섹션으로 가세요.여기에서 새로운 속성을 추가해야 합니다.Property: allowPublicKeyRetrieval..
[Kubernetes] 도커 데스크톱에서 쿠버네티스 사용하기 (Mac OS) *이미 Docker Desktop이 설치되었다고 가정하고 쿠버네티스 설치 과정을 진행한다.  1. 쿠버네티스 활성화하기1) Docker Desktop을 열어 Extensions > Settings를 클릭한다.       2) 왼쪽 메뉴에서 Kubernetes를 클릭하고 Enable Kubernetes 항목에 체크한 뒤 Apply & Restart 버튼을 클릭한다.      2. Kubernetes Cluster 설치하기 팝업창에서 Install 버튼을 클릭한다. (몇 분 정도 시간이 걸린다.)    3. Kubernetes Running 상태 확인쿠버네티스 클러스터 설치가 완료되면 Kubernetes가 running 상태가 된다.
[Kubernetes] Mac M1 - kubectl 설치하기 (ft. 카카오 클라우드) kubectl은 클러스터를 제어하기 위한 k8s 커맨드 라인 도구이다. GUI로도 사용할 수 있지만 다양한 CLI 명령어로 k8s를 제어할 수 있다. kubectl 제어를 설정하기 위해 먼저 kubectl 클라이언트를 설치한 뒤 kubectl 제어를 설정하는 순서로 진행해본다.    kubectl 클라이언트 설치하기 1. 최신 릴리즈를 다운로드 한다. (Apple Silicon 버전)터미널을 열어 curl을 이용해 kubectl 바이너리를 설치한다. $ curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/arm64/kubectl"   2. 바이너리를 검증한다 (선택 사항)1) 아래 ..
[NginX] Mac 로컬에 설치하기 개요NginX란?NginX는 가장 많이 사용되는 웹 서버 소프트웨어 중 하나이다. 웹 서버란, 웹 브라우저(ex. 크롬)의 요청에 따라 HTML, 이미지 등의 정보를 제공하는 소프트웨어 또는 그런 기능을 탑재한 컴퓨터를 말한다. 웹 서버 웹 브라우저간 HTTP, HTTPS 프로토콜로 통신하며, 웹 브라우저는 웹 서버에서 전송된 정보를 사람이 보기 편한 형태로 번역해서 화면에 표시해준다.  보통 웹 서비스를 개발할 때, 웹 서버 + WAS(웹 애플리케이션 서버) 조합으로 구성한다. WAS는 주로 데이터베이스로 관리되는 데이터를 처리하는 서버를 말한다. 웹 브라우저에서 사용자의 요청이 들어옴 -> 웹서버 -> WAS [데이터 처리] & WAS [데이터 전송] -> 웹서버 [HTML, 이미지 등 전송] ->..
[Jenkins] (3) 빌드 후 애플리케이션 자동 실행 설정 시도하기 (권장❌) 로컬에서 빌드 후 애플리케이션 자동 실행 스크립트 작성하기 이번 글에서는 Jenkins 빌드 후 자동 실행 스크립트를 작성해 애플리케이션 서버를 띄워볼 것이다.   1. Jenkins 빌드 파일 저장 위치 확인로컬에 설치한 Jenkins에서 빌드된 파일이 저장되는 위치는 다음과 같다. JAR 혹은 WAR 파일이 생성된다. /Users//.jenkins/workspace//target/ 나의 경우에는 빌드된 파일이 JAR 파일이다.    2. 아티팩트(빌드 파일) 실행하기아래 빌드 파일의 종류에 따라 터미널에서 아래 명령어를 입력하면 애플리케이션을 실행할 수 있다. JAR 파일 실행 명령어$ java -jar /Users//.jenkins/workspace//target/.jarWAR 파일 실행 명령어$ ..
[Jenkins] 비밀번호 잊어버렸을 때 변경하기 젠킨스를 처음 설치했을 때 확인했던 initialpassword 파일이 보이지 않는다. 그래서 비밀번호를 재설정 해봤다.  1. 젠킨스 config 파일 조회sudo vi /Users/yewonlee/.jenkins/config.xml터미널에서 위의 명령어를 입력해 파일 내용을 확인한다.  2. Config 수정true 이 부분을 false로 바꾸어준다. 3. Jenkins 재시작$ brew services restart jenkins터미널에서 위의 명령어를 입력해 젠킨스를 재시작 한 뒤, 웹에서 Jenkins를 다시 접근하면 로그인 과정 없이 접근할 수 있다. 4. 비밀번호 변경  위에서 Change Password 버튼을 클릭해 비밀번호를 수정하면 된다. 5. Config 수정 내용 원복2번에서 수정..
[Jenkins] (2) Mac 로컬에서 Maven 프로젝트 GitHub 연동 및 자동 빌드하기 Maven 환경 셋팅젠킨스에서 GitHub에 소스 코드가 변경될 때 Maven 프로젝트를 로컬에 빌드하는 배포 자동화 시스템을 구축할 것이다.  1. Jenkins 화면 왼쪽 메뉴에서 "Jenkins 관리" 클릭   2. Dashboard > Jenkins 관리 > Tools : 환경설정- Maven Installations 설정   3. Dashboard > Jenkins 관리 > Plugins > Available Plugins: 플러그인 설치 (1) GitHub Integration 설치 (2) Maven Integration 설치   4. 새로운 Item 만들기  (1) Item 이름 입력 후 "Freestyle Project"로 선택 후 OK (2) Item 환경 설정- GitHub Projec..
[Jenkins] (1) Jenkins란? Mac 로컬에 설치하기 Jenkins란?젠킨스에 대해 알아보기 전, 먼저 CI/CD의 개념을 알아야 한다. CI/CDCI(Continuous Integration)는 곧 지속적 통합, CD(Continuous Deployment)는 곧 지속적 배포라는 의미의 단어이다.개발자들이 동시에 작업한 코드 변경 사항을 통합(CI) 및 배포(CD)하는 프로세스를 의미한다.  JenkinsCI/CD를 위한 오픈 소스 도구로, 소프트웨어 개발 생명주기를 자동화한다.즉, 코드 변경 작업이 있을 때마다 빌드 > 테스트 > 배포 까지의 과정을 자동으로 수행하기 때문에 개발자들이 별도로 관리하지 않아도 된다. 또한 다양한 플러그인을 지원하기 때문에 필요에 맞게 CI/CD 환경을 확장할 수 있다.  Jenkins는 Master/Slave 구조로 동작..
Apache Airflow 설치 (+ MySQL) 0. 실행 환경 - Centos 7 - MySQL 5.7 1. 필요한 패키지 설치 1) MySQL 설치, Database 생성 # MySQL 접속 mysql --user={계정} --password={password} --host={host} # database 생성 create database airflow; # 유저에 airflowDB 권한 부여 grant all privileges on airflow.* to '{계정}'@'%'; 2) 가상환경 생성 및 실행 # 가상환경 생성 python -m venv venv # 가상환경 실행 source venv/bin/activate 3) airflow 설치 # pip upgrade pip install --upgrade pip # airflow 설치 pip ..
[Elasticsearch] Kibana 설치하기 0. 설치 방법의 종류주로 rpm 으로 Kibana 설치를 많이 하는 것 같다. RPM이란?Red Hat Package Manager의 약자로, Red Hat 계열의 Linux 배포판에서 주로 사용된다. Kibana RPM 패키지는 시스템 패키지 관리자를 통해 간단하게 설치할 수 있다. yum이나 dnf와 같은 패키지 관리자를 사용해 의존성을 자동으로 해결하며, upgrade/제거도 편리하다.  하지만 여기선 TAR 아카이브로 직접 파일을 다운받아 설치하려고 한다. (root가 아닌 계정으로는 rpm을 통해 설치할 수 없다고 한다)TAR 아카이브란?일반적으로 리눅스 시스템 어느곳에서나 압축을 해제할 수 있다. 이 방법은 배포판에 상관없이 사용할 수 있으며, 커스마이징이 자유롭다. 의존성 및 설정은 수동으..
Home Server (6) - DHCP 이란 이번 글에서는 자신의 IP 주소를 변경하는 방법을 적어볼 것이다. 그리고 그렇게 주소를 변경하는 것이 얼마나 까다로운지를 보면서, 어떻게 자동으로 설정되는지를 살펴볼 것이다. 원래는, 우리가 컴퓨터를 사용해서 인터넷을 쓰기 위해서는 접속하고자 하는 사이트의 IP 주소를 직접 입력해야 했다. 그리고 우리 IP 주소를 수동으로 지정하는 방법을 windows 기준으로 잠시 살펴보자. 제어판-네트워크 및 인터넷-네트워크 및 공유센터-본인이 접속한 Wi-Fi (혹은 인터넷 연결)-속성 여기서 인터넷 프로토콜 버전4를 클릭하고 속성을 누르면 이런 창이 나온다. 기본적으로는 '자동으로 IP 주소 받기' 라고 설정이 되어 있다. 만약 직접 IP 주소를 지정하고 싶다면 '서브넷 마스크', '기본 게이트웨이' 등을 또한 ..
Home Server (5) - Dynamic&Static IP address 유동/고정 아이피 이번 글의 주인공은 Dynamic IP address 이다. 부족한 IP 주소를 가지고 좀 더 효율적으로 사용하기 위해 도입한 여러 방법 중 하나가 Dynamic IP이다. 보통 가정 집에서 인터넷을 사용하기 위해서 통신사 (다른 말로는 ISP - Internet Service Provider) 를 이용해 케이블을 컴퓨터나 공유기에 연결해 IP주소를 부여받는다. 그리고 만약 그 컴퓨터에 웹 서버같은 서버를 설치하고 누군가에게 저 IP 주소를 알려준다고 하자. 그럼 그 사람은 그 IP 주소를 웹 브라우저와 같은 클라이언트에 입력하고 엔터를 하면 내 컴퓨터에 요청이 온다. 하지만, 모든 집마다 IP주소를 하나씩 주다보면 IP 주소가 턱없이 부족하게 된다. 그래서 이 때 Dynamic IP 주소를 사용하는 것..
Home Server (4) - Port Forwarding 포트 포워딩 예를 들어, 192.168.04 의 IP 주소를 가지고 있는 컴퓨터에 웹서버를 설치했다고 생각해보자. 그러면 사람들이 이 웹 서버에 접속할 수 있게 하기 위해서는, 먼저 public IP 주소를 알려주어야 한다. 그리고 나서 192.168.04의 private IP 주소로 접속하도록 해주어야 한다. (이 때 port 를 이용) 우리가 공유기에다가 port forwarding 설정을 한다. 그리고 그 공유기의 public IP에 8081로 (public IP가 59.6.66.238:8081) 누군가가 접속을 한다면, 내부 네트워크에 있는 192.168.0.4:80번 port 로 공유기가 보내는 것이다. 그리고 또 설정을 하면 누군가가 59.6.66.238:8080번 port로 들어왔을 때, 내부 네트워크의..
Home Server (3) - port 이전 게시글에서, 내 컴퓨터를 클라이언트로 사용했을 경우 NAT가 동작하는 경우를 살펴보았다. 그리고 이제 그 컴퓨터를 홈 서버로 이용하기 위해 (서버로 사용하는 경우), 어떻게 처리를 해야 외부의 클라이언트가 내 컴퓨터로 접속할 수 있을지 알아보자. 기본적으로 내 컴퓨터가 client 상태인 경우, 외부 클라이언트가 public IP address로 접근을 했을 때 내부 네트워크 안에서 어느 LAN으로 연결해야 할지 모르기 때문에 무언가 조치를 해야 한다. 이를 위해서 준비된 개념이 port 이다. IP 주소가 컴퓨터에 접속하는 주소라고 하면, port는 컴퓨터 안에 설치된 서버에 접속하는 주소라고 할 수 있다. 예를 들어, 이런 항구가 있다. 여기에 있는 배들은 자신의 번호를 가지고 있고, 그에 해당..
Home Server (2) - NAT NAT란 Network Address Translation 의 약자로, private IP를 쓰고 있는 각각의 디바이스들이 외부의 인터넷에 접속할 수 있게 해주는 것이다. 예를 들어, 내 컴퓨터는 192.168.0.4 라는 IP 주소를 가지고 있다. 그리고 naver 에 접속을 한다면, 내부적으로 어떤 일이 일어나는지 살펴보자. 먼저, 내 컴퓨터는 Gateway address에 해당되는 IP 머신에게 신호를 보낸다. 공유기가 봤을 때, 그 사이트가 내부 네트워크 내의 요청이 아니기 때문에 이 요청을 WAN을 통해 외부로 보낸다. 그리고 요청을 보내기 전 두가지 일을 한다. 첫째, 이 요청이 192.168.0.4 라는 IP를 가지고 있는 컴퓨터의 요청이라는 것을 이 공유기 안에다가 기록한다. 둘째, 내 컴..
Home Server (1) - 공유기의 원리 먼저, IP address 란 무엇인가? 우리가 인터넷을 사용하기 위해서, 컴퓨터는 ip 주소를 가지고 있어야 한다. 그래서 다른 컴퓨터와 통신을 할 수 있다. (client 컴퓨터에서 server가 설치되어 있는 컴퓨터에 요청을 하면, 그 server에서 정보를 다시 그 client 컴퓨터의 ip주소로 다시 보낸다.) 우리는 보통 통신사와 계약을 해서 회선을 받는다. 그러면 그 케이블을 우리 컴퓨터에 꽂거나, 어떤 스마트폰을 와이파이에 연결하는 그 순간에 자동으로 그 컴퓨터에는 ip 주소가 부여된다. 하지만, 컴퓨터 뿐만 아니라 여러 개의 기기를 인터넷에 연결하기 위해서는 각 device 마다 ip 주소가 있어야 한다. 이때 보통 통신사와 계약을 다시 해 두 개의 회선을 받는 것이 아니라, 회선은 하나..