본문 바로가기
CSP (Cloud Service Provider)/AWS

[EFS를 활용한 WEB/WAS 서비스

by BTC_홍대동무 2023. 5. 21.

베하 안녕하세요 ~~! BTC_현상수배범입니다.

이번 시간에는 WEB/WAS 소스를 EFS로 옮긴 후 서비스 가능하도록 설정해보겠습니다.

 

1. EFS 파일 시스템 생성

[콘솔 EFS]  > [파일 시스템] > [파일 시스템 생성] > [사용자 지정] 

이름 설정 후 next 

WEB/WAS 서버가 있는 vpc에 EFS 탑재

2. WEB&WAS SG에 NFS 설정 추가

이름 타입 포트 대상
WEB-SG NFS 2049 0.0.0.0
WAS-SG NFS 2049 0.0.0.0

 

3. EFS 파일 시스템 정책설정(읽기 전용 엑세스)

efs 정책 예시

참고 ) 기본적으로 루트 액세스 금지를 선택해서 정책을 적용하게 되면 EC2 인스턴스에서 파일 시스템에 루트 권한(sudo)으로 파일을 쓸 수 없게 됩니다.익명 액세스 금지를 선택하면 이후에 EC2 인스턴스에서 탑재 대상에 마운트할 때 액세스 거부가 발생할 수 있습니다.

 

4. WEB/WAS에 파일 시스템 마운트

[WEB 설정]

#마운트할 폴더 생성

sudo mkdir /var/www/html/efs

#파일 시스템 마운트
mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport fs-0312ff355f0292b37.efs.ap-northeast-2.amazonaws.com:/ /var/www/html/efs

 

[WAS 설정]

#마운트할 폴더 생성

sudo mkdir /apache-tomcat-11.0.0-M5/webapps/ROOT/sanghun

#파일 시스템 마운트
mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport fs-0312ff355f0292b37.efs.ap-northeast-2.amazonaws.com:/ /root/apache-tomcat-11.0.0-M5/webapps/ROOT/sanghun

 

콘솔에서 생성한 파일 시스템을 선택하고 연결을 누르면 자동 완성된 명령어가 나타납니다.

efs mount tip

 

 

5. EFS 루트 권한으로 되어 있으므로, 하위 디렉토리 생성 후 권한을 ec2-user로 변경

[WEB]
cd /var/www/html/efs

sudo mkdir sampledir

sudo chown ec2-user sampledir

sudo chmod -R o+r sampledir

[WAS]
cd /webapps/ROOT/sanghun

sudo mkdir sampledir

sudo chown ec2-user sampledir

sudo chmod -R o+r sampledir

ex) 

폴더 권한 확인

6. httpd.conf 파일을 수정하여 새로운 소스 코드 위치(EFS 마운트 경로)를 가리키도록 설정

proxy 경로 설정

모든 경로(/)에 대해서 프록시 설정이 적용되고 있어서, /var/www/html/efs/sampledir/hello.html 파일에 접근할 수 없음 

 

따라서  <Location "/efs">

        ProxyPass !

    </Location>   설정을 추가하여 /efs 경로에 대해서는 프록시 설정을 적용하지 않도록 함

 

 

7. 마운트 한 폴더에서 WEB(hello.html) & WAS(was.html) 생성 후 해당 경로로 ALB에 연결된 도메인 savy.monster를 이용하여 접속

EFS -WEB 경로
EFS -WAS 경로

 

 

이렇게 하여  EFS 활용편으로 ApacheTomcat 관련 파일을 EFS에서 가져와 서비스 실습을 해봤습니다! 

다음에 또 만나요 ~~ 베빠~! 

 

 

댓글