안내: Apache 웹 서버를 설정하고 Amazon EFS 파일을 제공합니다. - Amazon Elastic File System

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

안내: Apache 웹 서버를 설정하고 Amazon EFS 파일을 제공합니다.

Amazon EFS 파일 시스템에 저장된 파일을 제공하는 Apache 웹 서버를 실행하는 EC2 인스턴스를 사용할 수 있습니다. 하나의 EC2 인스턴스일 수도 있고, 애플리케이션에 필요한 경우 Amazon EFS 파일 시스템의 파일을 제공하는 여러 EC2 인스턴스를 보유할 수도 있습니다. 아래에서는 이와 관련하여 다음 절차를 설명합니다.

참고

두 절차 모두 미국 서부 (오레곤) 리전 () 에서 모든 리소스를 생성합니다.us-west-2

단일 EC2 인스턴스 서빙 파일

단계에 따라 하나의 EC2 인스턴스에 Apache 웹 서버를 설정하여 Amazon EFS 파일 시스템에서 생성한 파일을 처리하십시오.

  1. 이 시작하기 연습의 단계를 따라하십시오, 그러면 다음으로 구성된 작업 구성을 완료할 수 있습니다.

    • Amazon EFS 파일 시스템

    • EC2 인스턴스

    • EC2 인스턴스에 탑재된 파일 시스템

    지침은 Amazon Elastic File System에서 시작하기 을 참조하세요. 단계를 수행하면서 다음을 기록합니다.

    • EC2 인스턴스의 퍼블릭 DNS 이름.

    • EC2 인스턴스를 시작한 동일한 가용 영역에 생성한 탑재 대상의 퍼블릭 DNS 이름.

  2. (선택 사항) 시작하기 연습에서 생성한 탑재 지점의 파일 시스템의 탑재를 해제할 수도 있습니다.

    $ sudo umount ~/efs-mount-point

    이 연습에서는 파일 시스템에 대한 또 다른 탑재 지점을 생성합니다.

  3. EC2 인스턴스에 Apache 웹 서버를 설치하고 다음과 같이 구성합니다.

    1. EC2 인스턴스에 연결하고 Apache 웹 서버를 설치합니다.

      $ sudo yum -y install httpd
    2. 서비스를 시작합니다.

      $ sudo service httpd start
    3. 탑재 지점을 만듭니다.

      먼저 DocumentRoot 파일의 /etc/httpd/conf/httpd.conf/var/www/html을 가리킨다는 점을 유념하십시오(DocumentRoot "/var/www/html").

      Amazon EFS 파일 시스템을 문서 루트 아래의 하위 디렉터리에 마운트합니다.

      에서 파일 시스템의 마운트 지점으로 사용할 하위 디렉토리를 생성합니다/var/www/html.efs-mount-point

      $ sudo mkdir /var/www/html/efs-mount-point

    4. 다음 명령을 사용하여 Amazon EFS 파일 시스템을 마운트합니다. 파일 시스템의file-system-id ID로 바꾸십시오.

      $ sudo mount -t efs file-system-id:/ /var/www/html/efs-mount-point
  4. 설정을 테스트합니다.

    1. 시작하기 연습에서 생성했던 EC2 인스턴스 보안 그룹에 위치에 무관하게 TCP 포트 80에서 HTTP 트래픽을 허용하는 규칙을 추가합니다.

      규칙을 추가하면 EC2 인스턴스 보안 그룹에 다음 인바운드 규칙이 포함됩니다.

      EC2 인스턴스에 설정된 인바운드 규칙을 보여주는 스크린샷입니다.

      지침은 AWS Management Console를 사용하여 보안 그룹 만들기 을 참조하세요.

    2. 샘플 html 파일을 생성합니다.

      1. 디렉토리를 마운트 지점으로 변경합니다.

        $ cd /var/www/html/efs-mount-point
      2. 라는sampledir 하위 디렉터리를 만들고 소유권을 변경합니다.

        $ sudo mkdir sampledir $ sudo chown ec2-user sampledir $ sudo chmod -R o+r sampledir

        sampledir하위 디렉터리에 파일을 만들 수 있도록 디렉터리를 변경합니다.

        $ cd sampledir
      3. 샘플 hello.html 파일을 생성합니다.

        $ echo "<html><h1>Hello from Amazon EFS</h1></html>" > hello.html
    3. 브라우저 창을 열고 파일에 액세스할 URL을 입력합니다(EC2 인스턴스의 퍼블릭 DNS 이름 뒤에 파일 이름이 있음). 예시:

      http://EC2-instance-public-DNS/efs-mount-point/sampledir/hello.html

    이제 Amazon EFS 파일 시스템에 저장된 웹 페이지를 제공합니다.

참고

이 설정은 부팅 시 웹 서버 (httpd) 를 자동으로 시작하도록 EC2 인스턴스를 구성하지 않으며 부팅 시 파일 시스템을 마운트하지도 않습니다. 다음 연습에서는 이러한 설정을 완료하기 위해 시작 구성을 만듭니다.

파일을 제공하는 여러 EC2 인스턴스

다음 단계에 따라 여러 EC2 인스턴스의 Amazon EFS 파일 시스템에 동일한 콘텐츠를 제공하여 확장성 또는 가용성을 개선하십시오.

  1. 1단계: Amazon EFS 파일 시스템 생성연습의 단계에 따라 Amazon EFS 파일 시스템을 생성하고 테스트하십시오.

    중요

    이 연습에서는 시작하기 연습에서 생성했던 EC2 인스턴스를 사용하지 않습니다. 대신 새 EC2 인스턴스를 시작합니다.

  2. 다음 단계에 따라 VPC에 로드 밸런서를 생성합니다.

    1. 로드 밸런서 정의

      기본 구성 섹션에서 파일 시스템을 탑재할 EC2 인스턴스를 생성한 장소의 VPC를 선택합니다.

      서브넷 선택 섹션에서 사용 가능한 모든 서브넷을 선택합니다. 자세한 내용은 다음 섹션의 cloud-config 스크립트를 참조하십시오.

    2. 보안 그룹을 할당합니다

      로드 밸런서에 다음과 같이 위치에 무관하게 포트 80으로부터의 HTTP 액세스를 허용하는 새 보안 그룹을 생성합니다.

      • 유형: HTTP

      • 프로토콜: TCP

      • 포트 범위: 80

      • 소스: 위치 무관(0.0.0.0/0)

      참고

      모든 것이 작동을 할 경우, 로드 밸런서에서만 HTTP 트래픽을 허용하도록 EC2 인스턴스 보안 그룹의 인바운드 액세스 규칙을 업데이트 할 수 있습니다.

    3. 상태 확인 구성

      Ping Path 값을 /efs-mount-point/test.html로 설정합니다. efs-mount-point은 파일 시스템을 탑재한 하위 디렉터리입니다. 이 절차 뒷부분에서 여기에 test.html 페이지를 추가합니다.

    참고

    EC2 인스턴스를 추가하지 않습니다. 나중에 EC2 인스턴스를 시작하고 이 로드 밸런서를 지정하는 Auto Scaling 그룹을 생성합니다.

    로드 밸런서를 생성하는 방법에 대한 지침은 Elastic Load Bal의 Elastic Elastic Load Balancing Bal을 참조하세요.

두 개 EC2 인스턴스와 Auto Scaling 그룹을 생성합니다. 먼저 인스턴스를 설명하는 시작 구성을 생성합니다. 그런 다음 시작 구성을 지정해 Auto Scaling 그룹을 생성합니다. 다음 단계는 Amazon EC2 콘솔에서 Auto Scaling 그룹을 생성하기 위해 지정하는 구성 정보를 참조하십시오.

  1. 왼쪽 AUTO SCALING 아래에서 시작 구성을 선택합니다.

  2. Auto Scaling 그룹 생성을 선택해 마법사를 시작합니다.

  3. 시작 구성 생성을 선택합니다.

  4. 퀵 스타트에서 최신 버전의 Amazon Linux 2 AMI를 선택합니다. 시작하기 연습의 2단계: EC2 리소스 만들기 및 EC2 인스턴스 시작에서 사용한 것과 동일한 AMI입니다.

  5. 고급 섹션에서 다음을 수행합니다.

    • IP 주소 입력에는 모든 인스턴스에 퍼블릭 IP 주소 할당을 선택합니다.

    • 사용자 데이터 상자에 다음 스크립트를 복사해 붙여 넣습니다.

      file-system-idaws-region 값을 제공하여 스크립트를 업데이트해야 합니다 (시작하기 연습을 따랐다면 us-west-2 리전에 파일 시스템을 생성한 것입니다).

      스트립트에서 다음에 유의하십시오.

      • 스크립트는 NFS 클라이언트와 Apache 웹 서버를 설치합니다.

      • echo 명령은 파일 시스템의 DNS 이름과 탑재되는 하위 디렉터리를 식별하는 다음 항목을 /etc/fstab 파일에 기록합니다. 각 시스템이 재부팅된 후 파일이 탑재되도록 만드는 항목입니다. 파일 시스템의 DNS 이름이 동적으로 구성된다는 점을 유념하십시오. 자세한 정보는 DNS 이름을 사용하여 Amazon EC2에 탑재을 참조하세요.

        file-system-ID.efs.aws-region.amazonaws.com:/ /var/www/html/efs-mount-point nfs4 defaults
      • efs-mount-point하위 디렉터리를 생성하고 여기에 파일 시스템을 마운트합니다.

      • ELB Health Check에서 파일을 찾을 수 있도록test.html 페이지를 생성합니다 (로드 밸런서를 생성할 때 이 파일을 핑 포인트로 지정함).

      사용자 데이터 스크립트에 대한 자세한 내용은 Linux 인스턴스용 Amazon EC2 사용 설명서의 사용자 데이터 추가 단원을 참조하세요.

      #cloud-config package_upgrade: true packages: - nfs-utils - httpd runcmd: - echo "$(curl -s http://169.254.169.254/latest/meta-data/placement/availability-zone).file-system-id.efs.aws-region.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
  6. 보안 그룹 할당에서 Select an existing security group(기존 보안 그룹 선택)을 선택한 다음 EC2 인스턴스에 대해 생성한 보안 그룹을 선택합니다.

  7. 이제 다음 정보를 사용하여 Auto Scaling 그룹 세부 정보를 구성하십시오.

    1. Group size(그룹 크기)Start with 2 instances을 선택합니다. 2개 EC2 인스턴스를 생성합니다.

    2. 네트워크 목록에서 VPC를 선택합니다.

    3. 이전 단계에서 시작 구성을 생성할 때 사용자 데이터 스크립트에 탑재 대상 ID를 지정할 시 사용했던 동일한 가용 영역의 서브넷을 선택합니다.

    4. 고급 세부 정보 섹션에서

      1. Load BalancingReceive traffic from Elastic Load Balancer(s)(탄력적 로드 밸런서에서 트래픽 수신)을 선택한 후 이 연습에서 생성한 로드 밸런서를 선택합니다.

      2. 상태 확인 유형에서 ELB를 선택합니다.

  8. Amazon EC2 Auto Scaling 사용 설명서의 확장되고 로드 밸런싱된 애플리케이션 설정의 지침에 따라 Auto Scaling 그룹을 생성하십시오. 적용되는 경우, 이전 테이블의 정보를 사용하십시오.

  9. 성공적으로 Auto Scaling 그룹을 생성하면 nfs-utils 및 Apache 웹 서버가 설치된 2개 EC2 인스턴스가 구현됩니다. 각 인스턴스에서 Amazon EFS 파일 시스템이 탑재된/var/www/html/efs-mount-point 하위 디렉터리가 있는지 확인하십시오. EC2 인스턴스에 연결하는 방법에 대한 지침은 Linux 인스턴스용 Amazon EC2 사용 설명서의 Linux 인스턴스에 Connect 단원을 참조하세요.

    참고

    Amazon EC2 인스턴스를 시작할 때 Amazon Linux AMI 2016.03.0 Amazon Linux AMI를 선택하면 기본적으로 AMI에 이미 포함되어nfs-utils 있으므로 설치할 필요가 없습니다.

  10. 샘플 페이지(index.html)를 생성합니다.

    1. 디렉터리를 변경합니다.

      $ cd /var/www/html/efs-mount-point
    2. sampledir에 대한 하위 디렉터리를 생성하고 소유권을 변경합니다. 그런 다음 sampledir 하위 디렉터리에 파일을 생성할 수 있도록 디렉터리를 변경합니다. 앞서 단일 EC2 인스턴스 서빙 파일을 적용했다면 sampledir 하위 디렉터리가 생성되어 있을 것입니다. 이 경우, 이 단계를 건너뛸 수 있습니다.

      $ sudo mkdir sampledir $ sudo chown ec2-user sampledir $ sudo chmod -R o+r sampledir $ cd sampledir
    3. 샘플 index.html 파일을 생성합니다.

      $ echo "<html><h1>Hello from Amazon EFS</h1></html>" > index.html

  11. 이제 설정을 테스트할 수 있습니다. 로드 밸런서의 퍼블릭 DNS 이름을 사용해 index.html 페이지에 액세스합니다.

    http://load balancer public DNS Name/efs-mount-point/sampledir/index.html

    로드 밸런서가 Apache 웹 서버를 실행하는 EC2 인스턴스 중 하나에 요청을 전송합니다. 그러면 웹 서버가 Amazon EFS 파일 시스템에 저장된 파일을 제공합니다.