NAS의 생성과 연결
다음과 같이 동일한 서브넷 내에 생성된 두 개의 인스턴스가 있습니다. 하나는 192.168.0.20, 다른 하나는 192.168.0.7이며 두 인스턴스에 퍼블릭 아이피인 Floating IP를 할당한 후 SSH로 접근합니다.
위 그림처럼 192.168.0.20을 A, 192.168.0.7을 B라고 지칭하겠습니다. 먼저 각각 마운트할 폴더를 생성해줍니다.
A 인스턴스 SSH
ssh -i centos@[A-Floating-ip] # A 인스턴스 연결
sudo -i # root 계정 로그인
mkdir -p /mnt/test1 # 마운트할 폴더를 미리 생성
B 인스턴스 SSH
ssh -i centos@[B-Floating-ip] # B 인스턴스 연결
sudo -i # root 계정 로그인
mkdir -p /mnt/test2 # 마운트할 폴더를 미리 생성
이후 NAS(Network Attached Storage)를 생성한 후 접근제어에 서브넷 IP 대역을 포함하게 하여 두 인스턴스에서 접근할 수 있게 해줍니다.
nfs 패키지 설치
# Debian, Ubuntu
sudo apt-get install nfs-common rpcbind
# CEntOS
sudo yum install nfs-utils rpcbind
# rpcbind 서비스 실행
sudo service rpcbind start
생성된 스토리지의 연결 정보를 이용하여 인스턴스에 마운트할 수 있습니다. 단, 마운트할 인스턴스는 스토리지와 같은 서브넷에 연결되어 있어야 합니다.
NAS 스토리지 생성
VPC와 서브넷을 선택하면 자동으로 접근 제어가 생성됩니다. 스냅샷 저장 개수는 자동으로 생성된 스냅샷을 몇 개까지 보관할지 설정할 수 있으며 스냅샷 저장 용량은 자동으로 생성된 스냅샷과 수동으로 생성한 스냅샷을 합쳐 NAS 스토리지의 지정된 용량만 보관할 수 있도록 하며 만약 지정된 용량을 초과할 경우 수동으로 생성된 스냅샷을 포함한 모든 스냅샷 중에서 가장 오래된 스냅샷부터 삭제합니다.
NAS를 생성한 후에 Network Interface Card를 확 인하면 다음과 같이 TRANSIT_GATEWAY 장치에 NAS IP가 설정된 것을 확인하실 수 있습니다.
이제 전에 마운트한 폴더에 NAS를 연결하여 두 인스턴스에서 마운트한 폴더를 공유할 수 있도록 연결해줍니다.
A 인스턴스 SSH
# 콘솔 - NAS 스토리지 - 연결 이름에서 확인
sudo mount -t nfs 192.168.0.10:/nas-test /mnt/test1
# A 인스턴스에서 파일 생성
echo "test" > /mnt/test1/test.txt
B 인스턴스 SSH
sudo mount -t nfs 192.168.0.10:/nas-test /mnt/test2
cat /mnt/test2/test.txt
test
이제 A 인스턴스에서는 /mnt/test1을 통하고 B 인스턴스에서는 /mnt/test2를 통해 동일한 NAS에 접근하는 것을 확인하였습니다. 이제 NAS를 삭제하기 전에 마운트된 폴더를 해제합니다. 이 때 마운트한 폴더 위치에서 해제하게 되면 device is busy
에러를 뱉어내니 다른 위치에서 마운트된 폴더를 해제해주세요.
A 인스턴스 SSH
umount /mnt/test1
B 인스턴스 SSH
umount /mnt/test2
연결이 해제됐으니 이제 NAS와 나머지 인스턴스를 정리하며 마치겠습니다.