

AWS App Runner 는 2026년 4월 30일부터 신규 고객에게 더 이상 공개되지 않습니다. App Runner를 사용하려면 해당 날짜 이전에 가입하세요. 기존 고객은 정상적으로 서비스를 계속 이용할 수 있습니다. 자세한 내용은 [AWS App Runner 가용성 변경](https://docs.aws.amazon.com/apprunner/latest/dg/apprunner-availability-change.html)을 참조하세요.

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

# 환경 변수 관리
<a name="env-variable-manage"></a>

다음 방법 중 하나를 사용하여 App Runner 서비스의 환경 변수를 관리합니다.
+ [App Runner 콘솔](#env-variable-manage.console)
+ [App Runner API 또는 AWS CLI](#env-variable-manage.api)

## App Runner 콘솔
<a name="env-variable-manage.console"></a>

App Runner 콘솔에서 [서비스를 생성](manage-create.md)하거나 [업데이트할 ](manage-configure.md) 때 환경 변수를 추가할 수 있습니다.

### 환경 변수 추가
<a name="env-variable-manage.console.add"></a>

**환경 변수를 추가하려면**

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

1. 서비스 생성 또는 업데이트 여부에 따라 다음 단계 중 하나를 수행합니다.
   + 새 서비스를 생성하는 경우 **App Runner 서비스 생성을** 선택하고 **서비스 구성**으로 이동합니다.
   +  기존 서비스를 업데이트하는 경우 업데이트할 서비스를 선택하고 서비스의 **구성** 탭으로 이동합니다.

1.  **서비스 설정**에서 **환경 변수 - 선택 사항**으로 이동합니다.

1.  요구 사항에 따라 다음 옵션 중 하나를 선택합니다.
   + **환경 변수 소스**에서 **일반 텍스트를** 선택하고 환경 변수 **이름 및 환경 변수** **값** 아래에 각각 해당 키-값 페어를 입력합니다.
**참고**  
민감하지 않은 데이터를 참조하려면 **일반 텍스트를** 선택합니다. 이 데이터는 암호화되지 않으며 App Runner 서비스 구성 및 애플리케이션 로그에서 다른 사용자에게 표시됩니다.
   + **환경 변수 소스**에서 **Secrets Manager**를 선택하여에 저장된 보안 암호를 서비스의 환경 변수 AWS Secrets Manager 로 참조합니다. 환경 변수 이름 및 환경 변수 **값** 아래에 참조하려는 보안 암호의 **환경 변수 이름과 Amazon 리소스 이름**(ARN)을 각각 입력합니다.
   + **환경 변수 소스**에서 **SSM 파라미터 스토어**를 선택하여 SSM 파라미터 스토어에 저장된 파라미터를 서비스의 환경 변수로 참조합니다. 환경 변수 이름 및 환경 변수 **값** 아래에 참조하려는 파라미터의 **환경 변수 이름과** ARN을 각각 입력합니다.
**참고**  
App Runner 서비스를 생성하거나 업데이트할 때 환경 변수의 `PORT` 이름으로를 할당할 수 없습니다. App Runner 서비스를 위한 예약 환경 변수입니다.
 SSM Parameter Store 파라미터가 시작하려는 AWS 리전 서비스와 동일한에 있는 경우 전체 Amazon 리소스 이름(ARN) 또는 파라미터 이름을 지정할 수 있습니다. 파라미터가 다른 리전에 있는 경우 전체 ARN을 지정해야 합니다.
참조하는 파라미터가 시작하거나 업데이트하는 서비스와 동일한 계정에 있는지 확인합니다. 현재는 계정 간에 SSM 파라미터 스토어 파라미터를 참조할 수 없습니다.

1. **환경 변수 추가**를 선택하여 다른 환경 변수를 참조합니다.

1. **IAM 정책 템플릿을** 확장하여 AWS Secrets Manager 및 SSM 파라미터 스토어에 제공된 IAM 정책 템플릿을 보고 복사합니다. 필요한 권한으로 인스턴스 역할의 IAM 정책을 아직 업데이트하지 않은 경우에만이 작업을 수행하면 됩니다. 자세한 내용은 [권한](env-variable.md#env-variable.sensitivedata.permissions) 단원을 참조하십시오.

### 환경 변수 제거
<a name="env-variable-manage.console.remove"></a>

환경 변수를 삭제하기 전에 애플리케이션 코드가 동일하게 업데이트되었는지 확인합니다. 애플리케이션 코드가 업데이트되지 않으면 App Runner 서비스가 실패할 수 있습니다.

**환경 변수를 제거하려면**

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

1.  업데이트하려는 서비스의 **구성** 탭으로 이동합니다.

1.  **서비스 설정**에서 **환경 변수 - 선택 사항**으로 이동합니다.

1.  **제거**하려는 환경 변수 옆에 있는 제거를 선택합니다. 삭제를 확인하는 메시지가 표시됩니다.

1.  **삭제**를 선택합니다.

## App Runner API 또는 AWS CLI
<a name="env-variable-manage.api"></a>

서비스에 환경 변수로 추가하여 Secrets Manager 및 SSM 파라미터 스토어에 저장된 민감한 데이터를 참조할 수 있습니다.

**참고**  
App Runner가 Secrets Manager 및 SSM 파라미터 스토어에 저장된 보안 암호 및 파라미터에 액세스할 수 있도록 인스턴스 역할의 IAM 정책을 업데이트합니다. 자세한 내용은 [권한](env-variable.md#env-variable.sensitivedata.permissions) 단원을 참조하십시오.

**보안 암호 및 구성을 환경 변수로 참조하려면**

1. Secrets Manager 또는 SSM 파라미터 스토어에서 보안 암호 또는 구성을 생성합니다.

   다음 예제에서는 SSM 파라미터 스토어를 사용하여 보안 암호와 파라미터를 생성하는 방법을 보여줍니다.  
**Example 보안 암호 생성 - 요청**  

   다음 예제에서는 데이터베이스 자격 증명을 나타내는 보안 암호를 생성하는 방법을 보여줍니다.

   ```
   aws secretsmanager create-secret \
   —name DevRdsCredentials \
   —description "Rds credentials for development account." \
   —secret-string "{\"user\":\"diegor\",\"password\":\"EXAMPLE-PASSWORD\"}"
   ```  
**Example 보안 암호 생성 - 응답**  

   ```
   arn:aws:secretsmanager:<region>:<aws_account_id>:secret:DevRdsCredentials
   ```  
**Example 구성 생성 - 요청**  

   다음 예제에서는 RDS 연결 문자열을 나타내는 파라미터를 생성하는 방법을 보여줍니다.

   ```
   aws systemsmanager put-parameter \
   —name DevRdsConnectionString \
   —value "mysql2://dev-mysqlcluster-rds.com:3306/diegor" \
   —type "String" \
   —description "Rds connection string for development account."
   ```  
**Example 구성 생성 - 응답**  

   ```
   arn:aws:ssm:<region>:<aws_account_id>:parameter/DevRdsConnectionString
   ```

1. 환경 변수로 추가하여 Secrets Manager 및 SSM Parameter Store에 저장된 보안 암호 및 구성을 참조합니다. App Runner 서비스를 생성하거나 업데이트할 때 환경 변수를 추가할 수 있습니다.

   다음 예제에서는 암호 및 구성을 코드 기반 및 이미지 기반 App Runner 서비스의 환경 변수로 참조하는 방법을 보여줍니다.  
**Example 이미지 기반 App Runner 서비스용 Input.json 파일**  

   ```
   {
     "ServiceName": "example-secrets",
     "SourceConfiguration": {
       "ImageRepository": {
         "ImageIdentifier": "<image-identifier>",
         "ImageConfiguration": {
           "Port": "<port>",
           "RuntimeEnvironmentSecrets": {
             "Credential1":"arn:aws:secretsmanager:<region>:<aws_account_id>:secret:XXXXXXXXXXXX",
             "Credential2":"arn:aws:ssm:<region>:<aws_account_id>:parameter/<parameter-name>"
           }
         },
         "ImageRepositoryType": "ECR_PUBLIC"
       }
     },
     "InstanceConfiguration": {
       "Cpu": "1 vCPU",
       "Memory": "3 GB",
       "InstanceRoleArn": "<instance-role-arn>"
     }
   }
   ```  
**Example 이미지 기반 App Runner 서비스 - 요청**  

   ```
   aws apprunner create-service \
   --cli-input-json file://input.json
   ```  
**Example 이미지 기반 App Runner 서비스 - 응답**  

   ```
   {
   ...
         "ImageRepository": {
            "ImageIdentifier":"<image-identifier>",
            "ImageConfiguration":{
               "Port": "<port>",
               "RuntimeEnvironmentSecrets":{
                  "Credential1": "arn:aws:secretsmanager:<region>:<aws_account_id>:secret:XXXXXXXXXXXX",
                  "Credential2": "arn:aws:ssm:<region>:<aws_account_id>:parameter/<parameter-name>"
               },                
               "ImageRepositoryType":"ECR"
         }      
      },
      "InstanceConfiguration": {
           "CPU": "1 vCPU",
           "Memory": "3 GB",
           "InstanceRoleArn: "<instance-role-arn>"
      }
   ...
   }
   ```  
**Example 코드 기반 App Runner 서비스를 위한 Input.json 파일**  

   ```
   {
     "ServiceName": "example-secrets",
     "SourceConfiguration": {
       "AuthenticationConfiguration": {
         "ConnectionArn": "arn:aws:apprunner:us-east-1:123456789012:connection/my-github-connection/XXXXXXXXXX"
       },
       "AutoDeploymentsEnabled": false,
       "CodeRepository": {
         "RepositoryUrl": "<repository-url>",
         "SourceCodeVersion": {
           "Type": "BRANCH",
           "Value": "main"
         },
         "CodeConfiguration": {
           "ConfigurationSource": "API",
           "CodeConfigurationValues": {
             "Runtime": "<runtime>",
             "BuildCommand": "<build-command>",
             "StartCommand": "<start-command>",
             "Port": "<port>",
             "RuntimeEnvironmentSecrets": {
               "Credential1":"arn:aws:secretsmanager:<region>:<aws_account_id>:secret:XXXXXXXXXXXX",
               "Credential2":"arn:aws:ssm:<region>:<aws_account_id>:parameter/<parameter-name>"
             }
           }
         }
       }
     },
     "InstanceConfiguration": {
       "Cpu": "1 vCPU",
       "Memory": "3 GB",
       "InstanceRoleArn": "<instance-role-arn>"
     }
   }
   ```  
**Example 코드 기반 App Runner 서비스 - 요청**  

   ```
   aws apprunner create-service \
   --cli-input-json file://input.json
   ```  
**Example 코드 기반 App Runner 서비스 - 응답**  

   ```
   {
   ...
      "SourceConfiguration":{
         "CodeRepository":{
            "RepositoryUrl":"<repository-url>",
            "SourceCodeVersion":{
               "Type":"Branch",
               "Value":"main"
            },
            "CodeConfiguration":{
               "ConfigurationSource":"API",
               "CodeConfigurationValues":{
                  "Runtime":"<runtime>",
                  "BuildCommand":"<build-command>",
                  "StartCommand":"<start-command>",
                  "Port":"<port>",               
                  "RuntimeEnvironmentSecrets":{
                     "Credential1" : "arn:aws:secretsmanager:<region>:<aws_account_id>:secret:XXXXXXXX",
                     "Credential2" : "arn:aws:ssm:<region>:<aws_account_id>:parameter/<parameter-name>"
                  } 
               }
            }
         },
         "InstanceConfiguration": {
           "CPU": "1 vCPU",
           "Memory": "3 GB",
           "InstanceRoleArn: "<instance-role-arn>"
      }
   ...
   }
   ```

1. 추가된 보안 암호를 반영하도록 `apprunner.yaml` 모델이 업데이트됩니다.

   다음은 업데이트된 `apprunner.yaml`모델의 예입니다.  
**Example `apprunner.yaml`**  

   ```
   version: 1.0
   runtime: python3
   build:
     commands:
       build:
         - python -m pip install flask
   run:
     command: python app.py
     network:
       port: 8080
     env:
       - name: MY_VAR_EXAMPLE
         value: "example"
     secrets:
       - name: my-secret
         value-from: "arn:aws:secretsmanager:<region>:<aws_account_id>:secret:XXXXXXXXXXXX"
       - name: my-parameter
         value-from: "arn:aws:ssm:<region>:<aws_account_id>:parameter/<parameter-name>"
       - name: my-parameter-only-name
         value-from: "parameter-name"
   ```