오브젝트스토리지

[오브젝트 스토리지 활용] Nextcloud 외부저장소 연결하기

 

 넥스트클라우드(Nextcloud)란 무엇인가?


 

Nextcloud는 클라우드 파일관리 서비스를 사용자의 컴퓨터나 모바일등에 설치해서 사용할 수 있게 해주는 클라우드 파일서버용 오픈소스 소프트웨어 입니다.

웹이나 어플에서 홈 서버의 파일을 사용하고, 홈서버에 파일을 전송하고 url를 통해 공유할 수 있습니다.  


 

 

 

Iwinv 오브젝트 스토리지 연동하기 


본인의 서버에 nextcloud를 설치 후,  외부저장소 기능을 사용하면 iwinv 오브젝트 스토리지를 연동하여 웹을 통해 간편하게 사용할 수 있습니다.

또한, 그룹 및 사용자를 생성하여 서브 유저 개념으로 오브젝트 스토리지를 사용할 수 있습니다.  ( 그룹별 접근 가능 버킷 설정 가능)

 

메뉴얼은 Ubuntu 18.04로 진행하였습니다 

 

 

1.  Apache2, PHP 7.2 , MariaDB 설치하기  

Nextcloud를 설치히하기 위해서는 우선적으로 Apache2, PHP , Maria DB가 설치되어 있어야 합니다.  ( php의 경우 7.4아래 버젼으로 설치 ) 

 

# Apache2 설치 

sudo apt update 

sudo apt install apache2

 

# Maria DB 설치

sudo apt-get install mariadb-server mariadb-client

 

sudo systemctl enable mariadb.service

 

# 보안설정 

sudo mysql_secure_installation 

 

Enter current password for root (enter for none):  Enter 입력

Set root password? [Y/n]  Y

New password: 패스워드 입력

Re-enter new password: 패스워드 재입력

Remove anonymous users? [Y/n]  Y

Disallow root login remotely? [Y/n]  Y

Reload privilege tables now? [Y/n]  Y

 

 # PHP 7.2 설치 

sudo apt -y install software-properties-common


sudo add-apt-repository ppa:ondrej/php

sudo apt update

 

sudo apt install php7.2 libapache2-mod-php7.2 php7.2-common php7.2-gmp php7.2-curl php7.2-intl php7.2-mbstring php7.2-xmlrpc php7.2-mysql php7.2-gd php7.2-xml php7.2-cli php7.2-zip

sudo service apache2 restart

 

  

 

2.  Nextcloud 설치

Nextcloud 20 버젼을 다운받아 서버에 설치합니다. 

 

 

# Nextcloud 다운, 압축풀기 

cd /var/www/html

wget https://download.nextcloud.com/server/releases/latest-20.tar.bz2 -O nextcloud-20-latest.tar.bz2

tar -xvjf nextcloud-20-latest.tar.bz2

 

# 폴더 권한 수정하기

chown -R www-data:www-data /var/www/html/nextcloud/

chmod -R 755 /var/www/html/nextcloud/

 

 

# Apache2 설정

 

conf파일을 생성해서 NextCloud 컨텐츠에 액세스하는 방법을 제어

vi /etc/apache2/sites-available/nextcloud.conf

 

아래 내용을 넣어줍니다.


ServerAdmin 이메일주소 
DocumentRoot /var/www/html/nextcloud/
ServerName 서버 ip
ServerAlias 서버 ip

Alias /nextcloud "/var/www/html/nextcloud/"


Options +FollowSymlinks
AllowOverride All
Require all granted

Dav off

SetEnv HOME /var/www/html/nextcloud
SetEnv HTTP_HOME /var/www/html/nextcloud


ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

 

모듈을 활성화 합니다.

sudo a2enmod rewrite

sudo a2enmod headers

sudo a2enmod env

sudo a2enmod dir

sudo a2enmod mime

 

apache2 서비스를 재시작합니다 

service apache2 restart

 

 

# DB설정 

 Nexdtcloud DB를 생성해줍니다

# mysql 접속 

sudo mysql -u root -p 

 

#  db  생성

CREATE DATABASE nextcloud;

 

# user 생성 및 권한부여

CREATE USER 'nextclouduser'@'localhost' IDENTIFIED BY '비밀번호';

GRANT ALL ON nextcloud.* TO 'nextclouduser'@'localhost' IDENTIFIED BY '비밀번호' WITH GRANT OPTION;

 

# 저장

FLUSH PRIVILEGES;

EXIT;

 

 

 

 

3.   Nextcloud 웹에서 실행 및 설정

아래와 같이  http://서버ip/nextcloud 에 접속하여 설치 및 설정을 진행합니다. 

 

 

 

1.  관리자 정보 입력 -  관리자 계정을 생성하기위해 원하는 아이디와 패스워드를 입력합니다. 

 

2.  DB연결을 위해  데이터 베이스 사용자데이터베이스 암호 , 데이터 베이스 이름을 입력합니다.  ( 앞서 DB설정에서 입력한 값을 입력해줍니다)

 

데이터베이스 사용자 : nextclouduser

 

데이터베이스 암호 :  nextcloud DB 패스워드 

 

데이터 베이스 이름 : nextcloud 

 

3. 입력완료 후 하단에  설치완료 클릭 

 

 

 

 

4.  외부 저장소 추가

Nextcloud 설치가 완료되면  외부저장소 추가를 통해  iwinv 오브젝트 스토리지를 연동합니다.

 

# 우측 상단메뉴에서 을 클릭합니다.

 

 

#  external storage support를  찾아  사용함을 클릭합니다. ( 클릭시 사용안함 버튼으로 변경됨)

 

 

 

# 우측 상단메뉴에서 설정 클릭합니다. 

 

 

# 외부저장소 추가 설정

 

# 폴더이름 

-  원하시는 폴더명을 입력합니다. 

 

# 설정 

-  버킷 :  버킷명 입력 

-  호스트명  : Endpoint 입력  (ex) kr.object.iwinv.kr 

-  접근키  :   Access Key ID 입력    

-  비밀키 :    Secret Key ID 입력

 

# 다음으로 사용가능  (그룹설정)

-  설정해놓은 그룹중에 원하는 그룹을 선택합니다.  (복수 선택가능 )

-  해당 그룹만 버킷에 접근이 가능합니다. 

 

# 연동 확인 

연동이 정상적으로 완료되면  대시보드에 지정한 폴더명으로 버킷이 연동됩니다. 

 

 

 

 

5.   사용자 및 그룹 생성 ( 외부 저장소 그룹설정 )

 그룹 및 사용자를 생성하여 특정 그룹의 사용자에게 특정 버킷에 접근권한을 줄 수 있습니다.  ( 위에 외부저장소 추가시 그룹설정 참고 )

 

# 우측 상단 메뉴에 사용자 클릭 

 

 

 

#  그룹 및 사용자 추가 

 

①  새 사용자  :  새 사용자 버튼 클릭 후 생성되는 탭에서 이름, 그룹, 관리자 권한 설정이 가능합니다. 

②  그룹 추가 :   그룹명을 입력하여 새로운 그룹을 생성합니다.

 

 

#  확인  

사용자 메뉴 중 모두를 선택하면 생성된 모든 사용자정보를 확인 할 수 있습니다 .  ( 관리자 계정으로 접속시)