본문 바로가기

Backend Study/Server

(14)
가상 네트워크의 종류 (NAT, Host-only, Bridged) 1. NAT란? Network Address Translation의 약자로, 네트워크 주소 변환을 뜻한다. 192.168.0.2와 같은 사설 IP주소를 통해 외부로 네트워크 패킷을 보내게되면 NAT은 119.200.124.81와 같은 공인 IP 주소로 변환하여 패킷을 내보냄으로써 외부에선 마치 공인 IP에서 패킷을 보낸 것처럼 보인다. 반대로 외부에서 내부로 네트워크 패킷이 들어가게되면 NAT에선 어떤 사설 IP에게 들어온 패킷인지 판단하여 해당 사설 IP로 패킷을 보내주게된다. 라우터에 NAT기능이 포함되어있고, 우리가 흔히 볼 수 있는 NAT 라우터는 인터넷 공유기이다. 가상 네트워크에서는 호스트 pc로부터 IP를 할당받기 때문에 가상머신이 자체적으로 DHCP Server를 통해 내부 네트워크 대역을..
도커란 무엇일까? [도커란?] 도커란, 컨테이너 기술을 기반으로 한 일종의 가상화 플랫폼이다. 가상화란 물리적 자원인 하드웨어를 효율적으로 활용하기 위해서 하드웨어 공간 위에 가상의 머신을 만드는 기술이고, 컨테이너란 프로세스를 격리해 독립된 환경을 만드는 기술이다. [컨테이너란?] 컨테이너는 베이스 환경의 Host OS를 공유하면서 필요한 프로세스만 격리하는 방식이다. 커널을 공유하기 때문에 호스트의 OS 기능을 모두 사용할 수 있다. 컨테이너 위에서는 호스트 OS와 다른 OS를 구동할 수 없다는 단점이 있지만, 격리시킬 애플리케이션과 거기에 필요한 파일이나 특정 라이브러리 등 종속 항목만 포함하기 때문에 배포를 위해 생성되는 이미지 용량이 작다. [이미지란?] 가상 머신이나 컨테이너 또는 프로그램을 실행하는데 필요한 ..
[Server] Maven과 Gradle의 차이 1. Maven이란? 개발 프로젝트를 진행하면 많은 라이브러리를 사용하게 되는데, 이를 일일이 관리하는 것은 매우 어려운 일이다. Maven은 이러한 문제를 해결해주는 도구라고 생각하면 된다. 라이브러리도 해당 라이브러리 기능을 수행하기 위해 또 다른 라이브러리를 필요로 하기도 하는데, 이런것 까지 모두 고려하여 관리해주고, 네트워크를 통해 자동으로 다운받아주는 역할을 한다. 실행을 위해 여러가지 단계를 거치는데 이를 Lifecycle이라고한다. 아마 많이 본 용어일 것이다. 빌드 단계라고 보면 된다. - Clean: 이전 빌드에서 생성된 파일들을 삭제하는 단계 - Validate: 프로젝트가 올바른지 확인하고 필요한 모든 정보를 사용할 수 있는지 확인하는 단계 - Compile: 프로젝트의 소스코드를 ..
[Git] 로컬 혹은 fork한 레포 upstream과 동기화하기 1. 연결된 저장소를 확인한다. git remote -v 2. upstream과 연결한다. git remote add upstream [링크] origin일 경우 " git remote add origin " 3. upstream으로부터 fetch 한다. git fetch upstream 4. upstream 레포에 로컬 내용을 merge 혹은 push 한다. // merge git merge upstream/main // push git push -u upstream main 참고 ) https://theubermensch.tistory.com/100
[리눅스] 용량부족 해결 EC2에서 파일을 작성하려니 이런 오류가 생겼다. 오류 : E: Write error - write (28: No space left on device) E: IO Error saving source cache E: The package lists or status file could not be parsed or opened. 에러 문구를 확인한 후 바로 디스크 용량 부족을 체크하였다. 1. Inode 체크 df -i 2. 디스크 용량 체크 df -h / 경로와 snap 관련 경로의 용량이 문제 있어 보인다. 3. 구글링을 통해서 찾으니.. sudo apt autoremove --purge snapd 통해서 snapd 삭제 가능하다고 함. Reading package lists... Error! E: ..
다른 계정의 RDS 스냅샷으로 마이그레이션하기 산타 계정을 옮기면서 기존 rds를 새로운 계정의 rds로 데이터를 복사해야하는 상황이 생겼다! 이번에 스냅샷 기능을 이용해서 좀 더 편리하게 진행하고자 한다. 스냅샷이란? 스냅샷이란 특정 시점의 데이터 저장 장치 상태를 파일 이나 이미지로 저장 하는 것을 의미한다. 스냅샷을 생성하는건 인스턴스의 사진을 찍는다는것이라고 생각하면 되고 스냅샷 복원은 사진에 있는 정보로 그대로 똑같은 DB 인스턴스를 생성한다고 보면된다. AWS RDS에서는 자동 스냅샷, 수동 스냅샷을 지원하는데 이번에는 수동 스냅샷을 이용하였다. 스냅샷 생성 후 공유하기를 눌러 새로운 ID를 입력하면 새로운 계정에서 전달받은 걸 알 수 있다. 사본을 만들어서 복원하면 간단하게 마이그레이션을 완료할 수 있다 ! +.. 프리티어를 사용할 수 ..
AWS EC2에 서버 환경 구축 명령어 정리 (nginx, mysql, subdomain, https..) nginx 설치 sudo apt update sudo apt install nginx nginx -v # nginx 버전 확인 mysql 설치 sudo apt update sudo apt install mysql-server sudo mysql_secure_installation sudo mysql -u root -p index 파일 생성 projectName = 원하는 프로젝트 이름 ex. santa cd /var/www sudo mkdir -p projectName/html sudo chmod -R 755 /var/www/projectName/html sudo vi /var/www/projectName/html/index.html 서버 블록 생성 cd /etc/nginx/sites-available ..
네트워크 계층별 프로토콜 (OSI 7 Layer) OSI (Open system Interconnection) 7 Layer은 ISO, 즉 국제표준기구에서 만든 네트워크를 7계층으로 만든 모델이다. 이것이 필요한 이유는 통신 과정 중 특정한 곳에 이상이 생길 경우 다른 단계를 건들지 않고 그 단에서 해결할 수 있다는 것이다. 다른 계층들은 대화를 할 수 없고, 대화를 하기 위해서는 약속이 필요하다. os는 계층이 없는데 이는 성능을 가장 우선시하기 때문이다. 1. 구조 - Application Layer (응용 프로그램 계층) [DATA] 일반적인 응용 서비스를 수행하는 계층이며, 사용자에게 직접 보이는 부분이다. ex. HTTP, FTP, POP3/IMAP, SSH, DNS - Presentation Layer (표현 계층) [Data] 코드간 번역을..