본문 바로가기

IT 기본지식37

방화벽과 웹 방화벽의 차이는 뭘까? 방화벽(Firewall) TCP/IP 레벨에서 IP/Port 신뢰 여부를 기준으로 구분해주는 접근 제어 기반의 보안 솔루션이다. 새로운 서버가 들어왔다. 8080 포트로 시스템을 올리고 로컬에서 접근하려고 하니 방화벽이 막혀서 접근이 불가한 경우가 발생한다. 이때는 본인의 IP로 서버 8080 포트에 접속이 가능하도록 방화벽 신청을 해야한다. 방화벽 신청이 완료되고 8080 포트로 접근이 가능하게 되었다. 이제 9090 포트로 새로운 시스템을 올렸는데 이번엔 IP는 열려있지만 Port에서 막혀서 접속이 안되는 경우가 있다. 이때는 9090포트에 접속이 가능하도록 다시 신청을 해야한다. 위와 같이 방화벽은 IP/Port로 접근자를 제어한다. 따라서 OSI7 계층으로 봤을 때 Network 계층(3계층)과 .. 2022. 2. 19.
Distributed system(분산시스템)이란? 이점 및 고려사항 수많은 상위 기업들이 수십억 건의 요청을 처리하고 다운타임 없이 업그레이드할 수 있는 복잡한 분산 시스템을 구축했다. 확장 가능한 분산 시스템은 기본적인 고가용성(HA)이 필요하다. 분산 시스템은 사용자를 위한 단일 컴퓨터를 형성하기 위해 함께 작동하는 컴퓨터들의 집합이다. 이러한 모든 분산 컴퓨터는 하나의 공유 상태를 가지며 동시에 작동한다. 마이크로 서비스처럼 전체 시스템을 손상시키지 않고 독립적으로 고장 날 수 있다. 상호 의존적이고 자율적인 컴퓨터들은 네트워크에 연결되어 정보를 공유하고 소통한다. → 분산 시스템에는 IP주소나 물리적 케이블을 사용하여 구성요소를 연결할 수 있는 공유 네트워크가 있어야 한다. 분산 시스템의 이점 유지보수가 어려울 수 있다는 단점이 있지만 아래와 같은 이점도 있다. .. 2022. 2. 16.
고가용성 High Availability이란? 시스템에 장애가 생기더라도 빠르게 복구하는 성질 시스템을 장애 없이(중단 시간 없이) 오랫동안 가용한 상태로 운영할 수 있는 성질 99%의 고가용성 시스템이랑 100시간 운영 시 장애 시간이 1시간 이하임을 의미한다. 장애 허용(Fault Tolerant)과의 차이 - 장애 허용은 장애가 생기더라도 시스템이 이상 없이 동작할 수 있도록 보장하는 특성이고, 고가용성은 빠르게 복구하는 특성이다. - 동일한 개념으로 보기도 하고 혼용하기도 하니 굳이 따지자면 차이 없다고 할 수 있다. 고가용성 구성 방식 Hot Standby - 가장 대중적인 유형 - Active/Passive 또는 Active/Standby 형태로 가동 시스템과 백업 시스템으로 구성 Mutual Takeover - 2개의 시스템이 각각 고유.. 2022. 2. 16.
Load Balancer란? / L4 load balancer, L7 load balancer Load Balancer(로드밸런서) 란? 로드밸런서는 서버에 가해지는 부하(로드)를 분산(밸런싱) 해주는 장치 또는 기술이다. 클라이언트와 서버풀(분산 네트워크를 구성하는 서버들의 그룹) 사이에 위치하며 한 대의 서버로 부하가 집중되지 않도록 트래픽을 관리해 각각의 서버가 최적의 퍼포먼스를 낼 수 있도록 한다. Scale-out 방식으로 서버를 증설하기로 결정했다면 여러 대의 서버로 트래픽을 균등하게 분사해주는 로드밸런싱이 반드시 필요하다. OSI 계층에서 상위(7계층 Application Layer)에서 사용되는 장비는 하위 계층의 장비가 갖고 있는 기능을 모두 가지고 있으며, 상위 계층으로 갈수록 더 정교하게 로드밸런싱 할 수 있다. → 즉, L7 Load balancer가 L4 Load balan.. 2022. 2. 15.
Micro Service Architecture(MSA)의 장단점 들어가기 전에 모놀리식 아키텍처(Monolithic Architecture)란? 마이크로서비스 아키텍처의 반대되는 개념으로 전통의 아키텍처를 지칭한다. 하나의 서비스 또는 어플리케이션이 하나의 거대한 아키텍처를 가질때 모놀리식하다고 한다. 특징 내부 의존성이 강하다 구조적인 결합이 강력하게 유지된다. 비즈니스 컴포넌트들이 강한 결합 구조를 지니고 통일성이 있다. 장점 개발 초기 단순한 아키텍처 구조와 개발에 용이하다. 구조가 복잡하지 않다. 쉽게 고가용성 서버 환경을 만들 수 있다.(하나의 프로젝트에 모든 기능들이 들어있기 때문에) End-to-End 테스트가 용이하다 단점 프로젝트의 규모가 커짐에 따라 어플리케이션 구동시간이 늘어나고 빌드, 배포 시간이 길어진다. 작은 수정사항에도 전체를 다시 빌드하고.. 2022. 2. 15.
CI/CD 에 대한 간단 정리 CI/CD : 지속적인 통합과 배포를 통해 애플리케이션 개발 단계를 자동화하여 고객에게 보다 짧은 주기로 서비스를 제공하고 개선하는 방법 CI(Continuous Integration) 지속적인 통합(Continous Intergration)은 개발자가 작업한 코드를 자동으로 테스트하고 테스트에 통과하면 코드를 통합하여 저장 지속적인 통합이라는 뜻으로 어플리케이션의 새로운 코드 변경사항이 정기적으로 빌드 및 테스트 되어 공유 레포지토리에 통합되는 것을 의미한다. 이런 경우 CI를 적용하면 좋아요 - 다수의 개발자가 형상관리 툴을 공유하며 사용하는 환경 : 여러 개발자가 한 팀으로 작업하면 공유 레포지토리에 수많은 commit들이 쌓이게 되는데, 그때마다 기능별로 빌드/테스트/병합을 하기엔 번거로우니 자동.. 2022. 2. 14.
반응형