Amazon Web Services ブログ

New – AWS OpsWorks for Puppet Enterprise

昨年開催された AWS re:Invent で AWS OpsWorks for Chef Automate を公開しました。これはユーザーが AWS マネージド型の独自の Chef Automate サーバーを利用できるようにするものです。そして、ユーザーからのフィードバックを元に構築した Puppet Enterprise を OpsWorks に追加しました。

Puppet Enterprise は、管理されている各ノードでデプロイした puppet-agent を介してプロビジョニング、設定、インスタンスの管理を自動化できるようにします。設定は 1 回定義することができ、自動ロールバックとドリフト検出で何千件ものノードに適用することができます。AWS OpsWorks for Puppet Enterprise は、既存の Puppet マニフェストでシームレスに連動させながら、独自の Puppet マスターを管理する必要を排除します。

OpsWorks for Puppet Enterprise は、ユーザーの代わりに Puppet マスターサーバーを管理し、インストール、アップグレード、バックアップといった運用タスクを行います。また、ノード登録を簡素化したり、ノードのブートストラップの便利なスターターキットも提供しています。詳細については次をご覧ください。

Managed Puppet Master の作成

OpsWorks で Puppet マスターを作成するのは簡単です。まず、OpsWorks コンソールの [Puppet] セクションにアクセスし [Create Puppet Enterprise Server] をクリックします。

セットアップのこの段階では、Puppet マスターのリージョンと EC2 インスタンスタイプを設定します。c4.large は最大 450 件のノードをサポート、c4.2xlarge は 1600+ 件のノードをサポートします。Puppet Enterprise サーバーは Amazon Linux (2017.09) の最新バージョンと Puppet Enterprise (2017.3.2) の最新バージョンでプロビジョンされます。

次のセットアップ画面で、SSH キーが Puppet マスターに接続するようにオプションで設定することができます。これは大規模なカスタマイズを行う場合に便利ですが、インスタンスから直接操作を行うのではなくクライアントツールを介して Puppet を操作する方が一般的に優れた方法です。

また、このページでは動的設定を行うために r10k repo をセットアップすることもできます。

「Advanced Settings」ページで VPC、セキュリティグループ、IAM ロール、インスタンスプロフィールなどに、いつものデプロイオプションを選択できます。OpsWorks にインスタンスセキュリティグループを作成させるとデフォルトで開かれた状態になるため、後でアクセス制限を設定することが重要になります。

このページで注意したい 2 つのコンポーネントは、メンテナンスウィンドウとバックアップ設定です。Puppet ソフトウェアの新しいマイナーバージョンが利用可能になると、システムメンテナンスは AWS テストが完了次第、Puppet マスターにある Puppet Enterprise のマイナーバージョンを自動更新するように設計されています。AWS は Puppet のアップグレードが本番稼働で利用できるものか確認するため広範囲に渡るテストを行い、ユーザーの既存環境を中断せずにデプロイします。自動バックアップは S3 で Puppet マスターの耐久性に優れたバックアップを保存し、いつでもそのバックアップから復元を行うことができます。ご自分のビジネスニーズに合わせて、バックアップの頻度と保持期間を調整することができます。

Puppet Enterprise で AWS OpsWorks を使用

Puppet マスターをプロビジョンしている間に、コンソールで便利な情報が 2 つ表示されます。

サインイン認証情報と Windows や Linux ノードにインストールする Puppet エージェントのサンプルユーザデータをダウンロードすることができます。ここで重要なのは、Puppet マスターに接続できる限り、オンプレミスノードも管理できることです。

Puppet マスターのプロビジョンが完了したら、Puppet Enterprise の HTTP コンソールにアクセスし、通常どおり Puppet を使用することができます。

詳細情報

AWS OpsWorks for Puppet Enterprise の料金は管理されているノードのノード時間を元に請求されます。料金は 0.017 USD / ノード時間で、ノードのボリュームで低下します。詳細についてはこちらのページをご覧ください。また、Puppet マスターの実行に必要な基盤となるリソースも請求されます。現在、AWS OpsWorks for Puppet Enterprise は米国東部 (バージニア北部) リージョン、米国西部 (オレゴン) リージョン、欧州 (アイルランド) リージョンでご利用いただけます。もちろん、コンソールに表示されているものはすべて AWS SDK や CLI でも行うことができます。詳細については「入門ガイド (Getting Started Guide)」をご覧ください。

Randall