Infra/cloud

[AFOS] 4주차 스토리지 서비스 - 실습 : EFS

미니문92 2021. 7. 13. 12:33

7. 실습 : EFS 생성

실습 구성


EFS 생성

  • EFS → 파일 시스템 생성 클릭 : 이름(편한대로), VPC(EFS-VPC), 가용성 및 내구성(리전) → 아래 생성 클릭

EFS- 파일 시스템 생성

 

이름, VPC 선택

 

생성 완료

 

  • 생성된 EFS 클릭 → 아래 네트워크 메뉴 클릭(생성 후 2~3분 정도 후 관리 편집 가능) → 관리 클릭

EFS ID 확인 : fs-c7f377a7

IP 주소가 다른이유? EFS를 공통으로 이용할 때 각각 마운트 되어질 때 각각의 서브넷 대역의 IP를 할당 받기 때문

 

  • 보안 그룹을 default 제거 하고 STG-ELBSG-## 선택 후 저장 ⇒ 해당 보안그룹은 TCP 2049(EFS 통신 허용)

 


 

EC2-STG1 에 EFS 마운트

# 현재 웹서버 동작 중
[root@EC2-STG1 ~]# curl localhost
<html><h1>AFOS Study - Web Server 1</h1></html>

# EFS 디렉터리 생성
[root@EC2-STG1 ~]# mkdir /var/www/html/efs

# 자신의 EFS ID 확인 후 마운트
[root@EC2-STG1 ~]# mount -t efs -o tls fs-c7f377a7:/ /var/www/html/efs

# EFS 마운트 한 곳에 파일 생성
[root@EC2-STG1 ~]# echo "<html><h1>Hello from Amazon EFS</h1></html>" > /var/www/html/efs/index.html

# EFS에 생성한 파일 확인
[root@EC2-STG1 ~]# curl localhost/efs/
<html><h1>Hello from Amazon EFS</h1></html>

# EFS size 확인 - 사용자는 용량 신경 쓸 필요 없이 실제 사용한 용량 만큼만 비용 지불
[root@EC2-STG1 ~]# df |grep efs
127.0.0.1:/    9007199254739968       0 9007199254739968   0% /var/www/html/efs

[root@EC2-STG1 ~]# df -hT |grep efs
127.0.0.1:/    nfs4      8.0E     0  8.0E   0% /var/www/html/efs

# EFS DNS 주소의 IP는 각 AZ에 속한 IP 주소
[root@EC2-STG1 ~]# dig +short fs-c7f377a7.efs.ap-northeast-2.amazonaws.com
10.40.1.198

 


EC2-STG2에 EFS 마운트

# EC2-STG2 에서 efs 디렉터리 생성
[ec2-user@EC2-STG2 ~]$ sudo su -
[root@EC2-STG2 ~]# mkdir /var/www/html/efs

# 생성한 EFS 마운트
[root@EC2-STG2 ~]# mount -t efs -o tls fs-c7f377a7:/ /var/www/html/efs

# EFS 내용 확인
[root@EC2-STG2 ~]# curl localhost/efs/
<html><h1>Hello from Amazon EFS</h1></html>

# EFS 사이즈 확인
[root@EC2-STG2 ~]# df -hT |grep efs
127.0.0.1:/    nfs4      8.0E     0  8.0E   0% /var/www/html/efs

# DIG로 동일한 efs 도메인 주소 질의 시 EC2-STG1과 EC2-STG2의 응답 IP 정보가 다름
[root@EC2-STG2 ~]# dig +short fs-c7f377a7.efs.ap-northeast-2.amazonaws.com
10.40.2.195



# 연동 TEST. 더미 파일 생성
[root@EC2-STG2 ~]# for i in {1..100}; do touch /var/www/html/efs/deleteme.$i; done;

# 파일 생성 확인
[root@EC2-STG2 ~]# ls /var/www/html/efs
deleteme.1    deleteme.18  deleteme.27  deleteme.36  deleteme.45  deleteme.54  deleteme.63  deleteme.72  deleteme.81  deleteme.90  index.html
deleteme.10   deleteme.19  deleteme.28  deleteme.37  deleteme.46  deleteme.55  deleteme.64  deleteme.73  deleteme.82  deleteme.91
deleteme.100  deleteme.2   deleteme.29  deleteme.38  deleteme.47  deleteme.56  deleteme.65  deleteme.74  deleteme.83  deleteme.92
deleteme.11   deleteme.20  deleteme.3   deleteme.39  deleteme.48  deleteme.57  deleteme.66  deleteme.75  deleteme.84  deleteme.93
deleteme.12   deleteme.21  deleteme.30  deleteme.4   deleteme.49  deleteme.58  deleteme.67  deleteme.76  deleteme.85  deleteme.94
deleteme.13   deleteme.22  deleteme.31  deleteme.40  deleteme.5   deleteme.59  deleteme.68  deleteme.77  deleteme.86  deleteme.95
deleteme.14   deleteme.23  deleteme.32  deleteme.41  deleteme.50  deleteme.6   deleteme.69  deleteme.78  deleteme.87  deleteme.96
deleteme.15   deleteme.24  deleteme.33  deleteme.42  deleteme.51  deleteme.60  deleteme.7   deleteme.79  deleteme.88  deleteme.97
deleteme.16   deleteme.25  deleteme.34  deleteme.43  deleteme.52  deleteme.61  deleteme.70  deleteme.8   deleteme.89  deleteme.98
deleteme.17   deleteme.26  deleteme.35  deleteme.44  deleteme.53  deleteme.62  deleteme.71  deleteme.80  deleteme.9   deleteme.99


# deleteme. 파일 삭제 후 목록 확인
[root@EC2-STG2 ~]# rm -rf /var/www/html/efs/deleteme*.*
[root@EC2-STG2 ~]# ls /var/www/html/efs
index.html

 

# EC2-STG2에서 파일 생성 후 EC2-STG1 에서 삭제 확인
[root@EC2-STG1 ~]# ls /var/www/html/efs
deleteme.1    deleteme.18  deleteme.27  deleteme.36  deleteme.45  deleteme.54  deleteme.63  deleteme.72  deleteme.81  deleteme.90  index.html
deleteme.10   deleteme.19  deleteme.28  deleteme.37  deleteme.46  deleteme.55  deleteme.64  deleteme.73  deleteme.82  deleteme.91
deleteme.100  deleteme.2   deleteme.29  deleteme.38  deleteme.47  deleteme.56  deleteme.65  deleteme.74  deleteme.83  deleteme.92
deleteme.11   deleteme.20  deleteme.3   deleteme.39  deleteme.48  deleteme.57  deleteme.66  deleteme.75  deleteme.84  deleteme.93
deleteme.12   deleteme.21  deleteme.30  deleteme.4   deleteme.49  deleteme.58  deleteme.67  deleteme.76  deleteme.85  deleteme.94
deleteme.13   deleteme.22  deleteme.31  deleteme.40  deleteme.5   deleteme.59  deleteme.68  deleteme.77  deleteme.86  deleteme.95
deleteme.14   deleteme.23  deleteme.32  deleteme.41  deleteme.50  deleteme.6   deleteme.69  deleteme.78  deleteme.87  deleteme.96
deleteme.15   deleteme.24  deleteme.33  deleteme.42  deleteme.51  deleteme.60  deleteme.7   deleteme.79  deleteme.88  deleteme.97
deleteme.16   deleteme.25  deleteme.34  deleteme.43  deleteme.52  deleteme.61  deleteme.70  deleteme.8   deleteme.89  deleteme.98
deleteme.17   deleteme.26  deleteme.35  deleteme.44  deleteme.53  deleteme.62  deleteme.71  deleteme.80  deleteme.9   deleteme.99


[root@EC2-STG1 ~]# ls /var/www/html/efs
index.html

 


재부팅에서 EFS 자동 탑재(실제 수행 X)

# /etc/fatab 파일에 추가 후 monut -fav 로 검증
[root@ST1 ~]# umount /var/www/html/efs

# /etc/fstab 에 아래 내용 추가
echo "자신의-EFS-ID:/ /var/www/html/efs efs _netdev,noresvport,tls,iam 0 0" >> /etc/fstab
[root@ST1 ~]# echo "fs-9f0cd4ff:/ /var/www/html/efs efs _netdev,noresvport,tls,iam 0 0" >> /etc/fstab
[root@ST1 ~]# mount -fav
/                        : ignored
/var/www/html/efs        : successfully mounted
[root@ST1 ~]# reboot
...
# 재부팅 후 자동 탑재 확인
[root@ip-172-31-12-49 ~]# df -hT |grep nfs
fs-1ebe907f.efs.ap-northeast-2.amazonaws.com:/ nfs4      8.0E     0  8.0E   0% /var/www/html/efs