AWS OpsWorks
ユーザーガイド (API バージョン 2013-02-18)

クックブック 101

通常、本稼働レベルの AWS OpsWorks スタックのスタックでは、ある程度のカスタマイズが必要です。多くの場合、1 つ以上のレシピ、属性ファイル、テンプレートファイルのいずれかを含むカスタム Chef クックブックを実装する必要があります。このトピックは、AWS OpsWorks スタック用のクックブック実装に関するチュートリアルの概要です。

クックブックの概要に関する簡単な説明など、AWS OpsWorks スタックでのクックブックの使用方法の詳細については、「クックブックとレシピ」を参照してください。Chef レシピを実装してテストする方法の詳細については、「Chef を利用したテスト中心のインフラストラクチャ (第 2 版) 」を参照してください。

チュートリアルの例は、2 つのセクションに分割されます。

  • クックブックの基本」では、Chef に慣れていないユーザー向けの例となるウォークスルーがまとめられています。Chef に慣れたユーザーは、このセクションを省略できます。

    この例では、パッケージのインストールやディレクトリの作成など、一般的なタスクを実行するクックブックを実装するための基本方法を説明します。プロセスを簡素化するために、仮想マシンのローカルに置かれた例の多くは VagrantTest Kitchen という 2 つの便利なツールを使用して実行します。「クックブックの基本」を開始する前に、「Vagrant と Test Kitchen」を読んで、この 2 つのツールのインストール方法と使用方法を学習してください。Test Kitchen ではまだ Windows がサポートされていないため、例はすべて Linux に当てはまるものです。それらの例を Windows に当てはめる方法は注意に示しています。

  • AWS OpsWorks スタック用のクックブックの実装」では、Windows スタック用など AWS OpsWorks スタックのレシピを実装する方法について説明します。

    また、Berkshelf を使用して外部クックブックを管理する方法などの高度なトピックについても説明しています。「クックブックの基本」で示している例などは、Chef の使用経験がないユーザー向けに作成されています。ただし、AWS OpsWorks スタックの動作は Chef Server と少し異なるため、経験豊富な Chef ユーザーも、このセクションに目を通しておくことをお勧めします。

Vagrant と Test Kitchen

Linux インスタンス用のレシピを使用する場合、Vagrant と Test Kitchen は、学習や初期の開発およびテストに非常に便利なツールです。このトピックでは、Vagrant と Test Kitchen について簡単に説明し、インストール方法を示します。さらに、このツールの基本的な使用方法を理解し習得するためのウォークスルーも含まれています。Vagrant では Windows がサポートされていますが、Test Kitchen ではサポートされていません。そのため、Linux の例のみをこれらのツール用に示しています。

トピック

Vagrant

Vagrant は、仮想マシンでコードを実行しテストするための一貫した環境を実現します。Vagrant ボックスと呼ばれる多様な環境をサポートします。各 Vagrant ボックスが、設定済みのオペレーティングシステムを表します。AWS OpsWorks スタックの対象となる環境は、Ubuntu、Amazon、または Red Hat Enterprise Linux (RHEL) ディストリビューションに基づいています。そのため、例では主に opscode-ubuntu-12.04 という Vagrant ボックスを使用します。これは、Chef 用に設定された Ubuntu 12.04 LTS システムを表します。

Vagrant は Linux、Windows、および Macintosh の各システムに対応しているため、好みのワークステーションを使用して、任意のサポート対象オペレーティングシステムにレシピを実装し、テストすることができます。この章の例は Ubuntu 12.04 LTS Linux システムで作成されていますが、その手順を Windows システムや Macintosh システム用に読み替えるのは簡単です。

基本的に、Vagrant は仮想化プロバイダー用のラッパーです。ほとんどの例では、VirtualBox プロバイダーを利用しています。VirtualBox は、Linux、Windows、および Macintosh の各システムで無料で利用することができます。システムに VirtualBox がまだインストールされていない場合、Vagrant のウォークスルーで VirtualBox のインストール手順を見ることができます。VirtualBox では Ubuntu ベースの環境を実行できますが、Amazon Linux を使用できるのは Amazon EC2 インスタンスのみであることに注意してください。ただし、VirtualBox 上の CentOS など、同様のオペレーティングシステムを実行できるため、初期段階の開発とテストに役立ちます。

その他のプロバイダーの詳細については、Vagrant のドキュメントを参照してください。特に、vagrant-aws プラグインプロバイダーを使用すると、Vagrant を Amazon EC2 インスタンスで使用できるようになります。特にこのプロバイダーは、Amazon EC2 インスタンスでしか使用できない Amazon Linux でレシピをテストする際に役立ちます。vagrant-aws プロバイダーは無料ですが、AWS アカウントが必要です。さらに、使用する AWS リソースの費用を支払う必要があります。

次に、Vagrant の「使用開始ウォークスルー」を参照してください。このウォークスルーでは、ワークステーションに Vagrant をインストールする方法と、Vagrant の基本的な使用方法を見ることができます。この章の例では Git リポジトリを使用しないため、必要に応じて、ウォークスルーの関連する部分を省略してもかまいません。

Test Kitchen

Test Kitchen は、Vagrant におけるクックブックの実行とテストのプロセスを簡略化します。実際のところ、Vagrant を直接使用する必要はほとんどありません。Test Kitchen は、以下のような最も一般的なタスクを実行します。

  • Vagrant でのインスタンスの起動。

  • インスタンスへのクックブックの転送。

  • インスタンスでのクックブックのレシピの実行。

  • インスタンスでのクックブックのレシピのテスト。

  • SSH を使用した、インスタンスへのログイン。

Test Kitchen gem を直接インストールする代わりに、Chef DK をインストールすることをお勧めします。このパッケージには Chef 本体に加えて、Test Kitchen、BerkshelfChefSpec、さらにこれ以外の便利なツールが数種類含まれています。

次に、Test Kitchen の「使用開始ウォークスルー」を参照してください。ここでは、Test Kitchen を使用してレシピを実行し、テストするための基本的な方法が紹介されています。

注記

この章の例では、レシピを実行するための便利な方法として Test Kitchen を使用しています。例の実行に必要な情報は「手動確認」セクションにすべて記載されているため、このセクションを終了した後で「使用開始ウォークスルー」を中止してもかまいません。ただし、基本的に Test Kitchen は Bash 自動化テストシステム (BATS) などのテストフレームワークをサポートするテスト用プラットフォームです。Test Kitchen を使用してレシピをテストする方法を学ぶには、どこかの時点でウォークスルーの残りを実行します。

このページの内容: