기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Amazon EC2 및 온프레미스 시스템에서 AWS AppConfig 에이전트 사용
AWS AppConfig 에이전트를 사용하여 Amazon Elastic Compute Cloud(AmazonEC2) Linux 인스턴스에서 실행되는 애플리케이션 AWS AppConfig 과 를 통합할 수 있습니다. 에이전트는 다음과 같은 방법으로 애플리케이션 처리 및 관리를 개선합니다.
-
에이전트는 AWS Identity and Access Management (IAM) 역할을 사용하고 구성 데이터의 로컬 캐시를 관리하여 AWS AppConfig 사용자를 대신하여 호출합니다. 로컬 캐시에서 구성 데이터를 가져오면 애플리케이션에서 구성 데이터를 관리하는 데 필요한 코드 업데이트 횟수가 줄어들고, 구성 데이터를 밀리초 단위로 검색할 수 있으며, 이러한 데이터에 대한 호출을 방해할 수 있는 네트워크 문제의 영향을 받지 않습니다.*
-
에이전트는 AWS AppConfig 특성 플래그를 검색하고 해결하기 위한 기본 환경을 제공합니다.
-
에이전트는 기본적으로 캐싱 전략, 폴링 간격, 로컬 구성 데이터의 가용성에 대한 모범 사례를 제공하는 동시에 후속 서비스 호출에 필요한 구성 토큰을 추적합니다.
-
백그라운드에서 실행되는 동안 에이전트는 구성 AWS AppConfig 데이터 업데이트를 위해 데이터 영역을 주기적으로 폴링합니다. 애플리케이션은 포트 2772(사용자 지정 가능한 기본 포트 값)의 localhost에 연결하고 를 호출HTTPGET하여 데이터를 검색할 수 있습니다.
*AWS AppConfig 에이전트는 서비스가 구성 데이터를 처음 검색할 때 데이터를 캐시합니다. 이러한 이유로 데이터를 검색하기 위한 첫 번째 호출은 후속 호출보다 느립니다.
주제
1단계: (필수) 리소스 생성 및 권한 구성
Amazon EC2 인스턴스에서 실행되는 애플리케이션 AWS AppConfig 과 통합하려면 특성 플래그 또는 자유 형식 구성 데이터를 포함하여 AWS AppConfig 아티팩트 및 구성 데이터를 생성해야 합니다. 자세한 내용은 기능 플래그 및 자유 형식 구성 데이터 생성 AWS AppConfig 단원을 참조하십시오.
에서 호스팅하는 구성 데이터를 검색하려면 AWS AppConfig 데이터 영역에 대한 액세스 권한으로 AWS AppConfig애플리케이션을 구성해야 합니다. 애플리케이션에 액세스 권한을 부여하려면 Amazon EC2 인스턴스 역할에 할당된 IAM 권한 정책을 업데이트합니다. 특히, 정책에 appconfig:StartConfigurationSession
및 appconfig:GetLatestConfiguration
액션을 추가해야 합니다. 예:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "appconfig:StartConfigurationSession", "appconfig:GetLatestConfiguration" ], "Resource": "*" } ] }
정책에 권한을 추가하는 방법에 대한 자세한 내용은 IAM 사용 설명서의 IAM 자격 증명 권한 추가 및 제거를 참조하세요.
2단계: (필수) Amazon EC2 인스턴스에 AWS AppConfig 에이전트 설치 및 시작
AWS AppConfig 에이전트는 에서 관리하는 Amazon Simple Storage Service(Amazon S3) 버킷에서 호스팅됩니다 AWS. 다음 절차를 사용하여 Linux 인스턴스에 최신 버전의 에이전트를 설치합니다. 애플리케이션이 여러 인스턴스에 분산되어 있는 경우 애플리케이션을 호스팅하는 각 인스턴스에서 이 절차를 수행해야 합니다.
참고
다음과 같은 정보를 참고합니다.
-
AWS AppConfig 커널 버전 4.15 이상을 실행하는 Linux 운영 체제에서 에이전트를 사용할 수 있습니다. Ubuntu와 같은 Debian 기반 시스템은 지원되지 않습니다.
-
에이전트는 x86_64 및 ARM64 아키텍처를 지원합니다.
-
분산 애플리케이션의 경우 Auto Scaling 그룹의 Amazon EC2 사용자 데이터에 설치 및 시작 명령을 추가하는 것이 좋습니다. 그러면 각 인스턴스가 명령을 자동으로 실행합니다. 자세한 내용은 Amazon EC2 사용 설명서의 시작 시 Linux 인스턴스에서 명령 실행을 참조하세요. 또한 Amazon EC2 Auto Scaling 사용 설명서의 인스턴스 메타데이터를 통해 대상 수명 주기 상태를 검색하도록 사용자 데이터 구성을 참조하세요.
-
이 주제 전체의 절차에서는 인스턴스에 로그인하여 명령을 실행하여 에이전트를 설치하는 등의 액션을 수행하는 방법을 설명합니다. 의 기능인 Run Command를 사용하여 로컬 클라이언트 시스템에서 명령을 실행하고 하나 이상의 인스턴스를 대상으로 지정할 수 있습니다 AWS Systems Manager. 자세한 내용은 AWS Systems Manager 사용 설명서에서 AWS Systems Manager Run Command를 참조하십시오.
-
AWS AppConfig Amazon EC2 Linux 인스턴스의 에이전트는
systemd
서비스입니다.
인스턴스에 AWS AppConfig Agent를 설치하고 시작하려면
-
Linux 인스턴스에 로그인합니다.
-
터미널을 열고 관리자 권한으로 다음 명령 중 하나를 실행합니다.
x86_64
sudo yum install https://s3.amazonaws.com/aws-appconfig-downloads/aws-appconfig-agent/linux/x86_64/latest/aws-appconfig-agent.rpm
ARM64
sudo yum install https://s3.amazonaws.com/aws-appconfig-downloads/aws-appconfig-agent/linux/arm64/latest/aws-appconfig-agent.rpm
특정 버전의 AWS AppConfig 에이전트를 설치하려면
latest
에서 URL를 특정 버전 번호로 바꿉니다. 다음은 x86_64의 예시입니다.sudo yum install https://s3.amazonaws.com/aws-appconfig-downloads/aws-appconfig-agent/linux/x86_64/2.0.2/aws-appconfig-agent.rpm
-
에이전트를 시작하려면 다음 명령을 실행합니다.
sudo systemctl start aws-appconfig-agent
-
다음 명령을 실행하여 에이전트가 실행 중인지 확인합니다.
sudo systemctl status aws-appconfig-agent
명령이 제대로 실행되면 다음과 비슷한 정보를 반환합니다.
aws-appconfig-agent.service - aws-appconfig-agent ... Active: active (running) since Mon 2023-07-26 00:00:00 UTC; 0s ago ...
참고
에이전트를 중지하려면 다음 명령을 실행합니다.
sudo systemctl stop aws-appconfig-agent
3단계: (선택 사항이지만 권장됨) 로그 파일을 CloudWatch 로그로 전송
기본적으로 AWS AppConfig 에이전트는 에 로그를 게시합니다STDERR. Linux 인스턴스에서 실행되는 모든 서비스에 STDERR 대한 시스템화된 리디렉션 STDOUT 및 는 시스템화된 저널로 리디렉션됩니다. 한두 개의 인스턴스에서만 AWS AppConfig 에이전트를 실행하는 경우 시스템 저널에서 로그 데이터를 보고 관리할 수 있습니다. 분산 애플리케이션에 적극 권장하는 솔루션인 더 나은 솔루션은 로그 파일을 디스크에 작성한 다음 Amazon CloudWatch 에이전트를 사용하여 로그 데이터를 AWS 클라우드에 업로드하는 것입니다. 또한 인스턴스에서 이전 로그 파일을 삭제하도록 CloudWatch 에이전트를 구성하여 인스턴스에 디스크 공간이 부족해지는 것을 방지할 수 있습니다.
디스크 로깅을 활성화하려면 4단계: (선택 사항) 환경 변수를 사용하여 Amazon용 AWS AppConfig 에이전트 구성 EC2에 설명된 대로 LOG_PATH
환경 변수를 설정해야 합니다.
CloudWatch 에이전트를 시작하려면 Amazon 사용 설명서의 CloudWatch 에이전트를 사용하여 Amazon EC2 인스턴스 및 온프레미스 서버에서 지표 및 로그 수집을 참조하세요. CloudWatch Systems Manager의 기능인 Quick Setup을 사용하여 CloudWatch 에이전트를 빠르게 설치할 수 있습니다. 자세한 내용은 AWS Systems Manager 사용 설명서의 빠른 설정 호스트 관리를 참조하십시오.
주의
CloudWatch 에이전트를 사용하지 않고 디스크에 로그 파일을 쓰도록 선택한 경우 이전 로그 파일을 삭제해야 합니다. AWS AppConfig 에이전트는 매시간 로그 파일을 자동으로 교체합니다. 오래된 로그 파일을 삭제하지 않으면 인스턴스의 디스크 공간이 부족해질 수 있습니다.
인스턴스에 CloudWatch 에이전트를 설치한 후 CloudWatch 에이전트 구성 파일을 생성합니다. 구성 파일은 CloudWatch 에이전트 로그 파일을 사용하는 방법을 AWS AppConfig 에이전트에게 알려줍니다. CloudWatch 에이전트 구성 파일 생성에 대한 자세한 내용은 CloudWatch 에이전트 구성 파일 생성을 참조하세요.
인스턴스의 CloudWatch 에이전트 구성 파일에 다음 logs
섹션을 추가하고 변경 사항을 저장합니다.
"logs": { "logs_collected": { "files": { "collect_list": [ { "file_path": "/
path_you_specified_for_logging
", "log_group_name": "${YOUR_LOG_GROUP_NAME
}/aws-appconfig-agent.log", "auto_removal": true }, ... ] }, ... }, ... }
값이 이면 true
CloudWatch 에이전트auto_removal
는 교체된 AWS AppConfig 에이전트 로그 파일을 자동으로 삭제합니다.
4단계: (선택 사항) 환경 변수를 사용하여 Amazon용 AWS AppConfig 에이전트 구성 EC2
환경 변수를 사용하여 AWS AppConfig Agent for AmazonEC2을 구성할 수 있습니다. systemd
서비스의 환경 변수를 설정하려면 드롭인 단위 파일을 생성합니다. 다음 예제에서는 드롭인 단위 파일을 생성하여 AWS AppConfig 에이전트 로깅 수준을 로 설정하는 방법을 보여줍니다DEBUG
.
환경 변수에 대한 드롭인 단위 파일을 만드는 방법의 예
-
Linux 인스턴스에 로그인합니다.
-
터미널을 열고 다음 명령을 관리자 권한으로 실행합니다. 이 명령은 구성 디렉터리를 생성합니다.
sudo mkdir /etc/systemd/system/aws-appconfig-agent.service.d
-
다음 명령을 실행해 드롭인 단위 파일을 생성합니다. Replace
file_name
파일 이름이 있습니다. 확장자는 다음과 같아야 합니다:.conf
sudo touch /etc/systemd/system/aws-appconfig-agent.service.d/
file_name
.conf -
드롭인 단위 파일에 정보를 입력합니다. 다음 예제에서는 환경 변수를 정의하는
Service
섹션을 추가합니다. 이 예제에서는 AWS AppConfig 에이전트 로그 수준을DEBUG
로 설정합니다.[Service] Environment=LOG_LEVEL=DEBUG
-
다음 명령을 실행하여 systemd 구성을 다시 로드합니다.
sudo systemctl daemon-reload
-
다음 명령을 실행하여 AWS AppConfig 에이전트를 다시 시작합니다.
sudo systemctl restart aws-appconfig-agent
드롭인 단위 파일에서 다음 환경 변수를 지정EC2하여 AWS AppConfig Agent for Amazon을 구성할 수 있습니다.
환경 변수 | Details | 기본값 |
---|---|---|
|
이 환경 변수는 에이전트 HTTP 서버에서 구성 데이터를 요청할 때 제공해야 하는 토큰을 정의합니다. 토큰 값은 HTTP 요청 권한 부여 헤더에서 권한 부여 유형 로 설정해야 합니다
|
None |
|
이 환경 변수를 사용하면 AWS AppConfig 에이전트가 검색하는 각 구성의 백업을 지정된 디렉터리에 저장할 수 있습니다. 중요디스크에 백업된 구성은 암호화되지 않습니다. 구성에 민감한 데이터가 포함된 경우 파일 시스템 권한으로 최소 권한 원칙을 연습하는 것이 AWS AppConfig 좋습니다. 자세한 내용은 보안 내부 AWS AppConfig 단원을 참조하십시오. |
None |
|
이 환경 변수는 에이전트의 HTTP 서버가 실행되는 포트를 지정합니다. |
2772 |
|
이 환경 변수는 에이전트가 기록하는 세부 정보 수준을 지정합니다. 각 레벨에는 현재 레벨과 모든 상위 레벨이 포함됩니다. 변수는 대소문자를 구분합니다. 로그 수준은 가장 세부적인 것부터 세부적이지 않은 것까지 |
|
|
로그가 기록되는 디스크 위치. 지정하지 않으면 로그가 stderr에 기록됩니다. |
None |
|
이 환경 변수는 다중 계정 검색 및 디스크에 구성 저장과 같은 추가 구성별 기능을 활용하도록 AWS AppConfig 에이전트를 구성합니다. 다음 값 중 하나를 입력할 수 있습니다.
이러한 기능에 대한 자세한 내용은 매니페스트를 사용하여 추가 검색 기능 활성화 섹션을 참조하세요. |
true |
|
이 환경 변수는 에이전트가 AWS AppConfig에서 구성을 검색하는 데 사용하는 최대 연결 수를 구성합니다. |
3 |
|
이 환경 변수는 에이전트가 업데이트된 구성 데이터를 AWS AppConfig 폴링하는 빈도를 제어합니다. 간격을 초 단위로 지정할 수 있습니다. 시간 단위를 사용하여 숫자를 지정할 수도 있습니다. 초는 s, 분은 m, 시간은 h입니다. 단위를 지정하지 않으면 에이전트의 기본값은 초로 설정됩니다. 예를 들어 60, 60초, 1분은 폴링 간격이 동일합니다. |
45초 |
|
이 환경 변수는 에이전트가 시작하는 AWS AppConfig 즉시 에서 요청하는 구성 데이터를 지정합니다. |
None |
|
로 설정하면 |
true |
PROXY_HEADERS |
이 환경 변수는 PROXY_URL 환경 변수에서 참조되는 프록시에 필요한 헤더를 지정합니다. 값은 쉼표로 구분된 헤더 목록입니다. 각 헤더는 다음 형식을 사용합니다.
|
None |
PROXY_URL |
이 환경 변수는 를 AWS 서비스포함하여 에이전트에서 로의 연결에 URL 사용할 프록시를 지정합니다 AWS AppConfig. HTTPS 및 HTTP URLs가 지원됩니다. |
None |
|
이 환경 변수는 에이전트가 의 응답을 기다리는 시간을 제어합니다 AWS AppConfig. 서비스가 응답하지 않으면 요청이 실패합니다. 초기 데이터 검색을 위한 요청인 경우 에이전트는 애플리케이션에 오류를 반환합니다. 업데이트된 데이터에 대한 백그라운드 확인 중에 제한 시간이 초과되면 에이전트는 오류를 기록하고 잠시 후 다시 시도합니다. 제한 시간을 밀리초로 지정할 수 있습니다. 시간 단위로 숫자를 지정할 수도 있습니다. 밀리초는 ms이고 초는 s입니다. 단위를 지정하지 않으면 에이전트의 기본값은 밀리초로 설정됩니다. 예를 들어 5000, 5000ms 및 5s의 경우 요청 제한 시간 값이 동일합니다. |
3000 밀리초 |
ROLE_ARN |
이 환경 변수는 IAM 역할의 Amazon 리소스 이름(ARN)을 지정합니다. AWS AppConfig 에이전트는 이 역할을 수임하여 구성 데이터를 검색합니다. | None |
ROLE_EXTERNAL_ID |
이 환경 변수는 가정된 역할 에 사용할 외부 ID를 지정합니다ARN. | None |
ROLE_SESSION_NAME |
이 환경 변수는 가정된 IAM 역할의 자격 증명과 연결할 세션 이름을 지정합니다. | None |
SERVICE_REGION |
이 환경 변수는 에이전트 AWS 리전 가 AWS AppConfig AWS AppConfig 서비스를 호출하는 데 사용하는 대안을 지정합니다. 정의되지 않은 상태로 두면 에이전트는 현재 리전을 확인하려고 시도합니다. 그렇게 할 수 없는 경우 에이전트가 시작되지 않습니다. | None |
|
이 환경 변수는 시작을 완료하기 전에 매니페스트가 처리될 때까지 기다리도록 AWS AppConfig 에이전트를 구성합니다. |
true |
5단계: (필수) 구성 데이터 검색
HTTP localhost 호출을 사용하여 AWS AppConfig Agent에서 구성 데이터를 검색할 수 있습니다. 다음 예제에서는 HTTP 클라이언트와 curl
함께 를 사용합니다. 애플리케이션 언어에서 지원하는 사용 가능한 HTTP 클라이언트 또는 를 포함한 사용 가능한 라이브러리를 사용하여 에이전트를 호출할 수 있습니다 AWS SDK.
배포된 구성의 전체 내용을 검색하려면
$ curl "http://localhost:2772/applications/
application_name
/environments/environment_name
/configurations/configuration_name
"
Feature Flag
유형의 AWS AppConfig
구성에서 단일 플래그와 해당 속성을 검색하려면
$ curl "http://localhost:2772/applications/
application_name
/environments/environment_name
/configurations/configuration_name
?flag=flag_name
"
Feature Flag
유형의 AWS AppConfig
구성에서 여러 플래그와 해당 속성에 액세스하려면
$ curl "http://localhost:2772/applications/
application_name
/environments/environment_name
/configurations/configuration_name
?flag=flag_name_one
&flag=flag_name_two
"
6단계(선택 사항이지만 권장됨): AWS AppConfig 에이전트에 대한 업데이트 자동화
AWS AppConfig 에이전트는 주기적으로 업데이트됩니다. 인스턴스에서 최신 버전의 AWS AppConfig Agent를 실행하려면 Amazon EC2 사용자 데이터에 다음 명령을 추가하는 것이 좋습니다. 인스턴스 또는 EC2 Auto Scaling 그룹의 사용자 데이터에 명령을 추가할 수 있습니다. 스크립트는 인스턴스가 시작되거나 재부팅될 때마다 에이전트의 최신 버전을 설치하고 시작합니다.
#!/bin/bash # install the latest version of the agent yum install -y https://s3.amazonaws.com/aws-appconfig-downloads/aws-appconfig-agent/linux/x86_64/latest/aws-appconfig-agent.rpm # optional: configure the agent mkdir /etc/systemd/system/aws-appconfig-agent.service.d echo "${
MY_AGENT_CONFIG
}" > /etc/systemd/system/aws-appconfig-agent.service.d/overrides.conf systemctl daemon-reload # start the agent systemctl start aws-appconfig-agent