본문 바로가기

study_IT/개발 용어 사전

[ 191 ~ 200 ] Proxy, SCSI, RAID, Docker, Kubernetes, AGL, Ping, CIDR, Round Robin, Auto-scaling

728x90
반응형

201. Proxy

컴퓨터 네트워크에서 중개 역할을 하는 서버나 소프트웨어를 말한다. 이는 클라이언트(사용자)와 다른 서버 간의 통신을 중계하는 역할을 수행하며, 여러 목적으로 사용될 수 있다.

프록시의 주요 기능 : 보안과 개인 정보 보호, 캐싱, 접근 제어, 트래픽 로깅 등

프록시는 주로 웹 프록시, 리버스 프록시, 트랜스페어런트 프록시 등 다양한 형태로 사용된다. 각각의 형태는 특정 목적에 맞게 구성되어 있다.

 

202. SCSI(Small Computer System Interface)

컴퓨터와 주변장치 간의 표준화된 인터페이스를 제공하는 표준이다. 이는 주로 데이터 스토리지 디바이스, 예를 들면 하드 디스크 드라이브, 광학 디스크 드라이브, 스캐너, 프린터 등과 같은 주변 장치를 컴퓨터에 연결하기 위해 사용된다.

SCSI는 여러 가지 장점을 가지고 있어 특히 서버 및 데이터 스토리지 시스템에서 널리 사용되었다. 몇 가지 주요 특징은 다음과 같다.

1. 고성능 및 병렬 전송 : SCSI는 여러 데이터 신호를 동시에 전송함으로써 높은 성능을 제공한다. 이는 데이터 전송 속도를 향상시키는 데 도움이 된다.
2. 다양한 장치 지원 : SCSI는 다양한 종류의 주변장치를 지원하며, 여러 종류의 장치를 하나의 버스에 연결할 수 있다.
3. 멀티태스킹 및 병렬 작업 지원 : SCSI는 여러 작업을 동시에 수행할 수 있는 기능을 제공하여 데이터 처리량을 높일 수 있다.
4. 점-대-점 및 다중 점 대 다중 점 연결 : SCSI는 단일 장치에서 다중 장치 간의 연결을 지원하며, 이는 유연성과 확장성을 제공한다.
5. 접속성 : SCSI는 다양한 운영 체제에서 사용할 수 있도록 표준화된 인터페이스를 제공한다.

초기에는 SCSI가 널리 사용되었지만, SATA (Serial ATA) 및 SAS (Serial Attached SCSI)와 같은 새로운 기술의 등장으로 인해 일부 부분에서는 대체되었다. 그러나 일부 전문적인 응용 분야에서는 여전히 사용되고 있다.

 

203. RAID(Redundant Array of Inexpensive Disks)

여러 개의 하드 디스크 드라이브를 조합하여 데이터를 저장하고 관리하는 기술이다. RAID를 사용하면 데이터의 안정성과 성능을 향상시킬 수 있다. RAID 시스템은 여러 가지 레벨로 구분되며, 각 레벨은 특정한 특성과 용도를 가지고 있다.

주요 RAID 레벨은 다음과 같다.

1. RAID 0 (Striping) : 데이터를 여러 디스크에 나누어 저장하며, 동시에 여러 디스크에서 동시에 읽고 쓸 수 있도록 한다. 이는 성능을 향상시키지만, 어느 한 디스크가 고장나면 전체 데이터가 손실된다. 또한, 데이터를 저장할 때 두 디스크 중 하나에만 저장되기 때문에 신뢰성은 떨어진다.
2. RAID 1 (Mirroring) : 데이터를 동시에 두 개의 디스크에 복제하여 저장한다. 한 디스크가 고장나도 나머지 디스크에서 데이터를 제공할 수 있으므로 안정성이 높다. 하지만 저장용량은 하나의 디스크만큼 밖에 활용되지 않는다.
3. RAID 5 (Striping with Parity) : 데이터를 여러 디스크에 나누어 저장하면서, 패리티(Parity)라는 특수한 데이터를 사용하여 에러 복구 기능을 제공한다. 한 디스크가 고장나면 패리티 정보를 활용하여 손상된 데이터를 복구할 수 있다. RAID 5는 안정성과 성능의 균형을 제공한다.
4. RAID 10 (Combination of RAID 1 and RAID 0) : RAID 1과 RAID 0을 결합한 형태로, 데이터를 미러링하면서도 스트라이핑을 사용하여 성능을 향상시킨다. 안정성과 성능 모두를 고려한 RAID 레벨 중 하나이다.

RAID 기술은 주로 서버 및 데이터 스토리지 시스템에서 사용되며, 데이터의 안전성과 성능이 요구되는 환경에서 활용된다.

204. Docker

컨테이너 기반의 가상화 플랫폼으로, 소프트웨어를 컨테이너라는 경량화된 패키지로 격리된 환경에서 실행할 수 있게 해주는 오픈 소스 기술이다. 도커는 애플리케이션을 효율적으로 개발, 배포, 및 실행할 수 있도록 도와준다. 다음은 도커의 주요 특징과 개념에 대한 간략한 설명이다.
1. 컨테이너 : 도커는 컨테이너를 사용하여 애플리케이션과 그 종속성을 패키징한다. 컨테이너는 격리된 환경에서 실행되기 때문에 호스트 시스템의 영향을 받지 않으면서 일관된 실행 환경을 제공한다. 또한, 컨테이너는 가볍고 빠르게 시작되며 이식성이 뛰어나다는 장점이 있다.
2. 이미지 : 도커 이미지는 컨테이너 실행에 필요한 파일, 설정 및 종속성을 포함하는 템플릿이다. 이 이미지는 애플리케이션을 실행하기 위한 모든 것을 포함하고 있으며, 도커 이미지를 기반으로 여러 컨테이너를 생성할 수 있다. 이미지는 버전 관리가 가능하며, 공개된 도커 허브(Docker Hub)와 같은 리포지터리에 저장되어 공유할 수 있다.
3. 도커 허브 : 도커 이미지를 저장하고 관리하는 공식적인 온라인 레지스트리이다. 도커 허브를 사용하면 다른 사용자들이 이미지를 공유하고, 필요한 이미지를 다운로드하여 사용할 수 있다.
4. 도커 컴포즈 : 도커 컴포즈는 여러 도커 컨테이너를 정의하고 실행하기 위한 도구이다. YAML 파일을 사용하여 여러 컨테이너 간의 관계, 설정, 네트워크 등을 정의할 수 있으며, 한 번에 여러 컨테이너를 실행하거나 관리할 수 있다.
5. 도커 스웜 : 도커 스웜은 여러 도커 호스트를 하나의 가상화된 호스트처럼 관리하는 도커의 클러스터링 및 오케스트레이션 도구이다. 이를 통해 애플리케이션을 여러 노드에 분산하고 확장할 수 있다.


도커는 개발자와 시스템 관리자들 사이에서 널리 사용되며, 애플리케이션의 환경을 표준화하고 관리하기 쉽게 만들어준다. 컨테이너 기반 가상화 기술은 애플리케이션 배포 및 관리를 효율적으로 처리하고, 확장성과 이식성을 개선하는 데 기여한다.

 

205. Kubernetes

컨테이너 오케스트레이션을 자동화하고 관리하기 위한 오픈 소스 플랫폼이다. 컨테이너 기술을 사용하는 애플리케이션의 배포, 확장, 및 운영을 쉽게 처리할 수 있도록 도와준다. 쿠버네티스는 Google에서 개발한 것을 기반으로 하여 현재는 Cloud Native Computing Foundation (CNCF)에 의해 관리되고 있다.

쿠버네티스의 주요 특징과 개념은 다음과 같다.
1. 컨테이너 오케스트레이션 : 쿠버네티스는 여러 대의 호스트에서 실행 중인 컨테이너를 효율적으로 관리하고 조정하는 데 중점을 둔다. 이는 애플리케이션을 여러 개의 컨테이너로 나누어 확장하고, 장애 상황에 대처하여 안정적으로 운영할 수 있게 해준다.
2. 파드(Pod) : 쿠버네티스에서 가장 작은 배포 단위인 파드는 하나 이상의 컨테이너 그룹을 나타낸다. 이 컨테이너 그룹은 동일한 호스트에서 실행되며, 서로 네트워크와 스토리지를 공유한다.
3. 서비스(Service) : 쿠버네티스 서비스는 파드의 집합에 대한 단일 접점을 제공하는 추상화이다. 서비스는 클러스터 내부에서 파드 간의 통신을 관리하고 외부에서의 액세스를 제공한다.
4. 레플리케이션 컨트롤러(Replication Controller) : 레플리케이션 컨트롤러는 사용자가 지정한 파드의 수를 지속적으로 유지하는 역할을 한다. 파드의 갯수를 조절하여 안정적인 서비스 운영을 도와준다.
5. 노드 (Node) : 쿠버네티스 클러스터의 각 호스트를 노드라고 한다. 각 노드는 파드를 실행하고 쿠버네티스 마스터와 통신한다.
6. 쿠버네티스 마스터(Master) : 쿠버네티스 클러스터를 제어하고 관리하는 중앙 제어 플레인이다. 마스터에는 API 서버, 스케줄러, 컨트롤 매니저 등의 컴포넌트가 포함되어 있다.
7. 쿠버네티스 API(API) : 쿠버네티스의 모든 조작 및 통신은 API를 통해 이루어진다. API는 클러스터를 제어하고 상태를 조회하는 데 사용된다.

쿠버네티스는 애플리케이션의 배포와 관리를 표준화하고 자동화하여 개발자와 운영팀 간의 협업을 강화한다. 이는 확장성, 안정성, 이식성, 그리고 유연성을 제공하여 대규모의 컨테이너 기반 인프라스트럭처를 효과적으로 관리할 수 있도록 도와준다.

 

206. AGL(Application Gateway Load Balancer)

 

아마존 웹 서비스(Amazon Web Services, AWS)에서 제공하는 Application Gateway Load Balancer (AGL)는 고급 로드 밸런서 서비스로, 다양한 애플리케이션 트래픽을 조절하고 분산시키는 데 사용된다. AGL은 Layer 7(Application Layer)에서 작동하여 HTTP, HTTPS, 및 WebSocket 트래픽을 관리하며, 다양한 고급 기능을 제공한다.

AGL의 주요 특징과 기능은 다음과 같다.
1. HTTP/HTTPS 로드 밸런싱 : AGL은 HTTP 및 HTTPS 트래픽을 로드 밸런싱하여 여러 서버 인스턴스 간에 균등하게 분산시킨다.
2. WebSocket 지원 : 웹소켓 통신을 지원하여 실시간 양방향 통신이 필요한 애플리케이션에 적합하다.
3. SSL 종료 : AGL은 SSL 종료를 지원하여 클라이언트와의 암호화된 연결을 해독하고 서버에 전달한다. 이는 서버 측에서 SSL을 관리할 필요가 없게 만들어준다.
4. 경로 기반 라우팅 : 특정 경로에 대한 요청을 다른 서버 집합으로 라우팅할 수 있다. 이는 다중 애플리케이션 또는 마이크로서비스 아키텍처를 구성하는 데 도움이 된다.
5. TLS/SSL 암호화 : 암호화 표준을 준수하여 데이터의 안전성을 보장한다.
6. 헬스 체크 : 백엔드 서버의 상태를 주기적으로 확인하여 정상적인 서버로 트래픽을 분배한다.
7. 보안 정책 및 웹 어플리케이션 방화벽 (WAF) 지원 : 애플리케이션 레이어에서 보안 정책 및 WAF 규칙을 설정하여 웹 어플리케이션을 보호한다.
8. 로그 및 모니터링 : 로그 및 모니터링 기능을 통해 트래픽과 서버 상태 등에 대한 정보를 확인할 수 있다.

AGL은 클라우드 환경에서 웹 애플리케이션의 성능, 안정성, 보안을 향상시키기 위한 강력한 도구로 사용된다.

 

207. Ping

"ping"은 네트워크 디버깅 및 트러블슈팅을 위해 사용되는 명령어 및 프로그램이다. 주로 컴퓨터나 장치 간의 네트워크 연결 상태를 확인하는 데에 활용된다. 아래는 ping의 기본적인 동작과 몇 가지 주요 옵션에 대한 설명이다.
1. 목적 : ping 명령은 목적지 호스트에 ICMP(Internet Control Message Protocol) 패킷을 전송하고, 이에 대한 응답을 측정하여 목적지 호스트와의 네트워크 응답 시간(라운드트립 타임) 및 안정성을 확인한다.
2. 사용법 : 일반적인 ping 명령의 사용법은 다음과 같다.

 ping [옵션] [대상 호스트]

대상 호스트에는 IP 주소나 도메인 이름을 지정할 수 있다.
3. 라운드트립 타임 (Round-Trip Time, RTT) : ping은 목적지 호스트에 ICMP 패킷을 보내고, 목적지에서 해당 패킷에 대한 응답을 보내면서 소요된 시간을 측정한다. 이를 통해 네트워크 지연을 평가할 수 있다.
4. 옵션
   - `-c count` : 특정 횟수(count)만큼의 ping을 실행한다.
   - `-i interval` : ICMP 패킷을 보내는 간격을 설정한다.
   - `-t timeout` : 응답을 기다리는 최대 시간을 설정한다.
   - `-s packetsize` : ICMP 패킷의 크기를 설정한다.
5. 응답 코드
   - 0 : 정상적인 응답
   - 1 : 호스트가 응답하지 않음
   - 기타 : 네트워크 문제 등에 따라 다양한 코드가 반환될 수 있음

일반적으로 ping은 네트워크 연결 상태를 확인하거나 호스트 간의 통신 지연을 파악하는 데에 사용된다. 그러나 보안 정책 등에 따라 ICMP 패킷을 차단하는 경우가 있을 수 있으므로, 모든 환경에서 항상 사용 가능한 것은 아니다.

 

208. CIDR(Classless Inter-Domain Routing)

IP 주소 할당과 라우팅의 효율성을 향상시키기 위해 개발된 주소 체계이다. CIDR은 기존의 IP 주소 할당 방식 중 하나인 클래스 기반 주소 할당(Classful Addressing)을 대체하고, 보다 유연한 주소 할당을 가능케 한다.

기존의 클래스 기반 주소 할당은 A, B, C 클래스로 나뉘어져 있었으며, 각 클래스는 고정된 범위의 IP 주소를 가지고 있었다. CIDR은 이러한 고정된 구조를 유연하게 사용할 수 있도록 하기 위해 도입되었다.

CIDR의 주요 특징과 용어는 다음과 같다.
1. 주소 블록 표기법 : CIDR은 IP 주소를 표기할 때 "IP 주소/프리픽스 길이" 형식으로 사용한다. 예를 들어, "192.168.1.0/24"는 IP 주소가 192.168.1.0에서 192.168.1.255까지의 범위임을 나타낸다.
2. 프리픽스 길이 : 프리픽스 길이는 네트워크의 크기를 나타낸다. 예를 들어, "/24"는 24비트가 네트워크 주소에 사용되었음을 의미하며, 남은 8비트는 호스트 주소에 사용된다.
3. CIDR 블록 분할 : CIDR은 네트워크를 더 작은 블록으로 쉽게 분할할 수 있는 장점이 있다. 이는 IP 주소의 효율적인 할당 및 라우팅을 가능케 하며, 불필요한 주소 낭비를 최소화한다.
4. 유연한 주소 할당 : CIDR을 사용하면 더 큰 또는 작은 주소 블록을 필요에 따라 동적으로 할당할 수 있다. 이는 IP 주소 관리를 간편하게 만든다.

CIDR은 현재의 인터넷에서 표준으로 사용되며, 특히 인터넷 서비스 제공자(ISP)와 기업 네트워크에서 IP 주소 할당 및 라우팅에 적용되고 있다.

 

209. Round Robin

컴퓨터 네트워크에서 여러 개의 대상에게 순서대로 서비스를 제공하는 방식 중 하나이다. 이는 각 대상에게 공평하게 서비스를 분배하여 부하 균형을 유지하고, 전체적인 성능을 향상시키는 데 사용된다.

라운드 로빈의 작동 방식은 다음과 같다.
1. 대상 목록 : 라운드 로빈은 서비스를 받을 수 있는 여러 대상(서버, 장치, 호스트 등)을 포함하는 대상 목록을 유지한다.
2. 순환 : 각 요청이 들어올 때마다, 다음 순서의 대상에게 순차적으로 서비스를 제공한다.
3. 순환 주기 : 대상 목록의 끝에 도달하면 다시 처음 대상부터 시작하여 순환한다. 이를 통해 모든 대상이 공평하게 서비스를 받을 수 있도록 한다.

라운드 로빈의 특징 및 장단점은 다음과 같다.
* 장점
- 간단하며 구현이 쉽다.
- 각 대상에게 균등한 서비스를 제공하므로, 부하 균형을 유지할 수 있다.

* 단점
- 대상 간의 처리능력이 다를 경우에는 공평한 부하 분배가 어려울 수 있다.
- 대상의 상태를 고려하지 않으므로, 특정 대상에 문제가 발생하더라도 다음 순서의 대상에게 계속해서 요청을 보낼 수 있다.

라운드 로빈은 주로 간단한 부하 분산이 필요한 경우나 대상 간 성능 차이가 크지 않을 때 사용된다. 또한, 상태 정보를 고려하지 않는 특성상, 서비스 제공이 각 대상에게 동일하게 이루어져야 할 때 적합하다.

 

210. Auto-scaling

클라우드 환경에서 자동으로 서버 또는 리소스의 용량을 조절하여 애플리케이션의 수요에 맞게 최적화하는 기술이다. 이를 통해 트래픽이나 워크로드의 증가 또는 감소에 대응하여 리소스를 효율적으로 활용할 수 있다. Auto-scaling은 애플리케이션의 가용성, 성능, 비용 효율성을 향상시키는 데에 중요한 역할을 한다.

Auto-scaling의 주요 특징과 구성 요소는 다음과 같다.
1. 트리거 기반 스케일링 : Auto-scaling은 특정 이벤트 또는 지표를 기준으로 작동한다. 이벤트나 지표는 트래픽 양, CPU 사용률, 메모리 사용률, 네트워크 부하 등과 같은 다양한 요소를 포함할 수 있다. 이러한 이벤트나 지표를 트리거로 설정하면 시스템이 자동으로 스케일링 동작을 수행한다.
2. 스케일 업과 스케일 다운 : Auto-scaling은 트래픽이 증가할 경우 인스턴스의 수를 자동으로 증가시켜 대응하고, 트래픽이 감소할 경우 인스턴스의 수를 줄여 리소스를 효율적으로 사용한다. 이를 통해 필요한 만큼의 리소스만 사용하여 비용을 절감할 수 있다.
3. 인스턴스 프로비저닝 : Auto-scaling은 새로운 인스턴스를 자동으로 프로비저닝하고 기존 인스턴스를 종료하는 작업을 수행한다. 이는 가용성을 높이고, 신속하게 대응할 수 있도록 도와준다.
4. 시간 기반 스케일링 : 특정 시간대에 예상치 못한 트래픽 증가를 예측하여 스케일링을 수행하는 기능을 제공할 수 있다. 예를 들어, 특정 이벤트 기간 동안 자동으로 인스턴스 수를 늘리는 등의 조치를 취할 수 있다.

Auto-scaling은 클라우드 서비스 제공자들이 제공하는 플랫폼에서 지원되며, AWS의 Auto Scaling, Azure의 Autoscale, Google Cloud Platform의 Managed Instance Groups 등이 대표적인 서비스 중 하나이다.

728x90
반응형