분류 전체보기
[Docker] 브리지를 통해 컨테이너 통신
1. 브리지 생성 [1] 도커 네트워크 확인 & 브리지 생성 [root@dev opc]# docker network ls NETWORK ID NAME DRIVER SCOPE 697ad12cd5fa bridge bridge local d955f1181bf5 host host local 30e9346c2d17 none null local [root@dev opc]# docker network create --driver bridge mybridge [2] data,log 삭제하고 도커 컨테이너 재생성 docker run -it --name db001 -p 3306:3306 -h db001 \ --net mybridge --net-alias=db001 \ -v /home/opc/db/db001/data:/va..
![[Docker] Master-Slave Replication 구성](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Fbg0WJ7%2FbtsCOzyb2By%2FAAAAAAAAAAAAAAAAAAAAACCbMUW_y1mkYHNxXoSSt0LAe7MlyLcuXccI8CeZdLRX%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DA%252BOPqwy3zcT8z0wJR2edFee6nas%253D)
[Docker] Master-Slave Replication 구성
Master/Slave 구조를 사용하는 이유 서버에 트래픽이 몰려들 때 해결하는 방법으로, 컴퓨터 성능을 1) Scale-up 하거나, 컴퓨터를 여러대 두는 2) Scale-out이 있다. DB로 다수의 트랜잭션이 몰리면 race condition이 발생할 수 있다. Replication(복제)으로 Master/Slave 구조를 형성하면 DB에 가해지는 부하를 분산하여 이러한 race condition을 미연에 방지할 수 있다. 일반적으로 Master에서 write(쓰기)를 하도록 하고, Slave에서는 read(읽기)를 하도록 하여, 부하를 분산한다. MySQL에서 Master/Slave가 동작하는 방식은 아래와 같다. [1] Insert/Update/Delete 트랜잭션이 들어오면 Master에서 이..
![[Docker] 호스트OS에 log, config 연결 (+my.cnf)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FLtHi8%2FbtsCRiCfzlz%2FAAAAAAAAAAAAAAAAAAAAAFp2EvomVTUN97CURa2AqNy_3pJIka2ZxjPCpzk27fMr%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DU02%252FfGHb%252Brk%252B2oWM5y2048lJacI%253D)
[Docker] 호스트OS에 log, config 연결 (+my.cnf)
호스트 OS에 log/config를 연결하기 위한 순서 [1] 호스트 OS에서 log,conf 파일 경로를 먼저 생성 [2] mysql 기본 설정 파일(my.cnf)을 호스트 OS의 conf 경로에 저장 * 주의 ) 이 때, my.cnf 파일의 설정값은 컨테이너를 기준으로 한다. 예를 들어, basedir=/var/lib/mysql 로 설정한다면, 이는 컨테이너의 /var/lib/mysql 경로를 의미한다. [3] 컨테이너를 재생성하며 -v 옵션을 통해 호스트 OS의 log/conf 경로와 컨테이너 log/conf 경로를 연결 * my.cnf 에서 설정했던 log 경로가 곧 컨테이너 log 경로이다. 컨테이너 conf 경로는 my.cnf이 저장되는 아무 경로로 설정하면 된다. 호스트 OS에 log/con..
![[Docker] Docker란? Docker로 Mysql 설치해보기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FbVC1R6%2FbtsCLpAX3FY%2FAAAAAAAAAAAAAAAAAAAAAOy18JXaBKnu6p766jT9db3xiEoprtcyiI3753hElfM3%2Fimg.jpg%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DWtDKnAUxpD%252BqraCpCu%252F36LcZfKI%253D)
[Docker] Docker란? Docker로 Mysql 설치해보기
Docker와 VM의 차이 * VM : Virtual Machine 가상 머신으로, 분할 공간의 가상 환경을 제공한다. * 호스트 OS : 서버 OS * 게스트 OS : VM이 서버 OS위에 올리는 가상 OS * 하이퍼바이저 : 게스트 OS를 구동하고 모니터링하는 소프트웨어 -> 유형 1 : Native/Bare-Metal 하이퍼바이저, 호스트 OS 없이 게스트 OS들만 존재 ex. VMware의 ESXi, Citrix의 Xen, Microsoft의 Hyper-V -> 유형 2 : Hosted 하이퍼바이저, 호스트 OS 위에 게스트 OS들을 둔다. ex. VmWare의 Workstation, Oracle의 VirtualBox 가상 머신(VM)의 경우, 하이퍼바이저를 통해 호스트 OS 위에 게스트 OS들을..
오라클 클라우드로 무료 서버 만들어보기
WSL를 통해서 리눅스를 접속 후 Docker를 사용해보려 하는데 이래저래 설정할게 많아 짜증이 나 그냥 클라우드를 써보기로 했다. AWS는 프리티어 기간이 지나면 비용이 발생하는데, 사이드프로젝트를 하는데 비용을 내는게 싫어서 무료 클라우드를 찾아봤다. 클라우드 서버는 AWS, Azure, Redhat... 다양하게 있었는데 그 중에서 평생 무료로 쓸 수 있는 오라클 클라우드를 쓰기로 했다. 오라클 클라우드에서 무료 인스턴스를 생성하는 방법은 어렵지 않았다. 아래 유투브를 따라하면서 CentOS 인스턴스를 하나 만들어줬다. https://www.youtube.com/watch?v=AgJgEnQv6cw
![[OS] WSL을 통해 윈도우 환경에서 리눅스 사용하기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FnPFcV%2FbtsCF9EYAxv%2FAAAAAAAAAAAAAAAAAAAAAK8GaJn7Nxlczzmx-TYeE257AcW-xNQrxYz8Q0XH6LRo%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3D9A9YUGYaiUAMXCcIlvGKb0p2XSQ%253D)
[OS] WSL을 통해 윈도우 환경에서 리눅스 사용하기
Docker 강의를 듣는 중에 리눅스 OS 사용이 필요해서 WSL을 사용하기로 했다. WSL 이란? Windows Subsystem for Linux의 줄임말로, 윈도우에서 리눅스를 사용할 수 있게 해주는 서브시스템을 의미한다. 기존 WSL을 사용하면 윈도우 환경에서도 powershell 등을 통해 linux 명령어를 사용할 수 있게 해주었다. WSL2에서는 업데이트된 형태로 하이퍼바이저를 통해 Windows 뿐만 아니라, Linux 또한 사용할 수 있도록 해준다. * Hypervisor : 다수의 VM을 사용할 수 있도록 연결해주는 소프트웨어 윈도우에서 WSL를 사용하는 명령어 * 윈도우 10 이상에서만 설치 가능 wsl --install powershell 또는 cmd 를 관리자 권한으로 열고 위의 ..
노션 스터디 기록 - 북스터디, 기술면접, 공식 도큐먼트 모음
티스토리 서버가 터진 이후 한동안 노션으로 스터디 기록을 했습니다. 사실 아래보다 더 끄적끄적댄 것들이 많은데 일단 여기까지만 한 번.. 공유 해봅니다아.. | 노션 북스터디 기록 1. 운영체제 곰책 정리 https://simdev1234.notion.site/3c35815411cf42fc8911bb985a435f47 운영체제 - 강의 링크 : http://www.kocw.net/home/cview.do?cid=3646706b4347ef09 simdev1234.notion.site 2. 클린코드 https://simdev1234.notion.site/78ad4b26ee2040d4aa4fd0238480b4ca 클린코드 A new tool for teams & individuals that blends ev..
[AWS] AWS EC2에 접속하는 방법 (스크랩)
AWS EC2에 접속하는 방법 https://honglab.tistory.com/179 [AWS] AWS EC2에 접속하는 방법 5가지 (SSH, RDP) 팀블로그에 작성한 글입니다 1. 제일 추천 - mobaXterm (SSH, RDP, SFTP 등 한꺼번에 사용 가능) https://err-bzz.oopy.io/223a9c02-7ac2-498c-afde-01db6cf873ae [강추] mobaXterm으로 Linux, Windows Server 접속 mobaXterm이란? err-bzz. honglab.tistory.com
![[AWS] EC2 Ubuntu 서버에 레디스 설치하고 접속하기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FyqfRt%2FbtrTPRQcBGN%2FAAAAAAAAAAAAAAAAAAAAALlt7diNBCQyWLT66IKBKOy4N5lP16zNJmjO0CDheX1x%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DP96CpCi%252B%252BrSX%252Fj6M2JhaVAKA7Qg%253D)
[AWS] EC2 Ubuntu 서버에 레디스 설치하고 접속하기
| 개요 - 지난 시간에 한 작업 1. EC2 프리티어 계정 만들기 2. Yum 설치하기 3. JDK 설치하기 - 이번 시간에 한 작업 1. EC2에 도커와 레디스 설치하기 2. EC2 인바운드 규칙 설정하기 | 절차 1. EC2 도커와 레디스 설치하기 - 이 부분은 별도의 포스팅에 작성해두었는데, 아래에 적어두었다. https://why-dev.tistory.com/378 [Docker/Redis] Ubuntu에 Redis 설치 & Docker로 Redis 실행 | Redis 설치하기 1. Ubuntu에 Redis 설치 sudo apt-get install redis-server 2. 설치 확인 redis-server --version 3. redis가 6379 포트를 쓰는지 확인 // netstat ..
![[이커머스 프로젝트] 장바구니 구현하기 (RedisTemplate)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FmDAaW%2FbtrTJvelg8y%2FAAAAAAAAAAAAAAAAAAAAAAgDwak6itoh8dyEvKBvbhc8ayxmmEAyLfov7Gaq8hEc%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DHCzLZcN%252B94aRwr3yNk4pZlXpvhU%253D)
[이커머스 프로젝트] 장바구니 구현하기 (RedisTemplate)
| 개요 - RedisTemplate을 사용하여 각 회원들에 대한 장바구니를 저장 - serialize과 deserialize를 String으로 쓰는 StringRedisTemplate을 사용 - Redis에 저장되는 형태 구분 데이터 형태 key cart:hash_id value 각 회원의 장바구니 객체를 Json 타입으로 저장 | 절차 1. Build.gradle에 Redis 추가 // redis implementation 'org.springframework.boot:spring-boot-starter-data-redis' testImplementation('it.ozimov:embedded-redis:0.7.3'){ exclude group: 'org.slf4j', module: 'slf4j-si..