Elastic Beanstalk PHP 플랫폼 사용 - AWS Elastic Beanstalk

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

Elastic Beanstalk PHP 플랫폼 사용

AWS Elastic Beanstalk 다양한 버전의 PHP 프로그래밍 언어를 위한 여러 플랫폼을 지원합니다. 이 플랫폼은 단독으로 또는 Composer로 실행할 수 있는 PHP 웹 애플리케이션을 지원합니다. AWS Elastic Beanstalk 플랫폼 문서의 PHP에서 자세히 알아봅니다.

Elastic Beanstalk가 제공하는 구성 옵션을 통해 Elastic Beanstalk 환경EC2 인스턴스에서 실행하는 소프트웨어를 사용자 맞춤형으로 사용할 수 있습니다. 애플리케이션에 필요한 환경 변수를 구성하고, Amazon S3에 대한 로그 교체를 활성화하며, 정적 파일이 포함된 애플리케이션 소스의 폴더를 프록시 서버에서 제공하는 경로로 매핑하고, 공통 PHP 초기화 설정을 지정할 수 있습니다.

실행 환경 구성을 수정하기 위해 Elastic Beanstalk 콘솔의 구성 옵션을 사용할 수 있습니다. 저장된 구성을 사용해 설정을 저장하면 환경 종료 시 구성이 훼손되지 않도록 할 수 있으며, 추후 기타 환경에서도 적용할 수 있습니다.

소스 코드에 설정을 저장하려면 구성 파일을 포함시킬 수 있습니다. 구성 파일 설정은 환경을 생성하거나 애플리케이션을 배포할 때마다 적용됩니다. 구성 파일을 사용하여 패키지를 설치하거나, 스크립트를 실행하거나, 배포 중 기타 인스턴스 사용자 지정 작업을 수행할 수 있습니다.

Composer를 사용하는 경우 소스 번들에 composer.json 파일을 포함하여 배포 중 패키지를 설치할 수 있습니다.

구성 옵션으로 제공되지 않는 고급 PHP 구성과 PHP 설정의 경우, 구성 파일을 사용하여 INI 파일을 제공하고 이 파일로 Elastic Beanstalk의 기본 설정을 확장 및 재정의하거나 다른 확장 기능을 추가로 설치할 수 있습니다.

Elastic Beanstalk 콘솔에 적용된 설정이 구성 파일에 적용된 동일한 설정(있는 경우)을 덮어씁니다. 이렇게 함으로써 구성 파일은 기본 설정을 갖는 동시에 콘솔에서 환경 특정 설정으로 설정을 덮어 쓸 수 있습니다. 우선 적용 및 설정을 변경하는 다른 방법에 대한 자세한 내용은 구성 옵션 단원을 참조하십시오.

Elastic Beanstalk Linux 기반 플랫폼을 확장할 수 있는 다양한 방법에 대한 자세한 내용은 Elastic Beanstalk Linux 플랫폼 확장 단원을 참조하세요.

Amazon Linux 2의 PHP 8.1에 대한 고려 사항

Amazon Linux 2의 PHP 8.1 플랫폼 브랜치를 사용하는 경우 이 섹션을 읽어보세요.

참고

이 주제의 정보는 Amazon Linux 2의 PHP 8.1 플랫폼 브랜치에만 적용됩니다. AL2023 기반의 PHP 플랫폼 브랜치에는 적용되지 않습니다. PHP 8.0 Amazon Linux 2 플랫폼 브랜치에도 적용되지 않습니다.

Elastic Beanstalk는 EC2 인스턴스에 있는 Amazon Linux 2 플랫폼 브랜치의 PHP 8.1용 PHP 8.1 관련 RPM 패키지를 Amazon Linux 리포지토리 대신 로컬 디렉터리에 저장합니다. rpm -i 를 사용하여 패키지를 설치할 수 있습니다. PHP 8.1 플랫폼 버전 3.5.0부터 Elastic Beanstalk는 PHP 8.1 관련 RPM 패키지를 다음 로컬 EC2 디렉터리에 저장합니다.

/opt/elasticbeanstalk/RPMS

다음 예제에서는 php-debuginfo 패키지를 설치합니다.

$rpm -i /opt/elasticbeanstalk/RPMS/php-debuginfo-8.1.8-1.amzn2.x86_64.rpm

패키지 이름의 버전은 EC2 로컬 디렉터리 /opt/elasticbeanstalk/RPMS에 나열된 실제 버전에 따라 달라집니다. 동일한 구문을 사용하여 다른 PHP 8.1 RPM 패키지를 설치하세요.

제공되는 RPM 패키지 목록을 표시하려면 다음 섹션을 확장하세요.

다음 목록은 Elastic Beanstalk PHP 8.1 플랫폼이 Amazon Linux 2에서 제공하는 RMP 패키지를 제공합니다. 이러한 패키지는 로컬 디렉터리 /opt/elasticbeanstalk/RPMS에 위치합니다.

나열된 패키지 이름의 버전 번호 8.1.8-1 및 3.7.0-1은 예제일 뿐입니다.

  • php-8.1.8-1.amzn2.x86_64.rpm

  • php-bcmath-8.1.8-1.amzn2.x86_64.rpm

  • php-cli-8.1.8-1.amzn2.x86_64.rpm

  • php-common-8.1.8-1.amzn2.x86_64.rpm

  • php-dba-8.1.8-1.amzn2.x86_64.rpm

  • php-dbg-8.1.8-1.amzn2.x86_64.rpm

  • php-debuginfo-8.1.8-1.amzn2.x86_64.rpm

  • php-devel-8.1.8-1.amzn2.x86_64.rpm

  • php-embedded-8.1.8-1.amzn2.x86_64.rpm

  • php-enchant-8.1.8-1.amzn2.x86_64.rpm

  • php-fpm-8.1.8-1.amzn2.x86_64.rpm

  • php-gd-8.1.8-1.amzn2.x86_64.rpm

  • php-gmp-8.1.8-1.amzn2.x86_64.rpm

  • php-intl-8.1.8-1.amzn2.x86_64.rpm

  • php-ldap-8.1.8-1.amzn2.x86_64.rpm

  • php-mbstring-8.1.8-1.amzn2.x86_64.rpm

  • php-mysqlnd-8.1.8-1.amzn2.x86_64.rpm

  • php-odbc-8.1.8-1.amzn2.x86_64.rpm

  • php-opcache-8.1.8-1.amzn2.x86_64.rpm

  • php-pdo-8.1.8-1.amzn2.x86_64.rpm

  • php-pear-1.10.13-1.amzn2.noarch.rpm

  • php-pgsql-8.1.8-1.amzn2.x86_64.rpm

  • php-process-8.1.8-1.amzn2.x86_64.rpm

  • php-pspell-8.1.8-1.amzn2.x86_64.rpm

  • php-snmp-8.1.8-1.amzn2.x86_64.rpm

  • php-soap-8.1.8-1.amzn2.x86_64.rpm

  • php-sodium-8.1.8-1.amzn2.x86_64.rpm

  • php-xml-8.1.8-1.amzn2.x86_64.rpm

  • php-pecl-imagick-3.7.0-1.amzn2.x86_64.rpm

  • php-pecl-imagick-debuginfo-3.7.0-1.amzn2.x86_64.rpm

  • php-pecl-imagick-devel-3.7.0-1.amzn2.noarch.rpm

PEAR 및 PECL 패키지를 사용하여 일반적인 확장을 설치할 수 있습니다. PEAR에 대한 자세한 내용은 PEAR PHP 확장 및 응용 프로그램 리포지토리 웹 사이트를 참조하세요. PECL에 대한 자세한 내용은 PECL 확장 웹사이트를 참조하세요.

다음 예제 명령은 Memcached 확장을 설치합니다.

$pecl install memcache

다음 명령을 사용할 수도 있습니다.

$pear install pecl/memcache

다음 예제 명령은 Redis 확장을 설치합니다.

$pecl install redis

다음 명령을 사용할 수도 있습니다.

$pear install pecl/redis

PHP 환경 구성

Elastic Beanstalk 콘솔을 사용하여 Amazon S3에 대한 로그 교체를 활성화하고, 애플리케이션에서 읽을 수 있도록 환경 변수를 구성하고, PHP 설정을 바꿀 수 있습니다.

Elastic Beanstalk 콘솔에서 PHP 환경을 구성하려면
  1. Elastic Beanstalk 콘솔을 열고 지역 목록에서 원하는 지역을 선택합니다. AWS 리전

  2. 탐색 창에서 환경을 선택한 다음 목록에서 환경 이름을 선택합니다.

    참고

    여러개의 환경을 보유한 경우 검색 창을 통해 환경 목록을 필터링합니다.

  3. 탐색 창에서 구성을 선택합니다.

  4. 업데이트, 모니터링 및 로깅 구성 범주에서 편집을 선택합니다.

PHP 설정

  • 프록시 서버 – 환경 인스턴스에서 사용할 프록시 서버입니다. 기본적으로 nginx를 사용합니다.

  • 문서 루트(Document root) - 사이트의 기본 페이지를 포함하는 폴더입니다. 시작 페이지가 소스 번들의 루트에 없다면, 시작 페이지가 들어 있는 폴더를 루트 경로를 기준으로 지정합니다. 예를 들어 /public 폴더에 시작 페이지가 없을 때는 public을 지정합니다.

  • 메모리 제한(Memory limit) - 스크립트가 할당할 수 있는 최대 메모리 양입니다. 예를 들어 512M입니다.

  • Zlib 출력 압축(Zlib output compression) - 응답을 압축하려면 On으로 설정합니다.

  • URL fopen 허용(Allow URL fopen) - 스크립트가 원격 위치에서 파일을 다운로드하지 않도록 하려면 Off로 설정합니다.

  • 오류 표시(Display errors) - 디버깅에 대한 내부 오류 메시지를 표시하려면 On으로 설정합니다.

  • 최대 실행 시간(Max execution time) - 환경에서 스크립트를 종료할 때까지 스크립트가 실행될 수 있는 최대 시간(초)입니다.

로그 옵션

로그 옵션 섹션에는 다음의 두 가지 설정이 있습니다:

  • 인스턴스 프로파일(Instance profile) - 애플리케이션과 연결된 Amazon S3 버킷으로의 액세스할 권한이 있는 인스턴스 프로파일을 지정합니다.

  • Amazon S3로의 로그 파일 로테이션 활성화(Enable log file rotation to Amazon S3) – 애플리케이션과 연결된 Amazon S3 버킷에 애플리케이션의 Amazon EC2 인스턴스 로그 파일을 복사하는지 여부를 지정합니다.

정적 파일

성능을 증진하려면 정적 파일(Static files) 섹션에서 프록시 서버를 구성하여 웹 애플리케이션 내부 디렉터리 집합으로 정적 파일(예: HTML 또는 이미지)을 제공할 수 있습니다. 각 디렉터리의 디렉터리 매핑 가상 경로를 설정합니다. 지정된 경로에서 프록시 서버가 파일 요청을 수신받으면 요청을 애플리케이션으로 라우팅하지 않고 파일을 직접 제공합니다.

구성 파일 또는 Elastic Beanstalk 콘솔을 사용하여 정적 파일을 구성하는 방법에 대한 자세한 내용은 정적 파일 제공 단원을 참조하세요.

환경 속성

환경 속성 섹션에서는 애플리케이션을 실행하는 Amazon EC2 인스턴스의 환경 속성 설정을 지정할 수 있습니다. 이 설정은 키 값 페어로 애플리케이션에 전달됩니다.

애플리케이션 코드에서는 $_SERVER 또는 get_cfg_var 함수를 사용하여 환경 속성에 액세스할 수 있습니다.

$endpoint = $_SERVER['API_ENDPOINT'];

자세한 정보는 환경 속성 및 기타 소프트웨어 설정을 참조하세요.

aws:elasticbeanstalk:container:php:phpini 네임스페이스

구성 파일을 사용하여 구성 옵션을 설정하고 배포 중 다른 인스턴스 구성 작업을 수행할 수 있습니다. Elastic Beanstalk 서비스 또는 사용 중인 플랫폼에서 구성 옵션을 정의할 수 있으며 이는 네임스페이스로 조직됩니다.

aws:elasticbeanstalk:environment:proxy 네임스페이스를 사용하여 환경의 프록시 서버를 선택할 수 있습니다.

aws:elasticbeanstalk:environment:proxy:staticfiles 네임스페이스를 사용하여 정적 파일을 제공하도록 환경 프록시를 구성할 수 있습니다. 애플리케이션 디렉터리에 대한 가상 경로의 매핑을 정의합니다.

PHP 플랫폼은 Elastic Beanstalk 콘솔에서 사용할 수 없는 옵션을 비롯하여 aws:elasticbeanstalk:container:php:phpini 네임스페이스에 옵션을 정의합니다. composer_options은(는) composer.phar install을(를) 통해 Composer를 사용하여 종속 항목을 설치할 때 사용하는 사용자 지정 옵션을 설정합니다. 이용 가능한 옵션을 포함한 자세한 내용은 http://getcomposer.org/doc/03-cli.md#install을 참조하십시오.

다음 예제 구성 파일staticimages라는 디렉터리를 /images 경로로 매핑하는 정적 파일 옵션을 지정하고 aws:elasticbeanstalk:container:php:phpini 네임스페이스에서 사용 가능한 각 옵션에 대한 설정을 보여줍니다.

예 .ebextensions/php-settings.config
option_settings: aws:elasticbeanstalk:environment:proxy: ProxyServer: apache aws:elasticbeanstalk:environment:proxy:staticfiles: /images: staticimages aws:elasticbeanstalk:container:php:phpini: document_root: /public memory_limit: 128M zlib.output_compression: "Off" allow_url_fopen: "On" display_errors: "Off" max_execution_time: 60 composer_options: vendor/package
참고

aws:elasticbeanstalk:environment:proxy:staticfiles 네임스페이스는 Amazon Linux AMI PHP 플랫폼 브랜치(이전 Amazon Linux 2)에 정의되어 있지 않습니다.

Elastic Beanstalk는 사용자가 환경을 맞춤형으로 지정할 수 있는 다양한 구성 옵션을 제공합니다. 구성 파일 외에 콘솔, 저장된 구성, EB CLI 또는 AWS CLI를 통해 구성 옵션을 설정할 수도 있습니다. 자세한 정보는 구성 옵션을 참조하세요.