• 돌아가기
  • 아래로
  • 위로
  • 목록
  • 댓글
정보

Easy Panel db 백업을 위한 객체 저장 장소 MinIO 활용기

DarkAcid 296

2

1

안녕하세요!

 

아무래도 여러번 소개된적 있는 많큼 Easy Panel를 좋아하고 사용하시는 분들이 종종 있을 겁니다. 특히 오라클 A1에서 많이 들사용하실텐데요 하지만 역시 무료 클라우드 서버 특성상 백업은 항시 만들어둬야 합니다. 이에 Easy Panel에서도 데이터 베이스 백업을 객체저장소를 사용해서 설정할 수있는데요 사실 저도 AWS S3로 나름 써보았지만 이미 구축된 것을 써보기나 했지 처음부터 구축은 굉장히 어려웠습니다.

 

아마 제가 여러번 Nginx Proxy Manager 설정이 힘들다고 이야기 드렸지만....그건 제 미숙으로 인한 오해였습니다. NPM에서는 설정이 단1도 필요없더군요. 그래서 준비했습니다! MinIO 설치 및 설정까지 한번에 정리해보려합니다.

 

Disclaimer 해당가이드는 portainer와 nginx의 기본적인 이해가 있으셔서 보기 불편함 없으십니다 그럼에도 도전하시고 어려운부분이 있다면 댓글남겨주시면 끝까지 도와드리겠습니다!

 

사실 제일 편한건 Docker Compose로 공유해드리는 것이겠지만 전 최근 달소님께서 올려주신 서버포럼 - Portainer를 이용한 400가지의 템플릿 (svrforum.com)

에 MinIO 템플릿이 있더군요! 물론 Easy Panel에서도 현재 template를 제작중인것으로 알고있으나 역시...간단하면 간단할수록 최고죠! 그렇다면 굳이 용량이 작은 서버에 설치해야할 필요가 있나라는 근본적인 문제가 남는데 제가 사용중인 내역을 보시면 DB는 상대적으로 용량이 아주 작기 때문에 관리를 조금만 한다면 크게 문제 없이 사용이 가능합니다. 물론 서버포럼은 시놀 헤놀도 사용중이시기에 이를 사용한다면 사실 용량은 거의 걱정이 없다고 보면됩니다.

image.png.jpg

 

먼저 설치 방법입니다. 사실상 달소님께서 올리신 portainer 템플릿을 쓰신다면 이렇게 찾으시면됩니다. 

image.png.jpg

아래와 같이 ENV를 입력하는 라인이 있을텐데 여기 URL은 콘솔 접속 URL입니다.

 

image.png.jpg

 

컨테이너가 생성되면 우리는 이놈을 동그라미를 눌러 수정해줄겁니다.

image.png.jpg

 

같은 portainer에 Nginx Proxy Manager가 있으시다면 npm에서 hostname을 컨테이너 이름 그리고 포트를 9090을 콘솔 접속포트 그리고 9000을 객체저장용으로 따로 리버스 프록시 설정을 해주셔야합니다. 

 

만약 NPM을 따로 쓰고 계시다면 이렇게 두포트를 맵핑해주셔서 9090쪽 매핑을 콘솔 그리고 9000번을 객체저장용으로 리버스 프록시 설정을 해주시면 됩니다.

image.png.jpg

 

이제 가장 아래쪽 고급 컨테이너 설정을 들여다보면 Command & Logging에 command과 entry point가있습니다

image.png.jpg

보시면 익숙하시겠지만 바로 해당 명령어가 콘솔을 어느 포트로 띄워줄지 그리고 해당 콘솔의 정보와 데이터를 어디에 저장할지 결정하는 핵심 명령어입니다. 저는...가능하시면 이거 안건들이시는거 추천드립니다. 여러가지 해보시고 싶으시다면 당연히 시도해보셔도 되지만 저는 해당 폴더를 볼륨 매핑에 바인드로 직접 호스트에 저장이 되도록 설정해두었습니다. 

 

image.png.jpg

이렇게 설정뒤 depoly를 하시면 됩니다!

 

만약 호스트의 폴더를 cifs를 통해 smb나 nfs 방식을 통해 NAS에 따로 폴더를 만들어 해당 마운팅 포인트를 바인드 하셔도 됩니다!

 

Nginx 설정은 2가지입니다 콘솔과 객체저장용 데이터 포트를 사용하시는 도메인으로 설정해주시면됩니다. (아래는 참고용 제 설정입니다)

 

콘솔용

image.png.jpg

 

객체저장용

image.png.jpg

따로 고급 설정이 필요하지는 않습니다.

 

사실 위 방법은 NPM과 portainer를 조금이라도 써보셨다면 크게 어렵진 않습니다.

제일 중요한건 MinIO에 access key입니다. 

 

해당 가이드대로 따라하셨다면 아래 ENV의 값이 콘솔 로그인용 아이디와 비밀번호입니다.

image.png.jpg

 

당연히 처음은 아이디 및 비밀번호 먼저 세팅하셔야합니다.

image.png.jpg

이곳에서  새로운 아이디를 생성합니다. 새로 생성하시는 유저를 MinIO의 어드민으로 사용하실 경우  아래와 같이 모든 policy를 추가해두는 편이 좋습니다.

image.png.jpg

 

기존에 생성된 유저는 disable하시거나 지우는게 가능하면 지우시면 됩니다.

image.png.jpg

 

 

 

두번째는 지역을 지정해줘야합니다. 

image.png.jpg

설정에서 server location에 원하시는 명칭을 입력해주시면 되겠습니다. korea-incheon-1이런식으로 하시면 됩니다.

 

세번째는 bucket이라고 하는 저장공간을 생성해주셔야됩니다.

image.png.jpg

 

버킷메뉴에서 생성이 가능합니다.

image.png.jpg

 

image.png.jpg

easy panel은 각 백업당 이름을 날짜와 시간별로 생성하기 때문에 versioning은 딱히 소용이 없습니다. 하지만 다른 용도로 사용하신다면 설정해두시는 편이 좋습니다.

 

이렇게 만들어진 bucket에는 여려가지 추가 세팅을 해주어야합니다.

image.png.jpg

해당 카드를 클릭하시면 세부정보 페이지가 나옵니다.

image.png.jpg

이곳에서 객체의 lifecycle를 설정해주면 해당 시간이후 자동으로 object를 지울수있습니다.

image.png.jpg

만약 해당 버킷을 다른 객체이동으로 백업을 설정 하고싶으시면 replication에서 가능합니다.

 

다음은 객체 저장에서 쓸수 있는 Access Keys를 설정해 줘야합니다.

image.png.jpg

 

아래 화면에서 Create을 클릭해주시면

image.png.jpg

이렇게 Access Key와 Secret Key를 간단히 클립보드로 복사하시거나 json포멧으로 다운로드가 가능한 페이지가 나옵니다.

image.png.jpg

당연히 비밀번호는 생성 이후는 볼 수 없습니다.

 

이제 Easy Panel의 백업 설정만 남았습니다.

 

이지패널의 설정에 들어가면 Backup 메뉴가 있습니다.

image.png.jpg

여기서 Add Destination을 통해 minio의 정보를 적어줘야합니다.

 

image.png.jpg

위에는 예제입니다. Name에는 해당 destination의 이름을 (db백업에서 드롭다운 메뉴로 표기됩니다)

access key와 secrete key에는 위에서 생성한 키의 정보를 Bucket에는 저희가 생성한 bucket의 이름을 (위에는 svrforum) region에는 처음 설정한 korea-incheon-1을 endpoint에는 설정해두었던 https://minio.xxxxx.com의 url을 입력하시면됩니다.(npm으로 당연히 ssl을 쓰시고 계시면 https 붙여주셔야됩니다)

 

여기서 위에 보이는 오류없이 설정이 되었다면 이제 db쪽으로 넘어가주시면 됩니다.

 

백업하고자하는 db의 정보를 선택하셔서 맨아래로 스크롤 하시면 백업 메뉴가 보입니다.

image.png.jpg

여기서 enable의 토글을 켜주시고 destination의 위치를 설정해주셔야합니다****. 제가 여기서 설정을 안했다가 여러번 피봤습니다!

 

마지막으로 Manual 백업으로 테스트해주시면됩니다!

신고공유스크랩
1
profile image 1등
달소 2023.05.03. 09:35
게으른 저대신에 이런 고오급 가이드를,,,, 감사합니다.. 제가적는것보다 퀄리티가 2만배는 좋네요 ㅎㅎㅎ

댓글 쓰기 권한이 없습니다. 로그인

취소 댓글 등록

cmt alert

신고

"님의 댓글"

이 댓글을 신고하시겠습니까?

댓글 삭제

"님의 댓글"

삭제하시겠습니까?


목록

공유

facebooktwitterpinterestbandkakao story

본 게시판은 서버구축 게시판과 통합되었습니다.

서버구축 게시판 이동하기