AWS의 스토리지 3 대장이라 불리는 EBS, EFS, S3가 있다.
EBS는 블록 스토리지이다.
EFS는 완전 관리형 파일 시스템이며 NFS와 사용법이 유사하다.
s3는 완전 관리형 객체 스토리지이며 구글 드라이브와 유사하고 정적 웹 호스팅 기능까지 있어서
웹 페이지 생성이 가능하다.
<EFS 생성하기>
서비스에서 EFS를 선택 -> 파일 시스템 생성 클릭
이름 : MY-EFS
기본 VPC 선택
MY-EFS를 클릭하거나 선택 후 세부 정보 보기 클릭
네트워크 클릭
보안 그룹이 default로 되어있는데 SG-EFS라는 보안 그룹을 만들어서 바꿔줘야 한다.
SG-WEB이라는 보안 그룹을 만들어서 나중에 EC2 인스턴스에 붙여준다.
SSH를 추가하고 소스를 내 IP로 해준다.
SG-EFS라는 보안 그룹을 만들었다.
인바운드 규칙에 NFS를 추가하고 소스를 SG-WEB으로 선택한다.
다시 EFS의 네트워크 부분에서 관리를 클릭한 다음
각 가용 영역의 EFS 보안 그룹들을 SG-EFS으로 바꿔준다.
SG-EFS으로 변경한 다음 연결을 클릭한다.
DNS를 통한 탑재를 선택하고
EFS 탑재 헬퍼 사용의 mount 명령을 메모장에 복사해준다.
이제 EC2 인스턴스 3개를 만들어준다. (파일 시스템 추가 안한 거 1개, 한거 2개)
(NFS에서는 fs-d7ac42b7 부분에 ip를 넣었지만 EFS에서는 파일 시스템의 id를 도메인 형태로 마운트 할 수 있다.)
인스턴스를 생성할 때 인스턴스 세부 정보 구성에서
파일 시스템 추가를 클릭한다.
파일 시스템 추가를 클릭하면 내가 만든 MY-EFS가 나오고 뒤에
/mnt/efs/fs1이라는 마운트 할 디렉토리가 추가된다.
(필요한 보안 그룹을 자동으로 생성 및 연결은 체크하지 않는다.)
그리고 사용자 데이터에 파일 시스템을 마운트할 때 필요한 명령어들이 포함된다.
2개의 인스턴스가 생성되었다.
이제 SSH로 접속해본다.
각 인스턴스에서 df -h 명령어를 해보면 로컬 호스트 주소로 /mnt/efs/fs1에 마운트 된 것을 볼 수 있다.
(여기서 로컬 호스트는 aws 내에서 쓰이는 거 같다.)
인스턴스 EFS-TEST01에서 /mnt/efs/fs1 디렉터리로 들어와 파일을 만들었다.
이제 EFS-TEST02에서 확인을 해본다.
EFS-TEST01에서 만든 파일이 TEST02한테도 공유된 것을 볼 수 있다.
SERVER라는 파일 시스템 추가 안된 인스턴스가 생성되었다.
SSH에 접속해본다.
df -h를 해보니 역시나 EFS가 마운트 안되었다.
위에 EFS에서 메모장에 복사해둔 것을 SERVER 인스턴스에 넣어줄 것이다.
sudo mount -t efs -o tls fs-d7ac42b7:/ efs
위의 인스턴스 2개와의 공유를 위해 /mnt/efs/fs1 디렉터리를 생성해준다.
그리고 sudo mount -t efs -o tls fs-d7ac42b7:/ /mnt/efs/fs1으로 바꿔준다.
하지만 efs를 알 수 없다고 에러가 난다.
위의 인스턴스 2개는 파일 시스템 추가할 때 사용자 데이터에 알아서 명령을 넣어줬기 때문에 efs가 잘되었지만
SERVER 인스턴스는 수동으로 efs 패키지를 설치해줘야 한다.
sudo yum -y install amazon-efs-utils를 넣어준다.
sudo mount -t efs -o tls fs-d7ac42b7:/ /mnt/efs/fs1 다시 명령어를 넣어주면 마운트가 된 것을 볼 수 있다.
/mnt/efs/fs1 디렉터리로 가보면 EFS-TEST01.txt 파일이 공유되는 것을 볼 수 있다.
EFS 실습이 성공적으로 끝났다.
Amazon Linux 2에서는 쉽게(?) EFS를 사용할 수 있다.
하지만 Ubuntu에서 사용할 때는 비교적 복잡하다.
Ubuntu에서 sudo mount -t efs -o tls fs-d7ac42b7:/ /mnt/efs/fs1 명령어를 넣어주기 전에 다음과 같은 과정을 해야 한다.
(3단계에서 파일 시스템 추가 안 했을 경우임)
1.) sudo apt install git
2.) git clone https://github.com/aws/efs-utils
3.) sudo apt install -y make
4.) sudo apt install -y binutils
5.) cd efs-utils
6.) ./build-deb.sh
7.) sudo apt install ./build/amazon-efs-utils*deb
'AWS' 카테고리의 다른 글
[AWS] 자격증 준비 및 합격 후기 (1) | 2021.02.07 |
---|---|
[AWS 실습] CloudFront를 이용하여 S3 콘텐츠 배포하기 (0) | 2021.01.10 |
[AWS 실습] Auto Scaling Group을 이용한 scale out, scale in (0) | 2021.01.06 |
[AWS 실습] Route53을 활용하여 블로그 만들기 (0) | 2021.01.05 |
[AWS 실습] ALB를 이용하여 컨텐츠 관리하기 (0) | 2021.01.04 |