クックブック 101 - AWS OpsWorks

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

クックブック 101

重要

AWS OpsWorks Stacks は新規顧客を受け付けなくなりました。既存のお客様は、2024 年 5 月 26 日までは、通常どおり OpsWorks コンソール、API、CLI、および CloudFormation リソースを使用できます。その時点で廃止されます。この移行に備えて、できるだけ早くスタックを AWS Systems Manager に移行することをおすすめします。詳細については、「AWS OpsWorks Stacks サポート終了に関する FAQ」および「AWS Systems Manager アプリケーションマネージャへの AWS OpsWorks Stacks アプリケーションの移行」を参照してください。

通常、本稼働レベルの 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 ボックスと呼ばれるさまざまな環境をサポートしており、それぞれが構成されたオペレーティングシステムを表します。AWS OpsWorks スタックの対象となる環境は、Ubuntu、Amazon、または Red Hat Enterprise Linux (RHEL) ディストリビューションに基づいています。そのため、例では主に opscode-ubuntu-12.04 という Vagrant ボックスを使用します。

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

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

その他のプロバイダーの詳細については、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 を使用してレシピをテストする方法を学ぶには、どこかの時点でウォークスルーの残りを実行します。