

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

# QuickStart: Elastic Beanstalk에 PHP 애플리케이션 배포
<a name="php-quickstart"></a>

다음 자습서에서는 EB CLI를 사용하여 샘플 PHP 애플리케이션을 생성하고 AWS Elastic Beanstalk 환경에 배포하는 방법을 알아봅니다.

**프로덕션용으로 사용 불가**  
예제는 설명용으로만 제공됩니다. 예제 애플리케이션을 프로덕션 환경에서 사용하지 마세요.

**Topics**
+ [AWS 계정](#php-quickstart-aws-account)
+ [사전 조건](#php-quickstart-prereq)
+ [1단계: PHP 애플리케이션 생성](#php-quickstart-create-app)
+ [2단계: 로컬에서 애플리케이션 실행](#php-quickstart-run-local)
+ [3단계: PHP 애플리케이션 초기화 및 배포](#php-quickstart-deploy)
+ [4단계: 클라우드 애플리케이션 탐색](#php-quickstart-run-eb-ap)
+ [5단계: 애플리케이션 업데이트 및 재배포](#php-quickstart-run-eb-ap)
+ [정리](#php-quickstart-cleanup)
+ [다음 단계](#php-quickstart-next-steps)

## AWS 계정
<a name="php-quickstart-aws-account"></a>

아직 AWS 고객이 아닌 경우 Elastic Beanstalk를 사용하려면 AWS 계정을 생성해야 합니다.

### AWS 계정 생성
<a name="php-quickstart-aws-account-procedure"></a>

#### 에 가입 AWS 계정
<a name="sign-up-for-aws"></a>

이 없는 경우 다음 단계를 AWS 계정완료하여 생성합니다.

**에 가입하려면 AWS 계정**

1. [https://portal.aws.amazon.com/billing/signup](https://portal.aws.amazon.com/billing/signup)을 엽니다.

1. 온라인 지시 사항을 따르세요.

   등록 절차 중 전화 또는 텍스트 메시지를 받고 전화 키패드로 확인 코드를 입력하는 과정이 있습니다.

   에 가입하면 AWS 계정*AWS 계정 루트 사용자*이 생성됩니다. 루트 사용자에게는 계정의 모든 AWS 서비스 및 리소스에 액세스할 권한이 있습니다. 보안 모범 사례는 사용자에게 관리 액세스 권한을 할당하고, 루트 사용자만 사용하여 [루트 사용자 액세스 권한이 필요한 작업](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks)을 수행하는 것입니다.

AWS 는 가입 프로세스가 완료된 후 확인 이메일을 보냅니다. 언제든지 [https://aws.amazon.com/](https://aws.amazon.com/)으로 이동하고 **내 계정**을 선택하여 현재 계정 활동을 확인하고 계정을 관리할 수 있습니다.

#### 관리자 액세스 권한이 있는 사용자 생성
<a name="create-an-admin"></a>

에 가입한 후 일상적인 작업에 루트 사용자를 사용하지 않도록 관리 사용자를 AWS 계정보호 AWS IAM Identity Center, AWS 계정 루트 사용자활성화 및 생성합니다.

**보안 AWS 계정 루트 사용자**

1.  **루트 사용자를** 선택하고 AWS 계정 이메일 주소를 입력하여 계정 소유자[AWS Management Console](https://console.aws.amazon.com/)로에 로그인합니다. 다음 페이지에서 비밀번호를 입력합니다.

   루트 사용자를 사용하여 로그인하는 데 도움이 필요하면 *AWS 로그인 사용 설명서*의 [루트 사용자로 로그인](https://docs.aws.amazon.com/signin/latest/userguide/console-sign-in-tutorials.html#introduction-to-root-user-sign-in-tutorial)을 참조하세요.

1. 루트 사용자의 다중 인증(MFA)을 활성화합니다.

   지침은 *IAM 사용 설명서*의 [AWS 계정 루트 사용자(콘솔)에 대한 가상 MFA 디바이스 활성화를 참조하세요](https://docs.aws.amazon.com/IAM/latest/UserGuide/enable-virt-mfa-for-root.html).

**관리자 액세스 권한이 있는 사용자 생성**

1. IAM Identity Center를 활성화합니다.

   지침은 *AWS IAM Identity Center 사용 설명서*의 [AWS IAM Identity Center설정](https://docs.aws.amazon.com//singlesignon/latest/userguide/get-set-up-for-idc.html)을 참조하세요.

1. IAM Identity Center에서 사용자에게 관리 액세스 권한을 부여합니다.

   를 자격 증명 소스 IAM Identity Center 디렉터리 로 사용하는 방법에 대한 자습서는 사용 *AWS IAM Identity Center 설명서*[의 기본값으로 사용자 액세스 구성을 IAM Identity Center 디렉터리](https://docs.aws.amazon.com//singlesignon/latest/userguide/quick-start-default-idc.html) 참조하세요.

**관리 액세스 권한이 있는 사용자로 로그인**
+ IAM IDentity Center 사용자로 로그인하려면 IAM Identity Center 사용자를 생성할 때 이메일 주소로 전송된 로그인 URL을 사용합니다.

  IAM Identity Center 사용자를 사용하여 로그인하는 데 도움이 필요하면 *AWS 로그인 사용 설명서*[의 AWS 액세스 포털에 로그인](https://docs.aws.amazon.com/signin/latest/userguide/iam-id-center-sign-in-tutorial.html)을 참조하세요.

**추가 사용자에게 액세스 권한 할당**

1. IAM Identity Center에서 최소 권한 적용 모범 사례를 따르는 권한 세트를 생성합니다.

   지침은 *AWS IAM Identity Center 사용 설명서*의 [Create a permission set](https://docs.aws.amazon.com//singlesignon/latest/userguide/get-started-create-a-permission-set.html)를 참조하세요.

1. 사용자를 그룹에 할당하고, 그룹에 Single Sign-On 액세스 권한을 할당합니다.

   지침은 *AWS IAM Identity Center 사용 설명서*의 [그룹 추가](https://docs.aws.amazon.com//singlesignon/latest/userguide/addgroups.html)를 참조하세요.

## 사전 조건
<a name="php-quickstart-prereq"></a>
+ Elastic Beanstalk 명령줄 인터페이스 - 설치는 [설정 스크립트를 사용하여 EB CLI 설치(권장)](eb-cli3.md#eb-cli3-install) 섹션을 참조하세요.
+ PHP - PHP 웹 사이트의 [설치 및 구성](https://www.php.net/manual/en/install.php)을 따라 로컬 시스템에 PHP를 설치합니다.

## 1단계: PHP 애플리케이션 생성
<a name="php-quickstart-create-app"></a>

이 빠른 시작에서는 *Hello World* PHP 애플리케이션을 생성합니다.

프로젝트 디렉터리를 만듭니다.

```
~$ mkdir eb-php
~$ cd eb-php
```

그런 다음 프로젝트 디렉터리에 `index.php` 파일을 생성하고 아래 코드를 추가하세요.

**Example `index.php`**  

```
<?php
  echo "Hello from a PHP application running in Elastic Beanstalk!";
?>
```

## 2단계: 로컬에서 애플리케이션 실행
<a name="php-quickstart-run-local"></a>

애플리케이션을 로컬에서 실행하려면 다음 명령을 사용합니다.

```
~$ php -S localhost:5000
```

브라우저를 열고 [http://localhost:5000](http://localhost:5000)에 접속하세요.

브라우저에서 Hello 메시지를 확인하고, 터미널에서는 로그 메시지를 확인할 수 있습니다.

로컬 서버를 중지하려면 `Control+c`를 입력하세요. 이후 Elastic Beanstalk을 배포할 수 있습니다.

## 3단계: PHP 애플리케이션 초기화 및 배포
<a name="php-quickstart-deploy"></a>

다음으로 Elastic Beanstalk 콘솔 또는 EB CLI를 사용해 애플리케이션을 *환경*에 배포합니다. 이 자습서에서는 대화형 옵션을 사용하여 EB CLI로 환경을 초기화합니다.

**환경을 초기화하고 환경을 생성하는 방법**

1. 다음 **init** 명령을 실행합니다.

   ```
   ~$ eb init -i
   ```

   init 명령은 애플리케이션을 대화형 방식으로 생성합니다. 애플리케이션 이름은 기본적으로 현재 로컬 폴더 이름(`eb-php`)으로 설정됩니다.

   SSH 액세스를 제외한 모든 프롬프트에는 기본값을 그대로 사용하여 최신 PHP 플랫폼 버전으로 환경을 생성하세요. 인스턴스 문제를 해결하려면 나중에 `eb init -i` 명령을 다시 실행하여 SSH 액세스를 설정하거나 Amazon EC2 Instance Connect 또는 Session Manager를 통해 연결할 수 있습니다.

1. 환경을 생성하고 PHP 애플리케이션을 배포

   다음 명령을 실행해 `blue-env`라는 환경을 생성합니다.

   ```
   ~$ eb create blue-env
   ```

   **eb create** 명령을 처음 실행하면, Elastic Beanstalk이 애플리케이션의 ZIP 파일을 자동으로 생성하며 이를 *소스 번들*이라 합니다. 다음으로 Elastic Beanstalk은 하나 이상의 Amazon EC2 인스턴스로 환경을 생성한 후, 애플리케이션을 해당 환경에 배포합니다.

   애플리케이션을 Elastic Beanstalk에 배포하는 데 최대 5분까지 소요될 수 있습니다.

## 4단계: 클라우드 애플리케이션 탐색
<a name="php-quickstart-run-eb-ap"></a>

환경 생성 프로세스가 완료되면 애플리케이션이 포트 5000에서 실행되며 요청을 수신 대기하게 됩니다. 다음 명령을 사용하여 Spark 애플리케이션에 연결합니다.

```
~$ eb open
```

`eb open` 명령은 브라우저 탭에서 애플리케이션을 위해 생성된 사용자 지정 하위 도메인을 엽니다.

## 5단계: 애플리케이션 업데이트 및 재배포
<a name="php-quickstart-run-eb-ap"></a>

애플리케이션을 생성하고 환경에 배포한 후에는 언제든 다른 애플리케이션 또는 애플리케이션의 새 버전을 배포할 수 있습니다. Amazon EC2 인스턴스를 프로비저닝하거나 다시 시작할 필요가 없기 때문에 새 애플리케이션 버전을 더 빠르게 배포할 수 있습니다.

서버 환경에서 REQUEST\$1TIME 값을 포함하도록 PHP 코드를 업데이트하세요.

```
<?php
  echo "Hello from a PHP application running in Elastic Beanstalk!";
  
  $timestamp = $_SERVER['REQUEST_TIME'];
  echo '<br/>Request time: ' . date('Y/m/d H:i:s', $timestamp);
?>
```

다음 명령어를 사용해 PHP 코드를 Elastic Beanstalk에 다시 배포하세요.

```
~$ eb deploy
```

**eb deploy**를 실행하면 EB CLI가 프로젝트 디렉터리의 콘텐츠를 번들링한 후 이를 환경에 배포합니다.

배포가 완료되면 페이지를 새로 고치거나 `eb open`를 통해 애플리케이션에 다시 연결하세요. 업데이트를 확인할 수 있습니다. 그렇지 않은 경우, 로컬 서버를 다시 실행하여 변경 사항을 확인하세요.

****축하합니다\$1****  
Elastic Beanstalk를 사용하여 PHP 애플리케이션을 생성, 배포 및 업데이트했습니다\$1

## 정리
<a name="php-quickstart-cleanup"></a>

데모 코드 작업을 마치면 환경을 종료할 수 있습니다. Elastic Beanstalk는 [Amazon EC2 인스턴스](using-features.managing.ec2.md), [데이터베이스 인스턴스](using-features.managing.db.md), [로드 밸런서](using-features.managing.elb.md), 보안 그룹 및 [경보](using-features.alarms.md#using-features.alarms.title)와 같은 모든 관련 AWS 리소스를 삭제합니다.

리소스를 제거해도 Elastic Beanstalk 애플리케이션은 삭제되지 않으므로 언제든 애플리케이션을 위한 새 환경을 생성할 수 있습니다.

**콘솔에서 Elastic Beanstalk 환경을 종료하려면**

1. [Elastic Beanstalk 콘솔](https://console.aws.amazon.com/elasticbeanstalk)을 열고 **리전** 목록에서를 선택합니다 AWS 리전.

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

1. **작업(Actions)**을 선택한 후 **환경 종료(Terminate Environment)**를 선택합니다.

1. 화면에 표시되는 대화 상자를 사용하여 환경 종료를 확인합니다.

또는 다음 명령을 사용하여 EB CLI로 환경을 종료할 수 있습니다.

```
~$ eb terminate
```

## 다음 단계
<a name="php-quickstart-next-steps"></a>

Elastic Beanstalk 콘솔을 사용하여 애플리케이션을 탐색할 수 있습니다. 자세한 내용은 [환경 탐색](GettingStarted.md#GettingStarted.Explore)을 참조하세요.

PHP를 사용하는 고급 예제는 [Elastic Beanstalk의 PHP에 대한 고급 예제](php-samples.md) 섹션을 참조하세요.