728x90
반응형

안녕하세요.

 

오늘은 컨테이너 오케스트레이션 툴 중의 하나인 kubernetes에서도 minikube 설치 방법에 대해서 알아보고자 합니다. 

저는 minikube를 통해 쿠버네티스 클러스터 구성 및 설정 등을 해보았는데요.

 

자 그럼 Minikube 설치방법 안내드립니다.

 

1. 먼저 아래의 명령어를 통해 쿠버네티스 클라이언트(kubectl)를 설치합니다.

    그리고 설치 경로는 /usr/local/bin/minikube로 설정하였습니다.

# curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 && sudo sudo install minikube-linux-amd64 /usr/local/bin/minikube

 

2. 해당 위치에 잘 설치되었는지 아래와 같이 확인합니다.

 

 

 

3. #minikube start 명령어를 통해 클러스터를 시작합니다.

 

 

4. # kubectl get nodes 명령어를 통해 클러스터 노드를 확인합니다.

 

 

 

 

5. 노드에 대한 상세한 정보를 원하신다면 #kubectl describe node 노드명을 통해 아래와 같이 확인하실 수 있습니다.

 

감사합니다!

 

 

728x90
반응형
728x90
반응형

안녕하세요. 로이손입니다.

 

오늘부터는 그동안 올리고 싶었던 자료구조 시리즈를 올려보려고 합니다.

이 글을 올리는 목적은 2가지인데요.

첫 번째는 정확하고 간결한 정보 전달.

두 번째는 자료구조에 대한 기본기 강화입니다.

 

그럼 바로 본론으로 시작할게요!

 

자료구조(Data structure)란?

저만의 정의를 내려보면,

현실 세계의 데이터를 컴퓨터 내에서 처리하기 위해 정해진 방식으로 저장, 관리하는 방식! 

이라고 생각합니다.

 

간단한 예시로, 매표소에 창구를 몇 개를 설치하는게 좋을지 관리자 입장에서 고민이 될 수 있습니다. 비용을 생각한다면 1개가 좋겠지만, 고객의 대기시간을 고려하면 너무 적어서도 안되겠죠. 그래서 알고리즘을 이용하여 최적의 매표소 개수를 찾아낼 수 있습니다. 그럼 알고리즘을 이용하기 위해 고객들이 오는 시간, 어떤 방식으로 대기가 처리되는지 등을 정의해야겠죠?! 이럴 때 필요한 것이 바로 자료구조입니다. 먼저 온 순서대로 처리되는 FIFO(선입선출)방식을 해결하기 위해 Queue를 이용할 수 있습니다.

 

그럼, 오늘은 첫 시간이므로 배열부터 시작하겠습니다.

 

1. 배열 정의

  - 가장 기본적인 형태의 자료구조 중의 하나이며, 같은 DataType(자료형)들로 모인 것입니다. 

    예) 어떤 반에서 수학 시험을 봤을 때, [77점, 66점, 81점, ...] 과 같이 숫자형 자료형으로 모인 데이터 집합을 배열로 정의할 수 있습니다.

 

2. 배열의 형식

  - 아래와 같이 int[] a 도 가능하며, int b[] 와 같이 선언이 가능합니다.

    int는 자료형을 의미하며, [ ] 는 배열의 선언을 의미합니다. a와 b는 배열명입니다.

    배열은 참조방식이므로 new 연산자를 이용하였으며, int[3]과 int[10]은 int라는 자료형의 배열 공간을 3개, 10개 만들겠다는 의미입니다.

 

 

 

 

 

 

 

3. 배열의 초기값

  - 위에서 만든 a라는 배열 변수를 아래와 같이 표현해보았습니다. 

  - new 연산자를 이용해 만든 a와 b라는 배열은 0으로 초기화되어있습니다.

 

 

 

 

 

 

 

 

4. 배열 대입 및 호출

  - 배열에 값 대입

    1) a[0] = 1 과 같이 원하는 배열 공간에 직접 대입하는 방법

    2) int[] a = {1,2,5} 와 같이 중괄호와 쉼표를 이용하여 대입하는 방법

  - 배열에서 값 호출

    a[0]와 같이 원하는 배열변수에서 특정 위치를 기입하여 호출합니다. 

    아래의 예시에서는 for문을 이용하여 "대입 전 값"과 "대입 후 값"을 호출하였습니다.

  - 배열변수명.length는 크기를 나타냅니다. 아래에서 a.length는 3을 나타내죠~

 

5. 배열 복제(Clone)

  - 아래와 같이, 복사할 배열.clone() 을 활용하면 배열 복제가 가능합니다.

  - 저는 a라는 배열을 Source로, copyA라는 배열을 Target으로 하여, 복제해보았습니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

오늘은 기본기 다지는 시간이었던 거 같아요. 다음부터는 점차 난이도를 높여가도록 해보겠습니다!

 

감사합니다.

728x90
반응형
728x90
반응형

안녕하세요.

오늘 알아볼 내용은 도커 허브(Docker Hub)에 이미지 푸시 방법입니다!

 

 

주로 도커 이미지를 빌드하면 로컬 환경에서만 사용했지만, 다른 곳에서 실행하기 위해 이미지 레지스트리에 보관해야 합니다. 주로 쓰이는 레지스트리는 DockerHub 및 Quay.io, Google Container Registry 등이 있습니다. 오늘 할 내용은 DockerHub에 푸쉬하는 방법을 알아보고자 합니다.


먼저 시작 전에 준비물이 필요합니다. 
도커 셋업 환경 : Ubuntu 16.04 버전
도커 버전 : 18.09.4
도커 이미지 : Docker image(저는 여기서 Tomcat:latest라는 이미지를 사용했습니다.)

 

원리는 이렇습니다!

도커 허브 ID 생성 -> 이미지 태그 지정 -> 도커 이미지 Push 순서입니다.

정해진 순서는 딱히 없지만 전 위의 순서대로 진행해보고자 합니다.

 

1. 먼저, Push하고자하는 도커 이미지를 확인합니다. 

 

 

2. 도커 허브에 이미지를 올리려면 계정 생성이 필수입니다. 아래 링크를 클릭한다음,

   Sign up for Docker Hub를 클릭합니다.

   https://hub.docker.com/

 

3. Docker ID와 비밀번호 그리고 이메일 계정을 입력하고 continue를 클릭합니다.

4. 위에서 입력한 이메일로 가입 메일이 아래와 같이 발송됩니다.

 

5. 그리고나서 로그인을 진행하면 아래와 같이 화면이 뜨고, [Create a Repository]를 클릭합니다.

 

6. 레퍼지토리 생성 화면이 뜨는데, 저는 Private으로 한 번 만들어보겠습니다.

 

7. 아래와 같이 레퍼지토리가 생성되었으며 빨간색 네모박스에 가장 최근에 푸쉬된 내역이 없는 것을 확인할 수 있습니다.

 

8. 자, 그럼 위에서 언급했떤 도커 이미지 태그 생성을 시작해보겠습니다.

  docker tag {image명} {docker hub 아이디}/{레퍼지토리명}

  아래에 보시면 tomcat이라는 이미지를 위에서 생성한 도커 허브의 레퍼지토리에 올리기 위해 태그로 만듭니다.

  레퍼지토리명 대신 image명을 사용하셔도 무방합니다. 그러면, image이름으로 레퍼지토리가 자동으로 생성됩니다.

 

 

9. 그 다음은, 도커 허브에 로그인을 해야 합니다.

   docker login -u {도커아이디} 를 입력한 뒤 Password를 입력하면 아래와 같이 Login Succeeded를 확인합니다.

 

10. 마지막으로 docker push를 합니다.

    위에서 만든 태그를 통해 docker push {도커아이디}/{레퍼지토리명}을 입력하면 아래와 같이 push가 됩니다.

 

11. 도커 허브에 성공적으로 Push가 됐음을 확인할 수 있습니다.

감사합니다.

 

-끝-

728x90
반응형

'Development > Docker' 카테고리의 다른 글

도커 네트워크(Docker network) 길라잡이  (0) 2019.03.13
Docker 명령어 정리(기초편)  (0) 2019.03.11
728x90
반응형

안녕하세요. 로이손입니다.



오늘 알아볼 내용은 이클립스를 통해 A(아래 github)라는 원격 저장소를 B(AWS code commit)라는 원격 저장소로 옮기는 방법을 알아보려고 합니다.


일반적으로 github에서 local PC의 이클립스 내에 git clone을 통해 해당 소스들을 받아서 쓰셨을 겁니다.

여기서 Local PC 내, 이클립스에서 원격 저장소에서 원격 저장소 추가 및 변경이 가능합니다.





그럼 시작해볼게요~!

준비물 : 이클립스, 신규 git repository 경로 및 계정 정보(ID/PW)



1. 이클립스를 실행한 다음, 우측 상단의 git 아이콘을 클릭합니다.



2. 해당 레퍼지토리에서 Remotes 항목에서 우클릭을 클릭 후, Create Remote를 클릭합니다.



3. 신규 원격저장소 이름을 정해주고 OK를 클릭합니다.



4. URL 우측에 보시면 [Change...]을 클릭합니다.




5. URL에 신규 Repository 경로를 입력한 다음, Authentication 아래에 User와 Password 정보를 입력하고 Finish를 클릭합니다.




6. Advanced를 클릭합니다.




7. 아래 이미지를 보시면 Add All Branches Spec을 클릭하여 모든 브랜치 정보를 다운받습니다.



8. 마지막으로 Save and Push 버튼을 클릭하여 신규 Repository에 프로젝트 소스코드를 푸쉬합니다.



9. 아래와 같이 원격저장소에 origin(기존 원격저장소)와 origin-remote(신규 원격저장소)가 같이 연결됨을 볼 수 있습니다.

  그리고 신규 원격 저장소에 가시면 소스코드들이 clone되어있음을 확인할 수 있습니다.



감사합니다!~


끝.

728x90
반응형

'Development > Git' 카테고리의 다른 글

Git 필수 명령어 정리  (0) 2019.02.25
728x90
반응형

안녕하세요. 로이손입니다.




오늘 알아볼 내용은 젠킨스 버전 업그레이드 방법입니다!.


AWS EC2에 애플리케이션 배포를 설정하다가 기존 젠킨스 버전으로는 해당 플러그인을 지원하지 않아 업그레이드를 해야 했습니다.


자! 그럼, 바로 본론으로 들어가볼게요.


구성 환경

  - 젠킨스 운영 OS : Ubuntu 14 버전



1. 아래의 빨간색 네모박스에서 [여기]를 클릭합니다.





2. 신규 jenkins.war 파일을 바탕화면에 내려받습니다. 

  (저는 Ubuntu Server 14버전에서 jenkins를 운영 중인데 최신파일을 내려받아 SFTP로 넘겨줄 생각입니다.)


3. 그리고 이전에 받아뒀던 jenkins.war 파일을 젠킨스 운영 서버(저는 Ubuntu Server 14버전)에서 찾아야 합니다.

  # find / -name 'jenkins.war' 명령어를 이용하여 해당 파일의 위치를 찾습니다.



4. 그리고, 바탕화면에 새로 받은 jenkins.war 파일을 Ubuntu 서버 내 jenkins.war가 있었던 곳에 그대로 [덮어쓰기]를 해주어야 하는데,

   이를 위해서는 FileZila를 이용해 SFTP방식으로 넘겨주고자 합니다.



5. 기존 jenkins 서버를 stop하고 다시 start 해줍니다.

  서비스에 등록되어있다면 service jenkins stop // service jenkins start 명령어를 통해 가능합니다.

  저는 service에 따로 적용 되어 있지않아 톰캣 stop // start를 해주었습니다.


6. 새로 실행된 서버에 접속하여 아래와 같이 변경된 화면을 확인할 수 있습니다. 끝.



728x90
반응형

'Development > Build' 카테고리의 다른 글

Build & Compile (빌드와 컴파일) 차이  (0) 2019.02.28
728x90
반응형

안녕하세요. r-son입니다.


오늘은 AWS에서 인스턴스 생성 시 주로 사용하는 PEM Key를 이용한 Private Key 추출 방법에 대해서 소개해드리고자 합니다.


먼저, 준비물


1. mobaXterm (SSH 접속툴)

2. Puttygen

3. PEM Key



그럼 시작해볼까요?


1) 일단, Puttygen을 실행합니다.




2) 실행하면 아래와 같은 화면이 뜨고, 기본으로 RSA에 체크되어있습니다.

여기서 PEM Key를 찾기 위해 Load를 클릭합니다.




3) 아래 빨간색 박스의 All Files로 타입을 바꾸고, 해당 pem key를 찾아서 [열기]를 클릭합니다.





4) 아래와 같이 성공적으로 private key 생성이 완료되었음을 확인합니다.





5) Save private key를 누르면 팝업창이 뜨고 예(Y)를 클릭합니다. (암호없이 키를 저장하겠다는 의미입니다.)





6) 파일 이름을 정해주고 save를 누르면 private key 생성이 완료됩니다.




이상으로 puttygen을 이용한 pem key에서 private key 생성 방법 알려드렸습니다.


감사합니다.

728x90
반응형
728x90
반응형

안녕하세요. R-son입니다.

오늘 알아볼 내용은 바로 도커 네트워크입니다.

도커(Docker)는 다들 한 번쯤 들어보셨죠?!

 

도커(Docker)의 정의에 대해서 잠깐 집고 갈까요?


도커는 컨테이너 기반의 오픈소스 가상화 플랫폼이다.

도커는 호스트 서버 위에 도커 엔진을 설치하고 그 엔진 위에 컨테이너(격리된 프로세스 공간)를 실행한다.

잠깐 VMWare와 비교 설명을 해드리겠습니다.

, VMwareVirtual Machine은 호스트 서버 위에 게스트 서버를 두는 구조이지만

도커는 호스트 서버 위에 도커 엔진이라는 친구를 둡니다. 그리고 도커 엔진 위에서는 이미지가 담긴 컨테이너(독립적인 프로세스 공간)들을 올리는 구조입니다.

[여기서 이미지란 프로그램이나 환경설정 등의 정보가 담긴 그릇이라고 생각하면 됩니다.]

 

그럼 도커에 대해서는 간략히 설명하고 본론인 도커 네트워크에 대해서 살펴볼까합니다.

오늘은 3가지(브릿지 네트워크, 오버레이 네트웤, macvlan) 중에서 하나인 브릿지 네트워크를 알아보려고 합니다.

 

도커 브릿지 네트워크는 하나의 서버 머신 환경에서 여러 개의 컨테이너를 연결할 때 사용하는 네트워크를 의미하는데 리눅스의 네트워크 브릿지의 개념을 적용한 네트워크 방식입니다.


리눅스 네트워크 브릿지를 잠깐 설명드리면, 브릿지 안에는 여러 개의 포트들이 있고 그 포트들에 NIC들이 아래와 같이 연결되어있습니다., 브릿지는 각 포트에 대한 NICMAC주소를 테이블에 저장하고 있습니다.(1 참고)

1

PORT-1

a0:8e:17:45:11:3e

PORT-2

a0:8e:17:50:2b:6c

PORT-3

 

PORT-4

a0:8e:17:45:45:6a

 

이와 더불어 필요한 것이 MAC주소와 IP를 매핑하는 arp 테이블이 필요합니다. 예를 들어서 NIC-2의 컴퓨터 OS는 아래와 같은 arp 테이블 정보를 가지고 있습니다.(2 참고). 

2

IP 주소

MAC Address

172.17.0.3

a0:8e:17:50:2b:6c

172.17.0.4

a0:8e:17:45:45:6a

 

, NIC-1에서 172.17.03으로 패킷을 보내면 ARP테이블에서 MAC주소를 찾고 이를 OS에서 패킷에 MAC주소를 설정해서 브릿지에 보냅니다. 그러면 브릿지의 테이블(1)에서 MAC주소를 찾아 해당 포트로 패킷을 보내는 구조입니다. 조금 복잡하지만 하나씩 천천히 읽어보면 리눅스 브릿지 네트워크를 이해할 수 있을 겁니다.



 

도커의 브릿지 네트워크는 위에서 배운 리눅스 브릿지 네트워크를 활용합니다.

NIC가 도커에서는 컨테이너가 되구요~


 

. 그럼 다시 도커로 돌아와서, 도커의 브릿지 네트워크를 보겠습니다.

도커를 실행해서 #ifconfig docker0을 입력하면 브릿지 인터페이스를 확인 할 수 있는데요Docker0이 위에서 봤던 브릿지입니다.

여기서 컨테이너를 만들면 가상 인터페이스가 docker0에 연결됩니다.




연결 정보는 아래의 명령어를 통해서 확인할 수 있습니다. 저는 3개를 만들었어요~ 

※ interfaces 아래에 보시면 3개의 veth들이 보이는데, veth는 하나를 브릿지에 연결하고 다른 하나를 컨테이너에 연결합니다.

Brctl-utils를 이용해서도 확인할 수 있습니다.

#Brctl show docker0



그럼 연결된 정보를 상세히 보려면 #ifconfig 명령어를 통해서 볼 수 있습니다.

veth1~~, veth5~~, veth9~~ 보이시죠?!




컨테이너와 브릿지가 서로 연결되었네요

그럼 컨테이너들은 어떻게 외부와 통신할 수 있을까요?

그건 바로 IP 마스커레이드(Masquerade)가 가능하기 때문입니다. 마스커레이드는 NAT(네트워크 주소 변환)이라고도 불립니다

, 패킷 출발지 IP(Private IP)iptables를 이용해서 호스트가 가진 Public IP로 변환한 다음에 외부로 보냅니다.

Ex) 컨테이너 내 IP가 172.17.0.2에서 외부로 패킷이 나갈 때, iptables에서 공인IP(XXX.XXX.XXX.XXX)로 나갑니다.


Iptables –t nat –L을 통해 마스커레이드 설정을 확인할 수 있습니다.

#iptables –t nat –L

아래 이미지에서 MASQUERADE(마스커레이드) 설정을 확인할 수 있습니다. 


반대로 외부에서 내부 컨테이너로 어떻게 통신이 될 수 있을까요?

포트 포워딩(Port forwarding)이 있어 가능합니다!. 포트 포워딩이란 외부에서 공인IP의 특정 포트로 들어오는 패킷을 내부 네트워크로 보내는 기능입니다.


예를 들어, 공인IP(XXX.XXX.XXX.XXX:8000)으로 들어올 경우, iptables에서 8000을 내부 컨테이너 IP 172.17.0.3:80로 포워딩시켜줄 수 있습니다.

아래 이미지에서 DNAT(Destination NAT) 설정을 확인할 수 있습니다. DNAT는 포트포워딩이라고 보셔도 무방합니다.



도커에서는 -p 옵션을 사용하여 포트포워딩을 설정해줄 수 있습니다.

예시) #docker run -p 8000:80 -it ubuntu /bin/bash


기타 궁금하신 점은 댓글 부탁드려요~





728x90
반응형

'Development > Docker' 카테고리의 다른 글

도커 허브에 이미지 푸시 방법  (0) 2019.04.03
Docker 명령어 정리(기초편)  (0) 2019.03.11
728x90
반응형

안녕하세요. r-son입니다.


오랜만에 인사드리네요.


오늘은 도커(docker) 명령어에 대해서 간략히 알아볼까해요


그럼 아래 표를 보시죠~!


기능

명령어

도커 정보 확인

Docker info

도커 버전 확인

docker version

컨테이너 목록 확인

Docker ps

Ex) docker ps -a (중지된 컨테이너)

Ex) docker ps (실행 중인 컨테이너)

컨테이너 실행하기

Docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG…]

Ex) docker run ubuntu:16.04

Ex) docker run --rm -it ubuntu:16.04 /bin/bash

  /bin/bash 명령어를 통해 ubuntu:16.04 컨테이너 실행

  컨테이너 내부로 들어가기 위해 bash 실행 키보드 입력을 위해 -it 옵션을 부여

  추가적으로 프로세스가 종료되면 컨테이너가 자동으로 삭제되도록 --rm 옵션 부여

Ex) docker run -d -p 1234:6379 redis

  redis 메모리기반의 다양한 기능을 가진 스토리지. 6379포트로 통신하며 telnet 명령어로 테스트 가능(telnet localhost 1234)

  redis 컨테이너는 detached mode(백그라운드 모드) 실행하기 위해 -d 옵션을 추가하고 -p 옵션을 추가하여 컨테이너의 포트를

  호스트의 포트로 연결한다.

  -d 옵션이 없다면 프로세스가 폴그라운드로 실행되어 아무키도 입력할 없으며 컨테이너 종료는 ctrl+c 입력한다.

  -d 옵션을 줘서 컨테이너의 ID 보여주고 바로 쉘로 돌아왔다. 컨테이너는 종료된 것이 아니라 백그라운드 모드로 동작

  -p 옵션을 이용하여 호스트의 1234포트를 컨테이너의 6379 포트로 연결하였고 localhost 1234 포트로 접속하면 redis 사용할 있다.

Ex) docker run -d -p 3306:3306 -e MYSQL_ALLOW_EMPTY_PASSWORD=true --name mysql \ mysql:5.7

  mysql -h127.0.0.1 -uroot

  -e 옵션은 환경변수를 설정하고 --name 컨테이너에 읽기 어려운 ID대신 쉬운 이름을 부여한다.

  -e 옵션 패스워드 없이 root 계정을 만들기 위해 MYSQL_ALLOW_EMPTY_PASSWORD 환경변수를 설정한다.

Ex)

# before
docker run -d -p 3306:3306
\
  -e
MYSQL_ALLOW_EMPTY_PASSWORD=true \
  --name mysql
\
  mysql:5.7

# after
docker run -d -p 3306:3306
\
  -e
MYSQL_ALLOW_EMPTY_PASSWORD=true \
  --name mysql
\
  -v /my/own/datadir:/var/lib/mysql
\ # <- volume mount
  mysql:5.7

 

  -v 옵션은 호스트의 디렉토리를 마운트해서 사용하는 방법 : MysQL이라면 /var/lib/mysql 디렉토리에 모든 데이터베이스 정보가 담기므로

   호스트의 특정 디렉토리를 연결해주어야 한다. 위의 샘플은 호스트의 /my/own/datadir 디렉토리를 컨테이너의 /var/lib/mysql 디렉토리로

   마운트하였다. 이제 데이터베이스 파일ㅇ느 호스트의 /my/own/datadir 디렉토리에 저장되고 컨테이너를 삭제해도 사라지지 않는다.

 

컨테이너 중지하기

Docker stop [OPTIONS] CONTAINER [CONTAINER…]

Ex) docker stop ${CONTAINER_ID}

컨테이너 제거하기

Docker rm [OPTIONS] CONTAINER [CONTAINER…]

Ex) docker rm ${CONTAINER_ID}

Ex) docker rm -v $(docker ps -a -q -f status=exited)  -- 중지된 컨테이너 ID 가져와서 한꺼번에 삭제

컨테이너 로그 보기

Docker logs [OPTIONS] CONTAINER

Ex) docker logs --tail 10 ${CONTAINER_ID}

Ex) docker logs ${CONTAINER_ID}

 

컨테이너 명령어 실행하기

Docker exec [OPTIONS] CONTAINER COMMAND [ARG…]

Ex) docker exec -it mysql /bin/bash

이미지 목록 확인

Docker images [OPTIONS] [REPOSITORY[:TAG]]

Ex) docker images

이미지 다운로드(pull)

Docker pull [OPTIONS] NAME[:TAG|@DIGEST]

Ex) docker pull ubuntu:14.04

이미지 삭제하기(rmi)

Docker rmi [OPTIONS] IMAGE [IMAGE…]

Docker rmi ${IMAGE_ID}


728x90
반응형

'Development > Docker' 카테고리의 다른 글

도커 허브에 이미지 푸시 방법  (0) 2019.04.03
도커 네트워크(Docker network) 길라잡이  (0) 2019.03.13
728x90
반응형

안녕하세요. RoySon입니다.


오늘 알아볼 내용은 블록 스토리지(Block Storage)입니다.


블록 스토리지란 무엇일까요?


블록 스토리지는 균등한 크기로 정의된 블록에 데이터를 저장하는 스토리지를 일컫습니다. 즉, 여기서 블록이라는 특정 '공간' 위치에 데이터를 액세스를 하는 방식입니다. 


블록 스토리지는 과거 SAN 환경에서 주로 사용되었지만 지금은 SAN 환경과 더불어 클라우드 상에서 일반적으로 2종류로 서비스를 제공하고 있습니다.

첫째는 하드디스크 방식이며 둘째 SSD 방식입니다. 

당연히 기존의 저장된 정보를 입/출력하는 속도(아이옵스, IOPS)는 SSD가 빠릅니다.

( ※ 일반적으로 HDD에 비하여 SSD가 5~10배 정도 전송속도가 빠르다고 합니다.)


이러한, 블록 스토리지는 이전에 오브젝트 스토리지에서 포스팅했듯이, 확장성이나 비정형 데이터 처리 측면에서는 적합하지 않지만 

엔터프라이즈 데이터베이스 환경이나 액세스 및 변경이 자주 일어나는 데이터를 저장할 때 적합합니다. 


그럼 블록 스토리지에 대해서 간략히 이해는 되셨죠?



잘못된 정보 or 피드백 등 추가적으로 덧붙이고 싶은 부분은 댓글로 달아주세요~






728x90
반응형

'Cloud > Storage' 카테고리의 다른 글

오브젝트 스토리지(Object Storage) 정의  (0) 2019.03.03
파일 스토리지(file storage) 정의  (0) 2019.03.01
728x90
반응형



안녕하세요. r-son입니다.



오늘 알아볼 내용은 바로 오브젝트 스토리지입니다.



오브젝트 스토리지를 활용하면 비정형 데이터를 중복 없이 효율적으로, 그리고 저비용으로 저장 및 관리할 수 있습니다.



그리고 현재, AWS나 Azure, google,  오라클 클라우드 등 많은 클라우드 서비스에서도 쉽게 찾아볼 수 있는 스토리지 중의 하나가 되었습니다.



그럼 자세히 들여다 볼까요?



먼저 아래의 그림을 보시죠!





데이터 스토리지는 일반적으로 파일 시스템, 블록스토리지, 오브젝트 스토리지로 분류할 수 있습니다.

(※ 파일시스템과 블록 스토리지는 다음 시간에 자세히 알아볼 예정입니다~)




오브젝트 스토리지란 비정형 데이터들을 저장/관리하기 위해 오브젝트를 이용하여 관리하는 스토리지입니다. 오브젝트 스토리지 버킷이라고도 불린다.

  ☞ 오브젝트(객체) : 파일에 해당하는 '데이터 본체'와 사용자가 부여하는 다양한 '부가 정보(메타 데이터)'를 조합한 단위

  ☞ 버킷 : 오브젝트(객체)를 읽거나 쓰거나 저장하는 등을 할 수 있는 단위. 오브젝트를 저장하는 논리적 컨테이너입니다.




아래의 Dell사의 한 아키텍처가 정리한 대리주차 비유 개념을 좀 더 들여다보시면 이해가 더욱 쉽습니다.


    오브젝트 스토리지 == 대리 주차(즉, 발렛 파킹)

    호텔에 들어갔을 때, 손님이 키를 맡기면(PUT) 주차요원이 알아서 주차를 해줍니다. 

    여기서 우리는 손님의 차가 어딨는지 모르죠(스토리지 세부 정보에 대해 걱정안함)

    이후, 차를 찾을 때(데이터가 필요할 때) 번호표를 반납하면(GET) 차를 찾을 수 있습니다.




(출처 : Dell EMC, https://korea.emc.com/storage/elastic-cloud-storage/articles/what-is-object-storage-cloud-ecs.htm)



오브젝트 스토리지의 장점!


1. 액세스 용이성 : 데이터를 쉽게 검색하고 클라우드에서 액세스하며 바로 분석할 수 있음.

2. 효율적 관리 : 비정형 데이터에 정형성을 부여함으로써 많은 양의 컨텐츠를 효율적으로 저장 관리할 수 있음.

3. 확장성 : 계층형 구조를 가진 기존 스토리지와는 달리 오브젝트 스토리지는 데이터가 커져도 복잡해지지 않음.

4. 타 서비스와의 연동 : 클라우드 서비스 내에서 제공되는 다른 서비스들과 통합 및 연동 가능.




추가적으로 오브젝트 스토리지에 대해서 더 깊게 알고 싶으신 분들은 아래의 링크를 참고해주세요~



출처 : 

1. 오브젝트 스토리지(한국데이터진흥원) : https://www.kdb.or.kr/info/info_04_view.html?field=&keyword=&type=techreport&page=19&dbnum=183542&mode=detail&type=techreport

2. 오브젝트 스토리지 이점(IBM) : https://www.ibm.com/blogs/cloud-computing/2017/02/01/object-storage-benefits-myths-and-options/



728x90
반응형

'Cloud > Storage' 카테고리의 다른 글

블록스토리지(Block Storage) 정의  (0) 2019.03.05
파일 스토리지(file storage) 정의  (0) 2019.03.01

+ Recent posts