본문 바로가기
  • 클라우드야 나랑 친해지자!
클라우드/AWS

AWS S3와 Ubuntu gnuboard간 파일 자동 백업

by 정민규 2021. 3. 10.
반응형

수업을 듣고 배운 내용과 연습한 내용을 정리하였습니다

개인 공부 후 자료를 남기기 위한 목적임으로 내용 상에 오류가 있을 수 있습니다.

 

잘못된 부분이 있거나 질문사항은 댓글로 남겨주시면 성심성의껏 답변해드리겠습니다. 감사합니다!


실습에 앞서 S3 버킷에 gnuboard 디렉토리를 만들었고, IAM 사용자에 'AdministratorFullAccess' 권한을 주고 생성하여 .csv 파일을 다운로드 하였습니다.

 

 

 

*실습 요약

1. Ubuntu 설치

2. VMware 설정

3. SSH 연결

4. bitnami-redmine 설치

5. gnuboard 설치

6. AWS CLI 2 설치

7. S3로 파일 전송

8. 예약 작업 설정

 

 

 

 

 

1) Ubuntu 설치

Ubuntu는 다음 링크에서 다운로드 받았습니다.

Option 2 선택 > Download 클릭

 

ubuntu.com/download/server

 

Get Ubuntu Server | Download | Ubuntu

Get Ubuntu Server one of three ways; by using Multipass on your desktop, using MAAS to provision machines in your data centre or installing it directly on a server.

ubuntu.com

 

 

 

 

 

 

2) VMware 설정

VMware에 위에서 받은 ios 파일을 업로드하고 설치를 진행합니다.

 

IP 주소를 확인하기 위해 다음 명령어를 실행합니다.

$apt install net-tools
$ifconfig

 

 

 

 

3) SSH 연결

윈도우에서 cmd를 실행하고 우분투로 SSH 연결을 진행합니다.

 

>ssh [IP주소] -l [리눅스id]

>암호키 설정 : 'yes'

>password : 리눅스 password

>정상적으로 로그인이 실행 됨

linux id가 j임

 

 

 

 

4) bitnami-redmine 설치

 

$sudo -i
#wget https://bitnami.com/redirect/to/1004425/bitnami-redmine-4.1.1-1-linux-x64-installer.run
#apt-get install -y libtinfo-dev
#apt-get install -y libtinfo6
#apt-get install -y libtinfo5
#chmod 755 ./bitnami-redmine-4.1.1-1-linux-x64-installer.run
#./bitnami-redmine-4.1.1-1-linux-x64-installer.run     //비밀번호는 영문과 숫자로 8자이상 설정(MySQL비밀번호)

 

 

한국어 설정 시 문자가 깨질 수 있음 -> [1] English 선택

나머지 설정 'y' 입력

 

 

 

linux와 똑같이 사용자 이름 'j'로 설정

이메일은 사용하는 간단한 이메일 입력

 

 

 

이 때는 [15] Korean 선택

메일 써포트는 받지 않을 것이므로 'n' 입력

 

 

 

 

 

 

 

 

설치가 완료되면 웹브라우저에서 [IP주소] 를 입력했을 때 bitnami redmine에 접속된 것을 확인할 수 있습니다.

 

 

 

 

bitnami 설치가 완료됐다면, 현재시간으로 동기화합니다.

(나중에 예약 작업 등 시간동기화 문제로 오류가 생길 수 있음)

 

 

 

 

5) gnuboard 설치

 

#cd /opt/redmine-4.1.1-1/apache2/htdocs     // 웹서버루트
#git clone https://github.com/gnuboard/gnuboard5
#mysql -h 127.0.0.1 -u root -p
>create database gnuboard5;
>exit

 

웹브라우저에 [IP주소/gnuboard5] 를 입력하여 그누보드가 설치된 것을 확인합니다.

data 디렉토리를 생성한 후, 설치를 진행합니다.

 

#cd gnuboard5
#mkdir data
#chmod 707 data

 

그누보드를 설치하고 회원가입을 진행합니다.

자유게시판(free) 혹은 갤러리(gallery)에 첨부파일과 함께 글 몇 개를 작성해봅니다.

 

#cd data
#cd file
#ls
#cd free
#ls

-> 업로드 된 이미지 출력

 

 

 

 

 

 

6) AWS CLI 2 설치

#cd /root
#wget https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip
#apt install unzi
p#unzip awscli<tab>
#cd aws<tab>
#./install
#aws --version     // aws-cli가 정상적으로 설치된 것을 확인할 수 있습니다.

 

 

 

 

7) S3로 파일 전송

#aws configure

 

접근키와 비밀키는 다운로드 받은 .csv 파일을 참고합니다.

Access Key ID : ~~~SADF

Secret Key ID : ~~~~JGIE

region name : ap-northeast-2

output format : jon

 

#aws   s3  sync   /opt/redmine-4.1.1-1/apache2/htdocs/gnuboard5/data/file/gallery  s3://jmg-bucket/gnuboard
// gnuboard에서 gallery에 사진을 업로드한 후, s3에 있는 버킷의 gnuboard 디렉토리에 파일을 전송(백업)하였습니다.

 

 

그누보드에 올려진 파일이 S3로 정상적으로 업로드된 것을 확인할 수 있습니다.

 

 

 

실제 버킷에 사진이 업로드된 모습입니다.

 

 

 

 

 

8)예약 작업

#vi  /etc/crontab

 

매일 13시에 gnuboard의 gallery에서 S3 버킷의 gnuboard 디렉토리로 업로드하는 예약작업을 입력하겠습니다.

 

0 13 * * * root aws   s3  sync   /opt/redmine-4.1.1-1/apache2/htdocs/gnuboard5/data/file/gallery  s3://jmg-bucket/gnuboard     // 매일 13시에 gnuboard의 gallery에서 S3 버킷의 gnuboard 디렉토리로 업로드

 

#service cron stop
#service cron start

 

cron 서비스를 재시작하여 명령이 정상적으로 실행되도록 합니다.

 

 

 

 

앞선 포스팅에서는 S3와 Windows간에 파일을 자동 백업하는 실습을 진행하였는데요,

이번에는 S3와 Ubuntu간에 파일을 자동 백업하는 실습을 진행해보았습니다.

Ubuntu를 활용하는 방법이 확실히 더 복잡하였지만 흥미로웠습니다.

반응형

댓글