웹 서버 구성에서 빠지지 않는 L4 switch  실물은 위 사진 에서 화살표로 표시 하였다.

요즘은 실물 장비를 확인 할 경우가 없기 때문에 IDC 방문 당시 기념으로 사진 하나 남겨봤다.

(하드웨어 유지 보수 업체에서 관리 하기 때문에 월별 리포트만 받아보고 있다.)

 

이마저도 클라우드 환경으로 점차 바뀌어가는 요즘 시간이 지나면 라때 선배의 경험담이 될지도 모르겠다;

AWS 기준 주로 (S3 (cloud front) + elb + ec2) 조합을 많이들 사용한다고 한다.

 

L4 와 L7 내용을 간략하게 정리하자면 아래와 같다.

L4 스위치


- Real ip 를 Vip 로 묶어서 로드밸런싱 / Fail over
- TCP/UDP 포트 정보를 확인해, 해당 패킷이 사용하는 서비스 종류별로 처리한다.
   (http,telnet, ftp 등 포트 기반 패킷 처리)
- TCP/UDP 포트를 이용하여 로드 밸런싱
- TCP/UDP 포트 정보를 참조해 스위칭
  즉, 모든 처리가 TCP/UDP 포트 정보 기반으로 함 (서비스 단위로 로드밸런싱, 스위칭)

L7 스위치


- TCP/UDP 포트 정보와 함께,패킷의 내용까지 참조해서 스위칭 한다.
- 포트 + 페이로드(실제 데이터, 컨텐츠) 를 분석함
- http 의 url 이나 쿠키 정보, 바이러스 패턴을 분석해 보안에 더 유리한 로드밸런싱이 가능하다. (트래픽 필터링 가능)
- 페이로드 분석을 통해서 DDos 방어, 패킷 필터링 등이 가능하다.
- URL 별 / FTP 파일 제목 등의 정보로도 스위칭이 가능하다
- HTTP Header값에 따라 특정 String을 기준으로도 로드밸런싱이 가능하다.

요약

 

공통점 스위치로 들어온 패킷을 적절한 목적지로 전송해 준다 불필요한 패킷은 drop


L4는 포트기반으로 패킷을 처리
L7는 포트+페이로드(데이터)를 기반으로 패킷을 처리
페이로드 기반으로 패킷을 처리하는 L7가 더 유연한 처리가 가능하다.
(URL 정보로 패킷을 처리한다든지 등의 더섬세한 컨트롤 가능)

'기타 > 네트워크' 카테고리의 다른 글

[HTTP] caching  (0) 2021.12.16
최신 메시지 큐(Messgae Queue) MQ 기술  (0) 2019.09.02

자바스크립트에서 한 쌍의 중괄호 {} 로 묶어 리터럴 표기법을 사용하여 단일 객체를 생성 할 수 있다.

아래 코드는 객체 color 생성과 동시에  red, black 속성과 해당 값을 추가

 

//color 객체 생성
var color = { 
   red : "#ff0000"
  ,black : "#000000"
};
console.log(color.red); // >> #ff0000
console.log(color.red); // >> #000000

생성과 동시에 할당된 color 객체의 속성의 값을 [수정,추가,삭제] 작업을 수행할 수 있다.

즉 이미 할당된 객체의 값을  이동중에도 원하는대로  작업이 가능하다.

아래 코드는 생성된 color 단일 객체의 red, blue, print  속성 값을 제어 한다.

 

//color 객체 생성
var color = { 
   red : "#ff0000"
  ,black : "#000000"
};

//객체 속성  수정
color.red = "#8b0000";

//객체 속성  추가
color.blue = "#0000ff";

//객체 메서드 추가
color.print = function(){
  for (var prop in this){
	console.log( prop +":" + this[prop] );
  }
}

console.log(color.print());
// red:#8b0000
// black:#000000
// blue:#0000ff

 

자바스크립트에서 단일 객체의 속성 값은 기본 유형으로 제한되지 하지 않고 있기 때문에

다른 객체인 속성을 추가 하거나 함수(function) 또한 작성 할 수 있다.

 

단일 객체 리터럴 표기법은 필요한 모든 것이 단일 객체이고 여러 인스턴스가 필요하지 않은 경우 선호 되겠지만

인스턴스가 생성하고 미리 정의 된 값을 기반으로 작업이 필요한 경우 생성자 함수를 사용하는 작성 하는 것이 좋을 것이다.

 

 

 

기본적으로 매니지드 언어에서는 가비지 컬렉터에  모든 리소스를 자동으로 관리한다고 소개하고 있다. 
하지만 예외로 외부의 비관리 영역상의 자원에 대해서는 관리 되지 않는 부분이 있는데.


파일 핸들

메모리 핸들

데이터베이스 연결

소켓 핸들

스레드 핸들

세마포어

등 비관리 자원들에 포함 된다.

 

C# 에서 네임스페이스에 쓰이는 using 아닌 , 비구조적 예외 처리에 쓰이는 using 문이 있는데

코드를 한번쯤 다뤄본 경험이 있다면 작성된 using 문을 본 경험이 있으실거라 생각한다.

 

데이터 베이스 연결 부분을 예시로 들어 본다고 한다면.

using (SqlConnection connection =new SqlConnection(connectionString))
{
    SqlCommand command =new SqlCommand(queryString, connection);
    command.Connection.Open();
    command.ExecuteNonQuery();
}

 

using{  } 범위에서의 자원들은 영역에서 벋어 나게 되면 자원을 반납하게 되며 해당 범위에서

예외(오류) 생기더라도 자동적으로 자원을 반납되게 된다.

하여 비관리 영역상의 자원 관리는 선택적인 사항이 아니라, 반드시 숙지하고 활용해야 할 사항이다.

 

만약 집중되어 사용량이 몰릴 경우 자원이 고갈되어 시스템에 문제가 생길 수 있기 때문에

이를 사전에 예방하고 효율적으로 관리하기 위해서 명시적인(IDisposable 인터페이스) 소멸자를 직접 구현하거나

앞서 설명 하고 있는 using 문을 사용한 외부 비관리 자원들의 관리를 해야 한다.

 

 

 

 

 

문제 확인

 

데이터 검증을 위해 키바나 페이지에 접근하니 상태 빨강 license-expired 경고 메세지를 보여주고 있다.

라이센스 새로 발급 받을 때가 온거 같아 정리 겸 작업 내용을 작성 해 보려 한다.

라이센스 처리전 까지 kibana 기능을 사용할 수 없다.

 

지금 회사에서 사용하는 'BASIC' 버전의 'Free License'  유효기간은 '1년'이며, 1년이 지났다면 라이센스 등록 페이지로 이동하여, 이름과 이메일, 국가 등의 정보를 등록하면 '라이센스 json 파일' 다운로드 링크를 이메일로 받을 수 있다.

 

작업 전  Elastic 버전 별 오픈 소스 제공 내용은 아래 참고 하시면 된다.

Basic 에 속한 기능들은 오픈소스 라이센스는 아니지만 무료로 사용할 수 있도록 제공되고 있다.

( 개발자 도구,  Kibana 쿼리 자동 완성  같은 편의 기능등이 대부분 Basic 라이센스에 속해 있다).

 

 

라이센스 등록 과정

 

아래 링크에 접속 하여 Basic License 등록을 시작 하자

 

Register | Elastic

Afghanistan Åland Islands Albania Algeria American Samoa Andorra Angola Anguilla Antarctica Antigua and Barbuda Argentina Armenia Aruba Australia Austria Azerbaijan Bahamas Bahrain Bangladesh Barbados Belarus Belgium Belize Benin Bermuda Bhutan Bolivia, P

register.elastic.co

 

등록과정-A

 

등록과정-B

등록 마무리 했다면 이제 메일을 확인 하여 라이센스 파일을 다운로드 한다. 첫 링크 /download/ 선택

 

다운로드 과정-A
다운로드 과정-B (해당 되는 버전 선택 하여 다운로드 진행 한다.)

 

라이센스 JSON 포멧은 아래와 같다.

{
    "license": {
      "uid": "",
      "type": "basic",
      "issue_date_in_millis": ,
      "expiry_date_in_millis": ,
      "max_nodes": ,
      "issued_to": "dongmin seol (dm)",
      "issuer": "Web Form",
      "signature": "hazE2k5J0oSNcW0bOAAABm",
      "start_date_in_millis": 
    }
 }

 

라이센스 교체

이제 서버로 이동하여 기존 라이센스 교체가 필요하다 서버로 접속 해본다.

다운로드한 license.json 파일을 서버로 옮긴 후 xpack의 rest api 로 밀어 넣어 주면 된다. 아래 참조 커멘드

curl -XPUT -u elastic:{elastic_password} 
https://{ipaddress}:9200/_xpack/license?acknowledge=true 
-d @/server/elasticsearch-5.1.1/{license_file_name}.json

 

라이센스 확인

 

등록한 라이센스 정보를 확인 해본다. 아래 참조 커멘드

curl https://{ipaddress}:9200/_license

결과는 아래와 같다.

 

'기타 > Elasticsearch' 카테고리의 다른 글

[Elasticsearch] DSL 쿼리  (0) 2021.09.29

 

참조링크 https://2hyes.tistory.com/91

 

 

- git 설치 링크 https://git-scm.com/downloads

 

Git - Downloads

Downloads macOS Windows Linux/Unix Older releases are available and the Git source repository is on GitHub. GUI Clients Git comes with built-in GUI tools (git-gui, gitk), but there are several third-party tools for users looking for a platform-specific exp

git-scm.com

 

- github에서 생성한 repository 주소를 복사하여 메모장에 준비해 두자

 

 

- github에 업로드 진행 할 프로젝트 마우스 우클릭 > Git Bash Here

- Git Cmd 창이 뜨면 초기 설정을 아래 참조 이미지 순으로 진행

git config --global user.name "github name"
git config --global user.email "github email"
git init
git add .
git commit -m "저장코멘트"
git remote add origin https://github.com/repository주소.git
git push -u origin master

+ Recent posts