AWS에서 NFS 서버 세팅

1. 서버로 사용할 인스턴스 생성
– Security Group 설정에서 Type을 All traiffic 선택 Source를 172.31.0.0/16 입력
– 172.31.0.0/16 은 서버를 위치할 VPC 의 아이피 대역을 의미
* 개별로 포트 설정을 하고 싶으면 아래 포트를 TCP/UDP 모두 열어줌
2049, 111, 32769, 32803, 892, 875, 662

2. 서버로 사용할 인스턴스에 NFS 설치
# yum install nfs-utils nfs-utils-lib

3. /etc/sysconfig/nfs 파이을 열어 아래 항목의 주석을 풀어줌
# vi /etc/sysconfig/nfs

LOCKD_TCPPORT=32803
LOCKD_UDPPORT=32769
MOUNTD_PORT=892
RQUOTAD_PORT=875
STATD_PORT=662
STATD_OUTGOING_PORT=2020

– 주석을 푸는 항목들은 NFS 사용시 이용되는 포트들을 고정시키기 위한 작업임.
– Security Group 설정에서 위에 설정한 포트와 2049, 111 만 열어도 문제 없음

4. /home/nfs 폴더 생성(공유할 폴더)
# mkdir /home/nfs

5. /etc/exports 에 공유폴더 설정
# vi /etc/exports

– 입력내용
/home/nfs 172.31.0.0/16(rw,sync,insecure,all_squash)

– 옵션 설명
ro : 읽기 전용으로 공유한다. (기본)
rw : 읽기/쓰기 모드로 공유한다.
root_squash : 클라이언트의 root 를 익명 사용자(nobody)로 매핑한다. (기본)
no_root_squash : 클라이언트의 root 를 서버의 root 로 매핑한다.
all_squash : 모든 사용자를 익명 사용자(nobody)로 매핑한다.
sync : 클라이언트와 서버간 동기적 통신을 한다. (기본, 안전성 향상)
async : 클라이언트와 서버간 비동기 통신을 한다. (속도 향상)
secure : 마운트 요청 시 포트를 1024 이하로 한다. (1024 이하 포트는 root 만 설정 가능, 기본)
insecure : 마운트 요청 시 1024 포트 이상도 허용한다.
noaccess : 엑세스 거부
no_all_squach : root를 제외하고 서버와 클라이언트의 사용자들을 하나의 권한을 가지도록 설정한다.
설정관련 내용 참고 : http://linux.die.net/man/5/exports
6. 서비스 시작 및 동작 확인
# service rpcbind start
# service nfslock start
# service nfs start
# rpcinfo -p localhost

—– 정상이면 아래와 같은 메시지 출력 —–
program vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 662 status
100024 1 tcp 662 status
100005 1 udp 892 mountd
100005 1 tcp 892 mountd
100005 2 udp 892 mountd
100005 2 tcp 892 mountd
100005 3 udp 892 mountd
100005 3 tcp 892 mountd
100003 2 tcp 2049 nfs
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100227 2 tcp 2049 nfs_acl
100227 3 tcp 2049 nfs_acl
100003 2 udp 2049 nfs
100003 3 udp 2049 nfs
100003 4 udp 2049 nfs
100227 2 udp 2049 nfs_acl
100227 3 udp 2049 nfs_acl
100021 1 udp 32769 nlockmgr
100021 3 udp 32769 nlockmgr
100021 4 udp 32769 nlockmgr
100021 1 tcp 32803 nlockmgr
100021 3 tcp 32803 nlockmgr
100021 4 tcp 32803 nlockmgr

7. 서비스 등록하기 (리부팅시에도 자동실행)
– chkconfig 를 통하여 아래 3가지 서비스의 2,3,4,5 에 on 되어 있는지 확인 없으면 아래 명령을 통하여 서비스를 하나씩 on 처리함

# chkconfig nfs on
# chkconfig nfslock on
# chkconfig rpcbind on

8. 클라이언트에 nfs 설치
# yum install nfs-utils nfs-utils-lib

9. 공유디렉토리 연결(매번 연결 설정 해줘야함)
# mount 172.31.3.63:/home/nfs_temp /home/munilive/public_html/data/temp

10. 공유디렉토리 영구 설정
– 서버리부팅해도 자동으로 연결함.
# vi /etc/fstab
– 172.31.3.63:/home/nfs_temp /home/munilive/public_html/data/temp nfs hard 0 0
– NFS 서버 Public Domain을 CNAME 으로 연결해 놓으면 아이피가 아닌 도메인으로도 설정가능
ex) nfs.munilive.com:/home/nfs_temp /home/munilive/public_html/data/temp nfs hard 0 0

CC BY-NC-SA 4.0 This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.