

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

# 계층별 운영 체제 패키지 설치
<a name="per-layer-os-package-install"></a>

**중요**  
이 AWS OpsWorks Stacks 서비스는 2024년 5월 26일에 서비스 수명이 종료되었으며 신규 및 기존 고객 모두에서 비활성화되었습니다. 가능한 한 빨리 워크로드를 다른 솔루션으로 마이그레이션하는 것이 좋습니다. 마이그레이션에 대한 질문이 있는 경우 [AWS re:Post](https://repost.aws/) 또는 [AWS Premium Support](https://aws.amazon.com/support)를 통해 AWS Support 팀에 문의하세요.

Chef 12부터는 서로 다른 운영 체제에서 실행되는 계층에 패키지를 설치하려면 사용자 지정 레시피를 사용해야 합니다. 이 방법은 가장 유연하게 패키지를 설치하고 제어할 수 있는 방법입니다.

가령 RedHat, Ubuntu 및 Linux 운영 체제 Amazon 버전에서 실행되는 계층에 Apache를 설치하려 한다고 가정해 보십시오. RedHat 및 Amazon Linux용 Apache 패키지는 `httpd`라고 하지만 Ubuntu에서는 `apache2`라고 합니다.

패키지 이름의 차이를 해결하기 위해 다음 예제 레시피와 비슷한 구문을 사용할 수 있습니다. 이 레시피는 각 운영 체제에 적절한 Apache 패키지를 설치합니다. 이 예제는 [Chef 설명서](https://docs.chef.io/)에 기반합니다.

```
package "Install Apache" do
   case node[:platform]
      when "redhat", "amazon"
         package_name "httpd"
      when "ubuntu"
         package_name "apache2"
   end
end
```

`package` 리소스를 사용하여 패키지를 관리하는 방법에 대한 자세한 내용은 Chef 설명서의 [패키지](https://docs.chef.io/resource_package.html) 페이지를 참조하세요.

또는 Chef 레시피 DSL(Domain-Specific Language)의 `value_for_platform` 도우미 메서드를 사용하면 더 간단하게 같은 결과를 얻을 수 있습니다.

```
package "Install Apache" do
   package_name value_for_platform(
      ["redhat", "amazon"] => { "default" => "httpd" },
      ["ubuntu"] => { "default" => "apache2" }
   )
end
```

`value_for_platform` 도우미 메서드 사용에 대한 내용은 [레시피 DSL에 대하여](https://docs.chef.io/dsl_recipe.html)를 참조하세요.