🥇Home

    스위치 (Switch)

    스위치의 모든 기능은 브리지에서 출발한다. 스위치는 포트별로 콜리전 도메인이 나뉘어져있다. 이 말은 즉 1번포트PC와 2번포트PC가 데이터를 주고받는 동안에도 3번포트PC와 4번포트PC 가 서로 데이터를 주고 받을수 있게 하는 장비다. 1, 2번 사이에서 통신이 일어나면 나머지 모든 PC들은 기다려야만 하는 허브와는 달리 다른 PC들도 동시에 통신이 가능하다. 이부분이 허브와의 가장 큰 차이점이다 또한 허브에 비해서 데이터를 처리하는 방법, 데이터 전송 에러 복구 기능도 있다. 그래서 스위치의 경우 각각의 포트에 연결된 PC가 독자적으로 10Mbps 또는 100Mbps의 속도를 갖는 다고 이야기한다 스위치는 포트별로 콜리전 도메인을 나누기때문에 허브와는 다르게 어느 한 순간에는 하나만이 통신이 가능해서 ..

    허브 (Hub)

    허브는 네트워크 구성에서 가장 기본적인 구성 요소이다. 이 허브는 연결된 모든 PC들이 서로 통신할수 있게 해주는 역할을 하며 10Mbps허브와 100Mbps(패스트 이더넷) 허브가 있다. 지금 설명하는 허브는 이더넷 허브인만큼 CSMA/CD 의 적용을 받는다 같은 허브에 연결되어 있는 모든 PC들은 모두 같은 콜리전도메인 상에 있으며, 같은 콜리전 도메인에 있다는 의미는 그 허브에 붙어있는 하나의 PC가 통신을 하게 되면 다른 모든 PC는 통신을 할수 없게 되고, 또 만약 이 허브에 붙어있는 하나의 PC에서 콜리전이 발생하면 모든 PC가 영향을 받는다 이러한 허브를 우리는 Shared 허브라고 하며, 허브에 연결된 모든 PC들이 속도를 공유한다 한마디로 10Mbps 의 허브에 20대의 PC를 연결해서 ..

    SSH key 생성하기

    SSH key 생성하기

    SSH는 암호화된 원격 접속 프로토콜이다. 가장 기본적인 방법은 패스워드를 사용하여 접속하는것이다. 위 방법 물론 암호화되어 서버로 보내지지만 반복적인 해커의 공격에 안전하지 않다. 패스워드가 복잡하지 않고 짧은 경우에는 더욱 그렇다. SSH key 는 가장 안정적이면서 검증된 인증방식이다 클라이언트가 가지는 Private 키는 절대 타인에게 공개되면 안된다. 이유는 Private 키가 있다면 서버에 아무 인증 없이 접속이 가능하기 때문이다. 물론 예방조치로 Private 키를 passphrase 로 암호화 하여 디스크에 저장도 가능하다 ----------------------------------------------------------------------------------------------..

    Apache LogFormat 정리

    Apache LogFormat 정리

    액세스 로그로 저장하는 데이터를 직접 커스텀마이징하여 형식을 지정할 수 있다. 로그 형식은 "LogFormat"으로 지정한다. LogFormat "포맷" 로그-형식-이름 기본적으로 로그 형식으로는 다음의 두 가지가 정의되어있으며, 로그 형식 이름으로 "common"과 "combined"의 두 가지가 있으며, 사용자가 만들수있다. %a 액세스한 IP 주소 %A 서버 (Apache)의 IP 주소 %B 전송된 바이트 수 (헤더는 제외) %b 전송된 바이트 수 (헤더는 제외), 0바이트인 경우는 '-'이 표시된다. %f 요청된 파일 이름 %h 원격 호스트 이름 %H 요청 프로토콜 이름 %l 클라이언트 식별자 %m 요청 메소드명 %q 요청에 포함된 쿼리 문자열, 공백 이외는 "?"가 붙는다. %r 요청의 첫 번째..

    [Apache] Apache server-status  로 모니터링 하기

    [Apache] Apache server-status 로 모니터링 하기

    Apache에서는 "mod_status" 모듈에 "server-status"라는 핸들러를 제공한다. (핸들러는 있는 동작을 시키는 함수 같은 것이다. 프로그램의 모임이라고 생각하면 된다.) "server-status" 핸들러를 호출하여 Apache의 동작 상황을 확인할 수 있다. 그럼 브라우저에서 "server-status" 핸들러를 호출하여 동작 상황을 보자 mod_status 모듈 로드 먼저 "mod_status"모듈을 이용할 수 있도록 "LoadModule"에서 모듈을 로드한다. 앞부분에 주석을 제거한다. LoadModule status_module modules/mod_status.so 다음은 "server-status" 핸들러를 호출하는 설정을 한다. "Include"을 사용하여 "httpd-i..

    VMware Network 연결 안되는 증상

    VMware Network 연결 안되는 증상

    사용 중인 VM을 복사 후 Network 연결이 되지 않았다. IP 변경 후 네트워크 재시작을 하여도 동일 증상이 발생하였다. VMware에서는 리눅스(Redhat 계열) 복제 후 동작시키면 네트워크가 되지 않는다 다른 이유로는 네트워크 카드를 교체하거나 위치가 바뀐경우다 예를들어 네트워크 카드를 교체하거나 위치가 바뀌어 eth0 -> 1로 변경, eth1 -> 2로 변경 되어 서비스가 올라오지 않는 문제다 원인은 /etc/udev/rules.d/70-persistent-net.rules 파일에 저장된 NIC 이름과 MAC 주소가 엉켜서 생기는 문제다 /etc/udev/rules.d/70-persistent-net.rules : 재시작시 서버에 할당된 MAC 정보를 읽어들여 새로운 파일을 생성 본론으로 ..

    Oracle 필수 프로세스

    Oracle 10g 강좌에서 좀 더 자세한 내용을 확인 할 수 있습니다. Background Process Database Writer Process (DBWn) Database Buffer Cache의 내용을 데이터 파일에 저장하는 작업을 수행. Database Buffer Cache 내의 Buffer가 변.. www.gurubee.net 출처 : http://www.gurubee.net/lecture/1080 오라클 백그라운드 프로세스 Oracle 10g 강좌에서 좀 더 자세한 내용을 확인 할 수 있습니다. 오라클 백그라운드 프로세스는 5개의 필수 프로세스와 그 밖에 프로.. www.gurubee.net 오라클 백그라운드 프로세스는 5개의 필수 프로세스와 그 밖에 프로세스로 구성되어 있습니다. 오라클..

    MySQL Replication 단방향 이중화

    MySQL Replication 단방향 이중화

    MySQL Replication MySQL Replication(리플리케이션) 이란 복제를 뜻한다. 최소 구성은 2대 이상이며 Master / Slave 구성이다. 실시간 데이터 백업과 여러 대의 DB서버의 부하를 분산시킬 수 있다. 웹서버 같은 경우 L4를 이용하여 로드밸런싱으로 부하를 해결할 수 있다. 웹서버의 부하를 해결하여도 DB서버의 부하로 인하여 사이트가 느리게 열릴 수 있다. 1) DB서버 부하는 어떻게 해결해야 되는지? 2) DB서버 이중화하는 방법은 없는지? 구성 OS : Linux (CentOS) Master IP : 192.168.0.51 Slave IP : 192.168.0.52 DataBase : repl_db [Master 계정 정보] Master 서버에 데이터를 가져오기 위해선..

    [Cloud] AWS 다중 서버 환경 구성

    이번에는 여러 대의 서버 인스턴스로 운영하는 방법을 설명한다. 여러 대의 서버를 운영하는 이유 크게 2가지가 있다. 1. 많은 트래픽에 대응 하기 위해 2. 서버에 장애가 생겨도 서비스가 안전하게 돌아갈수 있게 하기 위해 ※ 트래픽을 감당하기 위해 서버의 수를 늘려 대응(scale out) 하는 다중 서버 환경 ※ 단순히 서버의 수를 늘리는 것 뿐만 아닌 트래픽에 따라 서버의 수를 자동으로 늘리고 줄이는 자동 조정(auto scaling) ※ 장애로 서버 중 한대가 서비스 불능 상태가 돼도 다른 서버들이 이를 대신 요청을 처리하는 장애 조치 에 대해서도 설명하겠다. AWS Auto Scaling 그룹은 AWS에서 제공하는 자동 다중 서버 서비스다. Auto Scaling 그룹은 같은사양, 같은환경, 같은..

    [Cloud] AWS 보안 그룹

    [Cloud] AWS 보안 그룹

    AWS 보안 그룹 추가 앞서 현재 인스턴스는 SSH 포트만 허용 해놓았기 때문에 다른 기본 포트도 허용한다. 앞으로 실습에서 EC2 인스턴스로 웹 요청을 받을 것이기 때문에 기본 HTTP HTTPS 포트로 요청을 받을수 있게 허용한다.

    [Cloud] AWS EC2 접속

    [Cloud] AWS EC2 접속

    EC2 인스턴스 접속 전 글에 앞서 내려받은 키페어가 사용된다. EC2 인스턴스에 할당된 퍼블릭 도메인 혹은 퍼블릭 IP를 이용하여 SSH로 접속한다 [SSH 클라이언트 ex) PuTTY] EC2 인스턴스에 접속하기 위해 ec2-user 사용자를 사용했으며, ec2-user는 Amazon Linux의 시스템 사용자 계정으로 앞으로 root 권한이 아닌 대부분의 작업은 ec2-user로 진행하게 된다.

    [Cloud] AWS EC2 생성

    [Cloud] AWS EC2 생성

    AWS는 사용량 만큼 비용을 내야하므로 EC2 인스턴스가 켜져있는 시간에 대해 요금을 내야한다. 잠시 사용하지 않는경우 꺼두는것을 추천하며, 인스턴스를 끄는 방법은 인스턴스 대상을 오른쪽 마우스 버튼으로 클릭 한뒤 [인스턴스 상태] -> [중지] 를 선택한다. 여기서 [종료]는 "terminate" 로서 인스턴스를 완전히 삭제하는 것이다. 종료 시 복구 방법이 없으니 더는 사용하지 않는경우에만 [종료] 를 클릭한다. pending : 생성 중 running : 실행 중 stopped : 잠시 중시된 상태 terminated : 삭제(종료)된 상태

    [Cloud] AWS EC2 개념

    EC2 (Elastic Compute Cloud) 는 우리가 쉽게 사양을 고르고 원하는 시간만큼 사용할 수 있는 "가상서버" 다. CentOS, Ubuntu, Windows 등 운영 서버에 필요한 대부분의 OS를 지원하며, 사용 목적에 맞는 수십 가지 사양들을 제공한다. EC2 는 필요할 때마다 켜고 끌 수 있으며 사용한 시간에 대해서만 비용을 지급하면 된다. 비싼 돈을 주고 초기에 직접 서버를 구매해서 관리를 위한 공간과 인터넷 망을 구축하고 전기요금, 네트워크 비용 등 관리비를 지급하는 것에 비하면 정말 간편하고 저렴하게 서버를 이용할수 있다. EC2 생성 전 3가지 개념 1) AMI (Amazon Machine Image) AMI란 우리가 생성할 EC2 인스턴스의 기반이 되는 이미지다. 윈도우를 설..

    [Cloud] AWS 리전 및 가용 영역

    AWS 리전 과 가용 영역 AWS는 전 세계에 23개 지역에 인프라를 구축해서 호스팅하고 있는 글로벌 서비스다. (2019년 11월 기준) 지리 영역을 리전(region) 이라고 부르는데, 사용자가 가장 많은곳부터 리전을 만들고 있으며, 계속 늘려가고 있다. 서비스하려는 지역에 가장 가까운 리전을 선택해야 네트워크 지연 시간을 최소화 할수있다. 현재 한국에서는 서울 리전이 있으며 일본에는 도쿄와 오사카 리전이 있다. 대부분의 서비스는 모든 리전에 제공되지만 새로 생성된 서비스는 리전에 따라 늦게 오픈되는 경우도 있다. 모든 리전이 동일한 클라우드 서비스를 제공하는 것이 아니며, 더 많은 서비스를 가지고 있는 리전이 있다. 리전별로 몇 개월 정도 차이가 있으며 서울 리전은 다른 리전에 비해 조금 늦게 오픈..

    [Cloud] AWS 개념

    AWS Service AWS 에서는 단순한 컴퓨팅 서버만을 제공하는것이 아니라 운영서버에서 자주 사용되는 온갖 서비스들을 함께 제공한다. 데이터베이스, 배포 자동화, 모니터링, 보안, 메일, 도메인 등 100가지가 훨씬 넘는 서비스들을 제공하고 있다. 이러한 서비스 대부분은 모두 아마존 내부에서 더 편하게 운영 서버를 관리하기 위해 만들어서 사용하다가 어느정도 완성도가 높아지면 다른 회사들도 사용할 수 있게 서비스로 공개한 것들이다. AWS 같은 클라우드 서비스를 이용하지 않는다면 직접 서버를 구매해서 설치하고 관리해야하지만 사용하는 경우 몇번의 클릭만으로 생성하고 안정적으로 운영할수 있다. AWS 현재 위치 아마존뿐만 아니라 구글(Google Cloud), 마이크로소프트(Azure), IBM(IBM C..

    [AWS] AWS 탄생배경

    AWS 탄생 배경 AWS (Amazon Web Services) 는 미국 기업인 아마존에서 만든 클라우드 서비스 플랫폼이다. 인터넷 쇼핑몰 아마존에서 처음부터 클라우드 서비스 플랫폼을 만들 생각을 하고 있던 것은 아니였다. 2000년도 쯤 인터넷 쇼핑몰을 운영하던 아마존은 늘어난 트래픽과 주문량을 감당하다보니 자연스럽게 굉장히 뛰어난 수준의 내부 인프라 시스템을 구축하게 되었다. 컴퓨팅, 스토리지, 데이터베이스 등 운영 서버에 필요한 인프라를 누구보다 안정적이고, 규모를 키울수 있으며, 저렴하게 운영할 수 있는 능력을 아마존 쇼핑몰 하나에만 제공하기보다 전 세계 모든 회사를 대상으로 제공하자는 생각 을 하게 됐고 결국 2006년부터 이 인프라를 누구나 쉽게 사용할 수 있게 만들어 다른 회사에 돈을 받고 ..

    Tomcat 원격 코드 취약점 | CVE-2020-1938 Ghostcat

    Tomcat 원격 코드 취약점 | CVE-2020-1938 Ghostcat

    취약버전 (취약점 공개일 2020.2.24) 9.0.0~9.0.30 8.5.0~8.5.50 7.0.0~7.0.99 Tomcat 버전별 취약점 업데이트 내용 확인 ※ 7.x : http://tomcat.apache.org/security-7.html ※ 8.x : http://tomcat.apache.org/security-8.html ※ 9.x : http://tomcat.apache.org/security-9.html 원인 AJP 연결은 HTTP 연결보다 신뢰도가 높은것으로 취급하며, 기존 취약점버전 Tomcat은 모든 IP주소(0.0.0.0) 에서 수신대기하는 AJP 커넥터를 기본적으로 사용하도록 설정하여 제공하였다. 이 부분은 신뢰할수없는 사용자가 AJP 포트에 엑세스할수있다는것이며, 공격자는 파일..

    [Linux] 대기상태 D(uninterruptible sleep) PID 죽이기

    http://www.novell.com/support/kb/doc.php?id=7002725 http://ssambback.tistory.com/115 리눅스 시스템을 운영하다 보면 시스템 Hang-up에 대한 문제점을 많이 들어나게 됩니다. 물론 리눅스 시스템 자체의 문제점이라고 보다는 특정 운영 프로세스에 대해서 인터럽트 또는 스케쥴이 정상적으로 진행되지 못했을때 나타는 문제점에 대해서 간략해 소개해 보고자 합니다. 갑자기 시스템 로그에서 출력하게된 /var/log/message 의 시스템 로그. kernel: INFO: task startup.sh:9902 blocked for more than 120 seconds. kernel: "echo 0 > /proc/sys/kernel/hung_task_..

    [Linux] 깃허브란

    먼저 Git 에 대해 설명한다 Git이란 버전관리 프로그램이다 쉽게 생각하여 버전 1.0 2.0 등등 버전을 관리한다는것이다 예를 들어 어떤 개발자는 1.1버전을 개발중에있는데 갑자기 에러가 발생한다고 하면 1.0 버전을 따로 저장해놓지 않았으면 큰일이 된다. 이럴때를 대비해 각각 프로그램을 버전별로 따로 저장해두면 해결하기 쉬우며 Git은 프로젝트 폴더안에 숨김폴더를 생성하여 이전 기록과 달라진 부분들을 기록하고 되돌아가고싶은 경우 그 달라진 부분을 복원한다. 폴더를 여러개 만들 필요도 없고, 코드의 저장과 불러오기가 명령어 한줄로 수행되며, 저장 하고 싶은 만큼 저장해도 실제 전체 코드를 저장하는 것이 아니기 때문에 용량이 크게 늘어나지도 않는다 또한 그룹 프로젝트의 경우 한 사람이 A라는 기능을 개..

    [Linux] http -> https 주소 리다이렉트 시키기

    여기 계신 분들이라면 당연히 다 알고 계시겠지만 문제는 인터넷에 나와 있는 한국말로 된 팁들이 대부분 어딘가 빠져 있거나 허술하거나 잘못되어 있더군요 저도 그것들을 믿고 실행했다가 작동이 안 되거나, 최상위 주소만 되고 세부주소는 안되거나 (예: xetown.com 만 되고 xetown.com/square는 안됨) 하는 문제점들을 겪었고 결정적으로 지금까지 "301 리다이렉트"가 아니라 "302 리다이렉트"로 적용되어 있었네요 (301은 영구적인 이동, 302는 일시적인 이동을 나타내는데, htaccess 리라이트 구문에 기재를 해 놓지 않으면 302로 인식하기 때문에 301이라고 명시해줘야 합니다) 이게 영어로 찾아보면 거의 다 제대로 나와 있는데, 한국어로 찾아보면 그렇지 않네요 각설하고... 한마디..