시작하면서 …

Apps101을 잘 따라오고 계신가요? 다행입니다.  Apps가 처음이신가요?  이 글은 Apps 101 과정의 다섯 번째 글입니다. 전체 과정의 구성을 살펴보시려면 여기를 들러 주세요.

이전 포스트에서 Nginx 서버를 배포하고, Nginx에 접속하는 것을 해보았습니다. 이 때 보여주는 접속 페이지는 Nginx 컨테이너 내에 있는 데이타입니다.  컨테이너는 종료되면 갖고 있던 모든 데이타가 모두 사라지는 기술적 특징을 가집니다.  컨테이너의 종료와 상관없이 데이타를 유지하기 위해서는 컨테이너 외부의 영구적인 저장소를 사용해야 합니다.

이번 포스트에서는 다루는 이야기가 컨테이너와 외부의 영구적인 저장소를 연결하는 방법입니다. 이전 포스트에서 배포한 Nginx서버에 NFS 스토리지를 연결하여 데이터를 서비스하는 방법에 대해 알아겠습니다.

Volume 생성

앱스에서는 기본적으로 1TB의 NFS 스토리지 공간을 제공하고 있습니다. 어플리케이션에서 스토리지를 연결하여 이용하기 위해서는  볼륨을 생성하고 워크로드에서 이를 마운트해야 합니다.

Nginx 워크로드가 배포된 서비스 맵에서 상단 [스토리지 볼륨] 탭으로 이동하여  [볼륨 생성]을 클릭합니다.

다음은 볼륨 생성 정보입니다.

  • 스토리지 볼륨 타입 : SHARED
  • 스토리지 : default-storage
  • 액세스 모드 : ReadWriteMany
  • 이름 : file-browser
  • 용량(GB) : 1
볼륨 생성 화면

[그림. 볼륨 생성 화면] 볼륨 생성 후, 상태가 Ready이면 정상입니다.

볼륨 상태 화면

[그림. 볼륨 상태 화면]

Volume에 파일 업로드

앱스에서는 스토리지를 Volume으로 추상화하여 관리하기 때문에 사용자가 스토리지 공간에 직접 접근할 수 없습니다. 스토리지의 데이타를 관리하기 위해서는 다음과 같이 별도의 어플리케이션을 사용해야 합니다.

STEP 1. File Browser 워크로드 생성

서비스 맵에서 Single Instance 타입의 워크로드 생성을 합니다.

다음과 같이 워크로드 정보를 입력합니다.

  • 이름 : file-browser
  • 설명 : file-browser
  • 컨테이너 추가
    • 컨테이너 명: file-browser
    • 이미지 : filebrowser/filebrowser:v2.0.7
  • 서비스 포트 추가
    •  포트 추가 – 이름 : web, 프로토콜 : TCP, 타겟 포트 : 80, 서비스 포트 : 80
  • 볼륨 마운트 추가
    • 컨테이너 : file-browser
    • 볼륨 선택: file-browser 후 추가
    • 컨테이너 경로: /srv/data
파일브라우저 워크로드 생성 화면

[그림. 파일브라우저 워크로드 생성 화면]

생성 버튼을 클릭 하고 워크로드가 정상 Running 상태를 확인 합니다.

STEP 2. File Browser 서비스 생성

서비스 맵 상단의 서비스 탭으로 이동하여, 다음의 정보를 입력하여 서비스를 추가합니다.

  • 서비스 유형 : NodePort
  • 서비스 명 : filebrowser
  • 대상 워크로드 : file-browser 선택 후, 포트 추가
    • 이름 : web
    • 프로토콜 : TCP
    • 타겟 포트 : 80
    • 서비스 포트 : 80
파일 브라우저 서비스 등록 화면

[그림. 파일 브라우저 서비스 등록 화면]

서비스 등록이 완료되면, 서비스 URL을 클릭하여 파일 브라우저 서비스로 이동합니다.

파일 브라우저 서비스 화면

[그림. 파일 브라우저 서비스 화면] 로그인(admin/admin)을 하면, 앞서 마운트한 볼륨을 확인할 수 있습니다.

 파일 브라우저 메인 화면

[그림. 파일 브라우저 메인 화면]

STEP 3. 파일 업로드

다음의 내용으로 index.html을 만들고, filebrowser의 data 디렉토리에 index.html 과 HelloWorld.jpg 파일을 업로드 합니다.

  • index.html
Copy to Clipboard
  • HelloWorld.jpg
HelloWorld 이미지 파일

다음은 업로드가 완료된 후의 File Browser 화면입니다.

업로드 결과 화면

[그림. 업로드 결과 화면]

Nginx에 Volume 연결

이제 볼륨을 Nginx 워크로드에 연결하여 홈페이지를 변경해 보겠습니다. 이전 포스트에서 배포된 Nginx 워크로드를 클릭하여 워크로드 정보화면으로 이동합니다.

다음의 정보를 이용하여 [볼륨 마운트]를 [추가]합니다.

  • 컨테이너 : nginx
  • 볼륨 선택: file-browser 선택 후 추가
    • 컨테이너 경로 /usr/share/nginx/html
Nginx 볼륨 마운트 팝업

[그림. Nginx 볼륨 마운트 팝업]

워크로드 정보화면 상단의 [업데이트] 버튼을 클릭하여 변경 사항을 반영하고, Nginx워크로드의 상태가 Running인지 확인을 합니다.

그리고 나서, Nginx워크로드의 노드포트 URL을 클릭하면 바뀐 홈페이지를 확인할 수 있습니다.

Helloworld 홈페이지

[그림. Helloworld 홈페이지]

이상으로 NFS 스토리지를 볼륨으로 연결해서 Nginx 홈페이지를 변경하는 과정을 확인하였습니다.

다음 포스트에서는 Tomcat을 띄워서 Nginx와 연결해보겠습니다.