AWS - EFS를 활용한 스토리지 공유 웹 서버 생성

728x90
반응형

 

 

새로운 보안 그룹을 생성한다.

 

 

보안 그룹의 이름을 지어주고 인바운드 규칙에 NFS를 추가한다.

 

 

EFS로 들어가 파일 시스템을 생성한다.

 

 

EFS의 이름을 지어주고 생성한다.

 

 

성공적으로 EFS가 생성된다.

해당 EFS의 파일 시스템 ID를 클릭한다.

 

 

EFS의 파일 시스템에 네트워크 항목을 보면 보안 그룹들이 default로 설정되어있다. 우리가 처음 생성했던 보안 그룹으로 만들어주자. 우측의 관리를 클릭한다.

 

 

default로 되어있던 초기의 보안 그룹들을 제거하고 우리가 만든 EFS 보안 그룹을 선택한다.

 

 

EC2로 돌아가서 오토 스케일링으로 들어간다. 새로운 오토 스케일링 그룹을 생성한다.

 

 

새로운 시작 템플릿을 생성한다.

 

 

새로운 시작 템플릿의 이름을 지어준다.

 

 

AMI는

amzn2-ami-kernel-5.10-hvm-2.0.20220316.0-x86_64-gp2

를 선택한다.

 

 

보안 그룹은 우리가 이전부터 사용했던 보안 그룹을 선택하고 키 페어는 필요없다.

 

 

고급 세부 정보에서 사용자 데이터에 중간에 [efs-id] 라고 되어있는 부분을

 

 

우리가 위에서 만든 EFS의 파일시스템 ID를 복붙해주면 된다.

 

 

#cloud-config
package_upgrade: true
packages:
- nfs-utils
- httpd

runcmd:
- echo "$(curl -s http://169.254.169.254/latest/meta-data/placement/availability-zone).fs-07d0c708b86ab15f4.efs.ap-northeast-2.amazonaws.com:/    /var/www/html/efs-mount-point   nfs4    defaults" >> /etc/fstab
- mkdir /var/www/html/efs-mount-point
- mount -a
- touch /var/www/html/efs-mount-point/test.html
- service httpd start
- chkconfig httpd on

 

 

다시 오토 스케일링 그룹 생성 페이지로 돌아와서 오토 스케일링 그룹의 이름을 지어주고, 우리가 만든 시작 템플릿을 선택한다.

 

 

AZ는 모두 선택한다.

 

 

로드 밸런서는 필요없으므로 로드 밸런서 없음을 선택한다.

 

 

원하는 용량과 최소 용량, 최대 용량을 2개로 설정해서 EC2 인스턴스 2개를 생성한다.

 

 

태그의 키와 값 이름을 지어준다.

 

 

오토 스케일링에서 인스턴스 갯수가 2개가 되면

 

 

인스턴스가 2개 생성이 된다. 이 인스턴스들이 제대로 동작하는지 확인해보자.

첫번째 인스턴스를 연결한다.

 

 

일단 첫 번째 인스턴스의 퍼블릭 IP 주소로 들어가면 웹 페이지가 정상적으로 나오게 된다.

 

우리가 마운트 포인트로 지정했던 디렉토리로 가서 실제로 파일이 잘 만들어졌는지 확인해보자.

 

 

콘솔 창에

sudo -s

cd /var/www/html/efs-mount-point

dir

를 입력해서 test.html이 나오는 것을 확인할 수 있다.

 

모든 EC2 인스턴스들이 공유할 수 있는 디렉토리를 만들자.

 

mkdir sampledir

chown ec2-user sampledir

chmod -R o+r sampledir

를 입력해서 디렉토리를 만들고 권한을 할당해준다.

 

sampledir로 들어가서 새로운 index.html 파일을 생성한다.

cd sampledir/

echo "<html><h1>Hello,world from EFS</h1></html>" > index.html

nano index.html

을 작성한다.

 

 

위와 같은 화면이 나올것이다.

 

 

EC2 인스턴스의 퍼블릭 IP 주소에 /efs-mount-point/sampledir/index.html 를 추가하면

 

 

이렇게 Hello,world from EFS 가 나올 것이다.

우리가 만든 EC2 인스턴스 2개 중 하나에서만 작업을 했지만 나머지 다른 인스턴스에서도 이 EFS에 접근할 수 있는지 확인해보자.

 

 

 

이렇게 우리가 두 번째 인스턴스에는 별다른 작업을 하지 않았지만 두 번째 인스턴스로도 EFS에 접근을 할 수 있게 된다. 한 쪽에서 수정을 하면 다른 인스턴스에서도 변경이 된다.

 

 

다시 콘솔 창으로 돌아와서 ! 3개를 추가해보자.

 

이렇게 2개의 인스턴스로 해당 EFS에 접근하면 둘 다 동일하게 변경된 것을 확인할 수 있다. 즉, 여러 EC2 인스턴스들이 하나의 EFS를 공유하기 때문에 한 쪽에서만 수정하더라도 다른 한쪽도 그대로 반영되게 된다.

 

다시 오토스케일링 그룹으로 돌아가서 우리가 만든 practice-EFS를 편집해서 인스턴스들을 0개로 만들어주자(제거).

 

 

기다리면 EC2 인스턴스들이 알아서 종료되게 된다.

 

EFS도 삭제를 해준다.

 

 

728x90
반응형

'Study > AWS' 카테고리의 다른 글

AWS - S3 객체 스토리지 클래스 변경  (0) 2023.11.17
AWS - S3 버킷 생성  (0) 2023.11.16
AWS - Auto Scaling 및 Load Balancer 실습  (0) 2023.11.15
AWS - Elastic IP 실습  (0) 2023.11.13
AWS - EC2 권한 부여하기  (0) 2023.11.11