[오브젝트 스토리지 활용] 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 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. 사용자 및 그룹 생성 ( 외부 저장소 그룹설정 )
그룹 및 사용자를 생성하여 특정 그룹의 사용자에게 특정 버킷에 접근권한을 줄 수 있습니다. ( 위에 외부저장소 추가시 그룹설정 참고 )
# 우측 상단 메뉴에 사용자 클릭
# 그룹 및 사용자 추가
① 새 사용자 : 새 사용자 버튼 클릭 후 생성되는 탭에서 이름, 그룹, 관리자 권한 설정이 가능합니다. ② 그룹 추가 : 그룹명을 입력하여 새로운 그룹을 생성합니다. |
# 확인
사용자 메뉴 중 모두를 선택하면 생성된 모든 사용자정보를 확인 할 수 있습니다 . ( 관리자 계정으로 접속시)