31
AWS での Chef Server クイックスタートリファ レンスデプロイガイド

AWS での Chef Server - クイックスタートリファレンスデプロ … · AWS での Chef Server クイックス タートリファレンスデプロイガイド AWS での

  • Upload
    ngongoc

  • View
    242

  • Download
    0

Embed Size (px)

Citation preview

AWS での Chef Serverクイックスタートリファ

レンスデプロイガイド

AWS での Chef Server クイックスタートリファレンスデプロイガイド

AWS での Chef Server: クイックスタートリファレンスデプロイガイドCopyright © 2019 Amazon Web Services, Inc. and/or its affiliates. All rights reserved.

Amazon's trademarks and trade dress may not be used in connection with any product or service that is not Amazon's, in any mannerthat is likely to cause confusion among customers, or in any manner that disparages or discredits Amazon. All other trademarks notowned by Amazon are the property of their respective owners, who may or may not be affiliated with, connected to, or sponsored byAmazon.

AWS での Chef Server クイックスタートリファレンスデプロイガイド

Table of Contentsホーム ............................................................................................................................................... 1

クイックスタートについて ........................................................................................................... 2概要 .................................................................................................................................................. 3

AWS での Chef Server ................................................................................................................ 3コストとライセンス .................................................................................................................... 3

アーキテクチャ .................................................................................................................................. 5AWS のサービス ........................................................................................................................ 7

ユースケースとメリット ...................................................................................................................... 8従量制料金と一括請求 ................................................................................................................. 8ハイブリッドデプロイ ................................................................................................................. 8AWS リソース管理 ..................................................................................................................... 8AWS CloudFormation との統合 .................................................................................................... 8Chef high availability ................................................................................................................... 8

自動デプロイ ..................................................................................................................................... 9ここで取り上げる内容 ................................................................................................................. 9ステップ 1. アカウントを準備する ................................................................................................ 9ステップ 2. Chef Server AMI にサブスクライブする ...................................................................... 13ステップ 3. スタックを起動する ................................................................................................. 14

Chef ノードの設定 ............................................................................................................................ 17ワークステーションと Chef リポジトリの設定 .............................................................................. 17クックブックとレシピの作成 ...................................................................................................... 20ノードのブートストラップ ......................................................................................................... 22

セキュリティ .................................................................................................................................... 24サポート .......................................................................................................................................... 25

Chef ........................................................................................................................................ 25AWS ....................................................................................................................................... 25

リソース .......................................................................................................................................... 26フィードバック ................................................................................................................................. 27ドキュメントの改訂 .......................................................................................................................... 28

.............................................................................................................................................. 28

iii

AWS での Chef Server クイックスタートリファレンスデプロイガイド

AWS クラウドでの Chef Server: クイックスタートリファレンスデプロイ

デプロイガイド

Mike Pfeiffer - AWS クイックスタートリファレンスチーム、ソリューションアーキテクト

2015 年 12 月

このクイックスタートリファレンスデプロイガイドでは、Chef Server をアマゾン ウェブ サービス(AWS) クラウドにデプロイするための設定手順について説明します。また、デプロイを自動化する AWSCloudFormation テンプレートの表示と起動のためのリンク、Chef による Amazon Elastic Compute Cloud(Amazon EC2) インスタンスの管理方法を示すチュートリアルも提供します。

このガイドは、AWS クラウドでの Chef ワークロードの実装や拡張を検討している IT インフラストラクチャアーキテクト、管理者、DevOps プロフェッショナルを対象としています。

AWS OpsWorks オプション

このクイックスタートは、独自の Chef Server インフラストラクチャを実行して管理したいと考えているお客様を対象としています。ただし、AWS によって提供される設定管理サービスであるAWS OpsWorks もお客様のニーズに適しているかどうかを判断することをお勧めします。AWSOpsWorks は、Chef を使用したすべてのタイプ、規模のアプリケーションの設定と運用に役立ちます。各コンポーネントのアプリケーションのアーキテクチャと仕様を、パッケージインストール、ソフトウェア設定、リソース (ストレージなど) を含め、定義できます。詳細については、AWS OpsWorks ユーザーガイドを参照してください。

以下のリンクは参考情報です。クイックスタートを起動する前に、アーキテクチャ、設定、ネットワークセキュリティなどの、このガイドで説明されている考慮事項を確認してください。

デフォルト設定では、t2.medium インスタンスタイプを使用して各サーバーをデプロイしますが、インスタンスタイプを変更し、他の設定をカスタマイズすることもできます。Chef Server でサポートされているインスタンスタイプは、AWS Marketplace の関連する製品ページに示されています (「コストとライセンス (p. 3)」セクションのリンクを参照)。

• AWS アカウントがあり、Chef Server にすでに精通している場合は、クイックスタートを起動して、Chef Server を AWS アカウントにデプロイできます。デプロイ時間: 約 35 分

 

 • AWS CloudFormation テンプレートの内容を見る場合は、テンプレートを表示して、その設定方法を確

認できます。テンプレートは、起動中にカスタマイズしたり、他のプロジェクト用にダウンロードして拡張したりできます。

1

AWS での Chef Server クイックスタートリファレンスデプロイガイド

クイックスタートについて

 

Note

クイックスタートリファレンスデプロイを実行する際は、AWS サービスの利用料金を負担する必要があります。価格は変更されることがあります。詳細については、「コストとライセンス (p. 3)」セクションや使用する AWS のサービスの料金表ページを参照してください。

クイックスタートについてクイックスタートは、AWS クラウドでの主要なワークロード向けに自動化されているリファレンスデプロイです。各クイックスタートでは、セキュリティと可用性に関する AWS ベストプラクティスに沿って、AWS で特定のワークロードをデプロイするために必要な AWS のコンピューティング、ネットワーク、ストレージ、その他のサービスを起動、設定、実行します。

2

AWS での Chef Server クイックスタートリファレンスデプロイガイド

AWS での Chef Server

概要AWS での Chef Server

Chef Server は、Chef 自動化プラットフォームの拡張性の高い基盤です。Chef Server を使用して、AWSクラウドで動作している動的インフラストラクチャを作成および管理したり、オンプレミスデータセンター内のサーバーを管理したりできます。このクイックスタートは、AWS Marketplace の正式な ChefServer AMI を使用して、インフラストラクチャの自動化を容易にします。Chef Server AMI は AWSMarketplace またはこのクイックスタートからワンクリックで起動でき、以下の機能にすぐにアクセスできます。

• Chef Analytics、Chef Management Console、Chef Reporting を含む Chef Server• Chef のプレミアム機能と AWS で実行されるインフラストラクチャの両方に対する時間単価の一括請求• 5 〜 250 ノードを管理する機能

このクイックスタートは、AWS への移行を予定しているか、AWS ですでに稼働状態にあり、また、独自の Chef Server インフラストラクチャをデプロイして管理したいと考えているお客様を対象としています。さらに、このガイドの目的は、製品に関する事前の経験がなくても、Chef の使用を開始できるようにすることです。

このクイックスタートは、Chef Server AMI の起動を自動化し、Chef Server の初期設定を実行し、Chef管理者ユーザーアカウントを作成して、インターネット上および Amazon Virtual Private Cloud (AmazonVPC) 内の HTTPS アクセスを有効にします。Chef を初めて使用する場合は、オプションの Chef ワークステーションとマネージドノードを含めることができます。このガイドに含まれるチュートリアルに従うことで、Chef ワークステーションの設定、クックブックの作成とアップロード、Knife (インフラストラクチャコンポーネントの管理に役立つ Chef コマンドラインツール) による EC2 インスタンスのブートストラップの方法がわかります。

コストとライセンスこのクイックスタートリファレンスデプロイの実行中に使用した AWS サービスのコストは、お客様が負担します。クイックスタートを使用しても追加コストは発生しません。このガイドの発行時点で、デフォルト設定のクイックスタートの使用にかかるコストは $0.18/時です。価格は変更されることがあります。詳細については、このクイックスタートでご使用になる各 AWS サービスの料金表ページをご覧ください。

このクイックスタートは AWS Marketplace の AMI を使用するため、クイックスタートを起動する前にAWS Marketplace から Chef Server にサブスクライブする必要があります。管理するノードの数に応じて、6 つのライセンスオプションを使用できます。以下のリンクを使用して、各 Marketplace AMI のリスティングにアクセスして、EC2 インスタンスに対する時間単価の使用料金を確認できます。

• 5 ノード• 50 ノード• 100 ノード• 150 ノード• 200 ノード• 250 ノード

3

AWS での Chef Server クイックスタートリファレンスデプロイガイド

コストとライセンス

このクイックスタートによってデプロイされた Chef Server、Chef ワークステーション、ノードはデフォルトで t2.medium インスタンスタイプを使用します。

重要

最初に AWS Marketplace から Chef Server AMI にサブスクライブせずにクイックスタートを起動しようとすると、Chef Server インスタンスは作成されず、スタックの作成は失敗し、ロールバックされます。

4

AWS での Chef Server クイックスタートリファレンスデプロイガイド

アーキテクチャこのクイックスタートをデフォルトパラメータでデプロイすると、AWS クラウドに以下の Chef Server 環境が構築されます。

5

AWS での Chef Server クイックスタートリファレンスデプロイガイド

6

AWS での Chef Server クイックスタートリファレンスデプロイガイド

AWS のサービス

図 1: AWS での Chef Server のクイックスタートアーキテクチャ

 

このクイックスタートによってデプロイされるリソース (図 1) は以下のように使用されます。

• Amazon VPC がスタックの起動時に選択したリージョンに作成されます。1 つのパブリック AmazonVPC サブネットが最初のアベイラビリティーゾーンに作成されます。

• Chef Server が VPC サブネットにデプロイされます。Elastic IP アドレス (EIP) が割り当てられ、インスタンスに関連付けられます。インスタンスの起動中に、Chef Server がブートストラップされ、marketplace-setup コマンドが実行されてサーバーが設定されます。marketplace-setup に必要な値はスタックの起動時に AWS CloudFormation パラメータで渡します。

• Microsoft Windows Server で実行される Chef ワークステーションが VPC サブネットにデプロイされます。このサーバーにはパブリック IP が割り当てられており、リモートデスクトッププロトコル (RDP)を使用してインターネット経由でアクセスできます。Git と Chef Development Kit (Chef DK) の両方がAWS CloudFormation ブートストラッププロセスによってこのマシンに自動的にインストールされます。この Chef ワークステーションはオプションです。代わりに、独自のオンプレミス環境内のワークステーションを使用することもできます。このクイックスタートでは、Chef ワークステーション用にWindows Server が使用されます。Windows には、Chef Client ツールのグラフィカルユーザーインターフェイスと ウェブベースのマネジメントコンソールが用意されているためです。ただし、サポートされているオペレーティングシステムを独自の Chef ワークステーション用に自由に使用できます。

• 1 つの Ubuntu Server ノードが VPC サブネットにデプロイされます。Chef を AWS にデプロイしたら、このガイドのチュートリアルに従って、ワークステーション上のローカル Git リポジトリ (Chef リポジトリ) を設定し、Chef Server にクックブックを作成してアップロードします。その後、ノードをブートストラップし、クックブックを実行して基本ウェブサーバーを設定します。Chef ワークステーションと同様に、このノードはオプションです。Chef Server を AWS で実行することで、AWS にデプロイする他のノードや、オンプレミスデータセンターにあるノードを管理できます。

AWS のサービスこのクイックスタートで使用される AWS の主要コンポーネントには、次の AWS サービスが含まれます(AWS を初めて利用する場合は、AWS ドキュメントの「はじめに」セクションを参照してください)。

• Amazon VPC – Amazon Virtual Private Cloud (Amazon VPC) サービスは、AWS クラウドの隔離されたプライベートなセクションをプロビジョニングし、定義した仮想ネットワークで AWS サービスや他のリソースを起動できるようにします。独自の IP アドレス範囲の選択、サブネットの作成、ルートテーブル、ネットワークゲートウェイの設定など、仮想ネットワーク環境全体をお客様がコントロールできます。

• Amazon EC2 – Amazon Elastic Compute Cloud (Amazon EC2) サービスは、様々なオペレーティングシステムで仮想マシンインスタンスを起動できるようにします。既存の Amazon マシンイメージ (AMI) から選択することも、独自の仮想マシンイメージをインポートすることもできます。

• AWS Marketplace - AWS Marketplace は、AWS で実行されるソフトウェアを販売または購入できるオンラインストアです。AWS Marketplace は、Amazon DevPay や AWS Partner Network (APN) などのプログラムを補完するものです。

7

AWS での Chef Server クイックスタートリファレンスデプロイガイド

従量制料金と一括請求

AWS での Chef のユースケースとメリット

Chef Server を AWS で実行すると、以下のセクションで説明しているように、料金、自動化、リソース管理などの面でメリットを得られます。

従量制料金と一括請求Chef Server を Amazon EC2 で実行すると、時間単価請求を活用し、使用した分だけを支払うことができます。このクイックスタートと Marketplace AMI を使用すると、サポートが必要なノードの数を選択できます。Chef Server のライセンスコストは、インスタンスを実行するための時間単価料金に含まれます。AWS でインフラストラクチャをすでに運用している場合、またはワークロードを AWS に移行中である場合は、このクイックスタートまたは AWS Marketplace を通じて Chef Server AMI を起動することで、Chef と AWS のコストを毎月 1 回の請求にまとめることができます。

ハイブリッドデプロイオンプレミスとクラウド内の両方でサーバーを管理している場合、Chef はハイブリッドデプロイの自動化を完全にサポートできます。Amazon EC2 で実行されている Chef Server は、他の EC2 インスタンスや、独自のデータセンターで実行されているサーバーで使用できます。このクイックスタートにより、ChefServer はインターネットにアクセス可能になり、自動ハイブリッドデプロイがすぐにサポートされます。

AWS リソース管理Chef には AWS リソースの管理する機能があります。統合された 1 つのツールを使用してインフラストラクチャ全体を管理する場合は、EC2 インスタンスを直接管理できるほか、クックブックを活用してその他のリソース (セキュリティグループ、ロードバランサー、Amazon Elastic Block Store (Amazon EBS) ボリューム、Elastic IP アドレス (EIP)、タグなど) を管理できます。Chef Supermarket で Chef の aws クックブック を参照してください。このクックブックは、Amazon EC2 API 内の AWS コンポーネントおよび製品を設定、管理するためのライブラリ、リソース、プロバイダーが用意されています。

AWS CloudFormation との統合Chef を使用すると、Amazon EC2 インスタンスへのソフトウェアアプリケーションのデプロイを自動化できます。デプロイのために手動でさまざまなスクリプトを作成して実行する必要がなくなります。Chef とAWS CloudFormation を組み合わせることで、AWS で実行されるソフトウェアアプリケーションと AWSリソースをすべて 1 つの AWS CloudFormation テンプレートから一貫してデプロイして設定できます。詳細なチュートリアルについては、AWS が提供する『AWS CloudFormation での Chef の使用』ホワイトペーパーを参照してください。

Chef High AvailabilityChef High Availability (HA) はデプロイの単一障害点を排除できる優れた機能です。Chef HA には、Chefバックエンド間で仮想 IP アドレスと EBS ボリュームを移動できる AWS 用プラグインが含まれます。詳細については、Chef のドキュメントで「AWS での High Availability」を参照してください。

8

AWS での Chef Server クイックスタートリファレンスデプロイガイド

ここで取り上げる内容

自動デプロイこのクイックスタートに付属の AWS CloudFormation テンプレートは、AWS インフラストラクチャをブートストラップし、AWS クラウドへの Chef Server のデプロイをゼロから自動化します。このセクションの手順に従って、AWS アカウントを設定し、テンプレートをカスタマイズし、ソフトウェアをアカウントにデプロイしてください。

ここで取り上げる内容Chef Server アーキテクチャを AWS にデプロイする手順は、以下のステップで構成されます。詳細な手順については、各ステップのリンクをクリックしてください。

• ステップ 1. AWS アカウントを準備する (p. 9)• まだ AWS アカウントを持っていない場合は、サインアップしてアカウントを作成します。• スタックを AWS にデプロイするリージョンを選択します。• リージョンにキーペアを作成します。• Amazon EC2 インスタンスのアカウント制限を確認し、必要に応じて制限の引き上げをリクエストし

ます。• ステップ 2. Chef Server AMI にサブスクライブする (p. 13)

• AWS Marketplace にアクセスし、Chef AMI を見つけます。• AWS アカウントにサインインし、ライセンス条項に同意します。• 確認メールを待ちます。

• ステップ 3. スタックを起動する (p. 14)• AWS CloudFormationテンプレートを AWS アカウントに起動します。• [KeyPairName] パラメータに値を入力します。• 他のテンプレートパラメータを確認し、必要に応じて値をカスタマイズします。

ステップ 1. AWS アカウントを準備する1. AWS アカウントを取得済みでない場合は、http://aws.amazon.com で画面上の指示に従って作成しま

す。 サインアップ手順の一環として、通話呼び出しを受け取り、電話のキーパッドを用いて PIN を入力することが求められます。

2. ナビゲーションバーのリージョンセレクターを使用し、AWS に Chef Server をデプロイする AmazonEC2 リージョンを選択します。

Amazon EC2 のロケーションは、リージョンとアベイラビリティーゾーンで構成されています。リージョンは、独立した地理的領域に分散して存在します。

9

AWS での Chef Server クイックスタートリファレンスデプロイガイドステップ 1. アカウントを準備する

図 2: Amazon EC2 リージョンを選択する

ヒント

データセンターや社内ネットワークに最も近いリージョンを選択して、AWS で実行されているシステム間、および企業ネットワーク上のシステムとユーザー間のネットワークレイテンシーを削減するためにリージョンを選択することを検討します。

3. 任意のリージョンでキーペアを作成します。これを行うには、Amazon EC2 コンソールのナビゲーションペインで [Key Pairs]、[Create Key Pair] を選択し、名前を入力して [Create] を選択します。

10

AWS での Chef Server クイックスタートリファレンスデプロイガイドステップ 1. アカウントを準備する

図 3: キーペアの作成

Amazon EC2 はパブリックキー暗号を使用して、ログイン情報の暗号化と復号を行います。インスタンスにログイン可能にするには、キーペアを作成する必要があります。Windows インスタンスでは、Amazon EC2 コンソールからキーペアを使用して管理者パスワードを取得し、『Amazon ElasticCompute Cloud ユーザーガイド』の「手順」で説明しているように、リモートデスクトッププロトコル (RDP) を使用してログインします。Linux では、キーペアを使用して SSH ログインを認証します。

4. 必要に応じて、Amazon EC2 t2.medium インスタンスタイプを求めて、サービス制限の引き上げをリクエストします。これを行うには、AWS サポートセンターで、[Create Case]、[Service LimitIncrease]、[EC2 instances] の順に選択し、上限緩和フォームのフィールドに入力します。現在のデフォルトの制限は 20 インスタンスです。

このインスタンスタイプを使用する既存のデプロイがすでに存在し、このリファレンスデプロイでデフォルトの制限を超えている可能性がある場合は、制限の引き上げをリクエストする必要があります。新しいサービスの上限が有効になるには、数日かかる場合があります。詳細については、『AWSドキュメント』の「Amazon EC2 サービスの制限」を参照してください。

11

AWS での Chef Server クイックスタートリファレンスデプロイガイドステップ 1. アカウントを準備する

図 4: サービスの上限緩和の申請

12

AWS での Chef Server クイックスタートリファレンスデプロイガイド

ステップ 2. Chef Server AMI にサブスクライブする

ステップ 2. Chef Server AMI にサブスクライブする1. AWS Marketplace (https://aws.amazon.com/marketplace) にアクセスし、お客様の環境に固有のノー

ド数をサポートする Chef Server AMI のバージョンを選択します。この例では、5 つの無料ノードを含む Chef Server を選択します。

図 5: Chef Server AMI の選択2. AWS アカウントにサインインします。AMI の [Manual Launch] オプションを選択してから、[Accept

Terms] を選択します。

13

AWS での Chef Server クイックスタートリファレンスデプロイガイド

ステップ 3. スタックを起動する

図 6: Chef Server AMI の契約条項への同意

契約条項に同意すると、しばらくしてサブスクリプションが完了するという通知が届きます。

図 7: Chef Server AMI サブスクリプションの確認3. このソフトウェアを AWS で使用できることを通知する AWS Marketplace からの確認メールを待ちま

す。この確認を受け取ったら、Chef スタックを起動する準備が整いました。

ステップ 3. Chef スタックを起動するこの自動化 AWS CloudFormation テンプレートは Chef Server を Amazon VPC にデプロイします。スタックを起動する前に、前の手順を完了し、AWS Marketplace で Chef Server AMI にサブスクライブしたことを確認してください。

14

AWS での Chef Server クイックスタートリファレンスデプロイガイド

ステップ 3. スタックを起動する

1. AWS CloudFormation テンプレートを AWS アカウントに起動します。

テンプレートは、デフォルトで 米国西部 (オレゴン) リージョンで起動されます。ナビゲーションバーのリージョンセレクターを使用することで、リージョンを変更できます。

このスタックの作成には約 35 分かかります。

Note

このクイックスタートリファレンスデプロイの実行中に使用した AWS サービスのコストは、お客様が負担します。このクイックスタートを使用しても追加コストは発生しません。このガイドの発行時点で、デフォルト設定のクイックスタートの使用にかかるコストは 1 時間あたり約 0.18 USD です。また、初期デプロイは約 0.18 USD で完了できます。料金は変更されることがあります。詳細については、このクイックスタートでご使用になる各 AWSサービスの料金表ページをご覧ください。

テンプレートをダウンロードし、実装の開始点として使用することもできます。2. [Select Template] ページで、AWS CloudFormation テンプレートのデフォルト URL をそのままにし、

[Next] を選択します。3. [Specify Details] ページで、テンプレートのパラメータを確認します。次の表にこれらのオプションの

説明を示します。

KeyPairName および AdminPassword パラメータの値を入力します。テンプレートの他のすべてのパラメータには、カスタマイズ可能なデフォルト値が設定されています。

パラメータ デフォルト値 説明

KeyPairName 入入入入 パブリック/プライベートキーペアを指定することで、起動後にインスタンスに安全に接続できます。AWS アカウントを作成した際に、指定したリージョンで作成したキーペアです

AdminEmailAddress [email protected] Chef 管理者の E メールアドレス。

AdminPassword 入入入入 Chef ワークステーションとマネジメントコンソールにサインインするための "chefadmin"ユーザーのパスワード。これは、8 文字以上の複雑なパスワードであることが必要です。

ChefNodes 5 サポートするノードの数 (5 〜250) を選択します。

IncludeDemoInstances true Chef ワークステーションとデモノードを含めるには、デフォルト値をそのままにします。Chef Server のみをデプロ

15

AWS での Chef Server クイックスタートリファレンスデプロイガイド

ステップ 3. スタックを起動する

パラメータ デフォルト値 説明イするには、このパラメータをfalse に設定します。

RemoteAdminCIDR 入入入入 SSH および RDP アクセス用のCIDR ブロックまたは IP。この値は信頼された CIDR ブロックに設定することをお勧めします。

SubnetCIDR 10.0.0.0/19 サブネット CIDR の CIDR ブロック。

VPCCIDR 10.0.0.0/16 Amazon VPC の CIDR ブロック。

Note

テンプレートをダウンロードして編集し、固有のデプロイシナリオに基づいた独自のパラメータを作成することもできます。

4. [Options] ページでは、スタック内のリソースのタグ (キー値のペア) を指定し、追加オプションを設定できます。終了したら、[Next] を選択します。

5. [Review] ページで、テンプレート設定を確認して確定します。6. [Create] を選択してスタックをデプロイします。7. スタックの状態をモニタリングします。ステータスが [CREATE_COMPLETE] と表示されたら、Chef

Server は準備完了です。

16

AWS での Chef Server クイックスタートリファレンスデプロイガイド

ワークステーションと Chef リポジトリの設定

Chef ノードの設定IncludeDemoInstances パラメータのデフォルト設定を選択した場合は、このチュートリアルに従ってChef Server の設定をテストできます。このセクションでは、Chef ワークステーションの設定を完了し、クックブックを作成し、ノードをブートストラップして、設定が適用されたことを確認する方法について説明します。

ワークステーションと Chef リポジトリの設定1. リモートデスクトッププロトコル (RDP) クライアントを使用して、Chef ワークステーションに接続

します。Amazon EC2 コンソールで、ChefWorkstation という名前のインスタンスのパブリック DNS名または IP を取得できます。chefadmin ユーザー名と、「ステップ 3 (p. 14)」でスタックを起動したときに指定したパスワードを使用します。

2. デスクトップで、Chef Development Kit のコンテキスト (右クリック) メニューを開き、[Run asadministrator] を選択します。

17

AWS での Chef Server クイックスタートリファレンスデプロイガイド

ワークステーションと Chef リポジトリの設定

図 8: デスクトップからの Chef Development Kit (ChefDK) の起動

これにより ChefDK コンソールが起動します。このコンソールは Windows PowerShell を介して実行されます。

図 9: ChefDK コンソール3. プロンプトが表示されたら、ドライブ C のルートに変更します。

CD c:\

4. 以下のコマンドを実行して、Chef リポジトリを生成します。これは、クックブックの保存とバージョニングに使用される Git リポジトリになります。

chef generate repo chef-repo

5. Amazon EC2 コンソール (ec2-x-x-x-x.compute-1.amazonaws.com など) で、[ChefServer] としてタグ付けされたインスタンスからパブリック DNS 名を取得します。ワークステーションにインストールされている Google Chrome ウェブブラウザを使用して Chef マネジメントコンソールに移動します。アドレスバーに「https://」、続いて Chef Server の DNS 名を追加する必要があります。chefadmin ユーザー名と、「ステップ 3 (p. 14)」で AWS CloudFormation スタックを起動したときに指定したパスワードを使用して、このサイトにログインします。

18

AWS での Chef Server クイックスタートリファレンスデプロイガイド

ワークステーションと Chef リポジトリの設定

図 10: Chef マネジメントコンソールへのログイン6. 上部のツールバーから組織名 (aws) を選択し、リストから [Manage Organizations] を選択します。

図 11: Chef 組織の管理7. 組織名を強調表示します。右上の歯車アイコンを選択し、[Starter Kit] を選択します。

図 12: Chef Starter Kit のダウンロード8. [Download Starter Kit] を選択し、確認ボックスで [Proceed] を選択します。

図 13: ダウンロードの続行9. ChefDK コンソールに戻り、以下の PowerShell コマンドを実行して Chef Starter Kit を解凍します。

アーカイブを別の場所にダウンロードした場合は、必要に応じてソースパスを更新します。

19

AWS での Chef Server クイックスタートリファレンスデプロイガイド

クックブックとレシピの作成

$source = 'C:\users\chefadmin\downloads\chef-starter.zip'$dest = 'c:\chef-starter'Expand-Archive -Path $source -DestinationPath $dest

10. 抽出した Chef Starter Kit の .chef フォルダを chef-repo フォルダのルートにコピーします。

$source = 'c:\chef-starter\chef-repo\.chef'Copy-Item -Path $source -Destination .\chef-repo -Recurse

11. ChefDK コンソールの場所を chef-repo フォルダに設定します。

CD .\chef-repo

この時点で、このディレクトリの場所からすべての knife コマンドを実行する必要があります。別の場所への切り替え (CD) を実行しないでください。実行すると、knife コマンドは失敗します。

12. knife ssl fetch コマンドを実行して、Chef Server の自己署名証明書を Chef リポジトリの信頼されたcerts フォルダに追加します。DNS 名を Chef Server のパブリック DNS 名に置き換えます。

knife ssl fetch https://ec2-x-x-x-x.compute-1.amazonaws.com

本番稼働用環境では、自己署名証明書を、信頼された認証機関 (CA) から発行された証明書に置き換えることができます。

クックブックとレシピの作成Chef ワークステーションが完全に設定されたところで、クックブックを作成する準備が整いました。

1. ChefDK コンソールで、ウェブサーバー用に webserver という名前のクックブックを作成します。

knife cookbook create webserver

2. クックブックを設定するには、このクイックスタートに付属のサンプルファイルを使用できます。付属のレシピを新しいクックブックにコピーします。

$source = 'c:\cfn\downloads\default.rb'$dest = 'c:\chef-repo\cookbooks\webserver\recipes'Copy-Item -Path $source -Destination $dest

3. 基本的なデフォルトのウェブページを webserver クックブックにコピーします。このファイルは、ノードの設定後、ウェブサーバーに移動する訪問者に "hello world" メッセージを表示するために使用されます。

$source = 'c:\cfn\downloads\index.html'$dest = 'c:\chef-repo\cookbooks\webserver\files'Copy-Item -Path $source -Destination $dest

20

AWS での Chef Server クイックスタートリファレンスデプロイガイド

クックブックとレシピの作成

4. レシピファイルを Notepad++ などのテキストエディタで開き、コードを確認します。レシピには、ノードをウェブサーバーとして設定するために実行される一連のリソースが定義されています。

図 14: webserver レシピ

図 14 のコードについては、以下の点に注意してください。

• 12 行目 - execute "resource" は 1 つのコマンド (この例では apt-get update コマンド) を実行します。このコマンドは、パッケージリストをダウンロードし、パッケージの最新バージョンとそれらの依存関係で更新します。

• 18 行目 - package "resource" は、ノードで該当するパッケージマネージャーを使用して、パッケージに対して指定されたアクションを実行します。この例では、Apache 2.0 ウェブサーバーをインストールします。

• 24 行目 - service "resource" は、Apache サービスをそのインストール後に起動し、そのサービスに対して自動起動を有効にします。このクイックスタートによって起動される Linux ディストリビューションは、すでに自動起動が有効になっていますが、ここでは完全を期すために指定してます。必要に応じて、別のサーバーの基本設定として使用できます。

• 28 行目 – cookbook_file "resource" は、webserver クックブックの files フォルダにコピーされたindex.html ファイルをウェブサーバーにデプロイします。

ここで示しているのは、一般的な Chef リソースをいくつか使用する非常にシンプルなレシピです。クックブックの開発の詳細については、「その他のリソース (p. 26)」を参照してください。

5. クックブックを設定し終わったら、Chef Server にアップロードします。

21

AWS での Chef Server クイックスタートリファレンスデプロイガイド

ノードのブートストラップ

knife cookbook upload webserver

ノードのブートストラップ次に、knife コマンドを使用してノードをブートストラップし、webserver クックブックを含む実行リストをノードに対して実行できます。

1. knife は SSH を使用してノードとやり取りするため、AWS プライベートキーを提供する必要があります。たとえば、MyKey という名前のプライベートキーを提供する場合は、MyKey.pem ファイルを c:\chef-repo\.chef フォルダにコピーします。.chef フォルダには Chef Server の .pem ファイルもあります。Chef リポジトリにある .gitignore ファイルは .pem ファイルを Git のコミットオペレーションから除外します。

2. これで、knife bootstrap コマンドを使用してノードをブートストラップできるようになりました。Amazon EC2 コンソールで "NODE" とタグ付けされた Ubuntu Server のプライベート IP アドレスを取得します。以下のコマンドを実行して (x.x.x.x をノードのプライベート IP に、mykey.pem を実際の .pem ファイルの名前に置き換える)、ノードをブートストラップし、実行リストを実行します。

Note

knife bootstrap コマンドは、ChefDK コンソールで 1 行に入力する必要があります。読みやすくするために、ここでは分割しています。

knife bootstrap x.x.x.x --ssh-user ubuntu --sudo --identity-file ./.chef/mykey.pem --run-list webserver

コマンドの実行後、ノードがブートストラップされ、実行リストが実行されて、ノードがウェブサーバーとして設定されます。その時点で、ウェブブラウザでノードの IP アドレスに移動できます。これにより、設定が正常に適用されたことを確認する、"hello world" メッセージが表示されます。

図 15: ノードのブートストラップ時の出力の確認

22

AWS での Chef Server クイックスタートリファレンスデプロイガイド

ノードのブートストラップ

Chef クライアントを定期的に実行するようにノードを設定することで、クックブックの変更や実行リストのカスタマイズなど、今後の変更を処理できます。そのためには、Chef クライアントを Cron 経由で目的の間隔で実行するようにスケジュールします。

23

AWS での Chef Server クイックスタートリファレンスデプロイガイド

セキュリティセキュリティグループは、1 つ以上のインスタンスのトラフィックを制御するファイアウォールとして機能します。インスタンスを起動するときに、1 つ以上のセキュリティグループとインスタンスを関連付けます。各セキュリティグループに対してルールを追加し、関連付けられたインスタンスに対するトラフィックを許可します。セキュリティグループのルールはいつでも変更できます。新しいルールは、セキュリティグループに関連付けられているインスタンスすべてに自動的に適用されます。

このソリューションの一部として作成されて各インスタンスに割り当てられたセキュリティグループは、アクセスが可能な限り制限されますが、Chef Server に必要なさまざまな機能へのアクセスが許可されます。デプロイが稼働状態なったら、セキュリティグループを確認して、必要に応じてアクセスをさらに制限することをお勧めします。

24

AWS での Chef Server クイックスタートリファレンスデプロイガイド

Chef

サポートChef

Chef Server AMI には、月曜日から金曜日、午前 6 時から午後 6 時 (太平洋時間) まで利用可能な高速応答サポートチャンネルが含まれ、経験豊富な DevOps エンジニアが対応します。Chef サポートチーム([email protected]) に E メールを送信できます。詳細については、Chef サポートサービスレベルアグリーメント (SLA) を参照してください。

AWSAWS クイックスタートリファレンスデプロイは、AWS のベストプラクティスに従って、完全に機能するソフトウェアを AWS クラウドにすばやくデプロイするのに役立ちます。AWS CloudFormation テンプレートによってデプロイは自動化され、ガイドによってアーキテクチャと実装について説明されます。

• AWS クイックスタートディスカッションフォーラムにフィードバックを投稿してください。• よくある質問への回答については、クイックスタートの「FAQ」を参照してください。

25

AWS での Chef Server クイックスタートリファレンスデプロイガイド

その他のリソースAWS サービス

• Amazon EC2• AWS CloudFormation• Amazon VPC• AWS OpsWorks

Chef のリソース

• AWS Marketplace での Chef• Chef の詳細• Chef Supermarket での AWS クックブック• AWS Loft でのブートキャンプ• AWS での Chef High Availability• AWS CloudFormation と Chef の統合• AWS OpsWorks での Chef のクックブックとレシピの使用

クイックスタートリファレンスデプロイ

• AWS クイックスタートのホームページ• クイックスタートデプロイガイド

26

AWS での Chef Server クイックスタートリファレンスデプロイガイド

フィードバックの送信GitHub リポジトリでは、このクイックスタートのテンプレートとスクリプトのダウンロード、コメントの投稿、および他のユーザーとのカスタマイズ内容の共有ができます。

27

AWS での Chef Server クイックスタートリファレンスデプロイガイド

ドキュメントの改訂日付 変更 場所

2015 年 12 月 初版発行 –

注意このデプロイガイドは、情報提供のみを目的としています。本書は、発行時点における AWS の現行製品と慣行を表したものであり、それらは予告なく変更されることがあります。お客様は本文書の情報および AWS 製品の使用について独自に評価する責任を負うものとします。これらの情報は、明示または黙示を問わずいかなる保証も伴うことなく、「現状のまま」提供されるものです。本文書内のいかなるものも、AWS、その関係者、サプライヤ、またはライセンサーからの保証、表明、契約的なコミットメント、条件や確約を意味するものではありません。お客様に対する AWS の責任は AWS 契約によって規定されています。また、本文書は、AWS とお客様との間の契約に属するものではなく、また、当該契約が本文書によって修正されることもありません。

28