AWS-OpsWorks

AWS OpsWorks for Chef Automateを触ってみる(1)

概要

こんにちは、テクニカルサポートの牛山です。
今回は、何かと気になるAWSのDevOpsについて記事を書いて行こうと思います。

記事量が多いため分割して書いていきますので今回は第一回目となります。
Chef Automateサーバを作成し、スターターキットおよび Chef Automate ダッシュボードの認証情報をダウンロードするところまで解説していきます。

前置き

本題へ入る前にAWSにおける「AWS OpsWorks for Chef Automate」がどの様な位置づけにありどんなことができるのか説明します。

  • 大枠として「Infrastructure as Code」(インフラをコードに模して管理していく手法)の中に下記4つのサービスが該当します。
    1. AWS CloudFormation(インフラやアプリケーションリソースをモデル化しテンプレートベースでデプロイ)
    2. AWS OpsWorks(サーバの設定、管理、デプロイの自動化)
    3. AWS Systems Manager(OSのパッチ適用やWindows、LinuxといたOS設定の自動化)
    4. AWS Config(フルマネージド型の構成履歴や構成変更通知機能を備えた監査サービス)

今回取り扱う「AWS OpsWorks」以外の詳細な説明は割愛しますがご了承ください。

  • AWS OpsWorksにはさらに細かく下記3つの構成管理サービスが存在します。
    1. AWS OpsWorks for Chef Automate
      設定管理、コンプライアンスとセキュリティ、継続的デプロイを目的とした完全マネージド型の設定管理サービスとなり、Chefまたコマンドラインツール(Knife等)で管理できます。
    2. AWS OpsWorks for Puppet Enterprise
      1と同様にChefで管理するのではなく、Puppetとばれる別の構成管理ツールを使用しサーバの設定、管理、プロビジョニングの自動化を行うことができます。
    3. AWS OpsWorks スタック
      完全マネージド型ではなくオンプレミス上でChefを用いた複雑なアプリケーションインストール・管理の自動化を行うことができ1つのサーバにChefサーバ&クライアントが入り単体でアプリケーション管理をしたいときに役立ちます。
      ※Chefの完全互換性はなくなるので注意が必要です。

以上で大体どんなことができるのか分かったと思うので実際にChef Automateサーバを作成していこうと思います。

手順

Chef Automateサーバの作成

AWSマネジメントコンソールのサービス検索欄に「OpsWorks」を入力しAWS OpsWorksのトップ画面にいきます。
その後、画面中央にあります「Go to OpsWorks for Chef Automate」ボタン押すと「Create Chef Automate server」というChef Automateサーバを起動する項目が出てきますのでクリックします。
 

Chef Automateサーバの設定

  • 名前、地域、種類を設定する

    • Chef Automate server name
      ここでは仮に「MyFirstAutomate」という名前でサーバ名を設定します。

    • Chef Automate server region
      初期状態では「US East (N. Virginia)」地域になっていますので ,
      「Asia Pacific (Tokyo)」東京リージョンに変更します。

    • EC2 instance type
      ここではChef Automateサーバが稼働する為のインスタンスを用意します。
      1番料金の低い「m5.large」を選択します。(0.124USD/時間課金されます。)
      日本円に換算して1時間あたり「23円です。」
      料金表
       
      NEXTを押しつぎの設定へ遷移します。


 

  • サーバーのEC2インスタンスの資格情報とサーバーのエンドポイントを設定

    • Select an SSH key
      初期状態では「Use an existing EC2 key pair」(ssh接続しない)になっていますので 「Use an existing EC2 key pair」に変更します。
      ここでは「my_chef_automate_key」を選択しますが事前に秘密鍵を作成していないと項目に出てこないので注意してください。
      Amazon EC2 を使用してキーペアを作成する

    • Specify server endpoint
      ここでは、サーバに接続する為のエンドポイント名をします。
      サーバ独自のカスタムドメインを使用しない場合は、デフォルトの「Use an automatically-generated endpoint」を選択します。
       
       
      NEXTを押しつぎの設定へ遷移します。


 

  • Network and security
    Chef Automateサーバーを起動した後、ネットワークとセキュリティの設定を変更することはできないので注意。

    • VPC・Subnet
      VPCおよびSubnetは特段設定していない場合、デフォルト状態で構いません。

    • Associate Public IP Address
      パブリック IP の自動割り当てはパブリックサブネット上で有効にする必要があるのでデフォルト状態の「Yes」を選択します。

    • Security groups
      既存セキュリティグループを選択するか、新しくセキュリティグループを作成するかを選べますがここでは既存のものを選択しています。
      既存のものを選択する場合、443(https)と22(ssh)のポートが開放されている必要があります。
      デフォルトの場合、IPアドレス範囲が前開放されているのでChef Automateサーバーでは制限することを推奨しています。

    • Service role
      Chef Automateサーバで必要となるロールがない場合、自動的に作成を行う「Generate a new one」を選択します。(デフォルト)
      ※AWS CloudFormation、Amazon EC2、Amazon EC2 Simple Systems Manager、Amazon S3でアクションを実行するためのIAMサービス・ロールを作成するために、お客様の許可が必要です

    • Instance profile
      こちらもChef Automateサーバで必要となるインスタンスプロフィールがない場合、自動的に作成を行う「Generate a new one」を選択します。(デフォルト)
      ※Amazon EC2 Simple Systems Manager (SSM)を使用してChefサーバーと通信するためのインスタンスプロファイルを作成するために、お客様の許可が必要です。


 

  • System maintenance
    AWS OpsWorksは、Chef Automateのマイナーバージョンまたはセキュリティパッケージのアップデートを、ここで指定した時間帯と曜日にインストールします。

    • Start day・Start time (UTC)
      システムメンテナンス中にサーバがオフラインになることを想定してサービス影響が低い時間帯および曜日を選択するようにします。
  • Automated backup
    AWS OpsWorksでは、Chef Automateサーバのバックアップ方法として、手動と自動の2つの方法をサポートしています。バックアップはAmazon S3バケットにアップロードされます。Chef Automateサーバーをリストアする必要がある場合は、選択したバックアップを適用することでリストアすることができます。

    • Enable automated backup
    • Frequency
    • Start time (UTC)
    • Number of generations to keep

    これらの項目は、バックアップ自動取得有無、取得タイミング、保持する世代数を指定する箇所となりますのでそれぞれ設定すれば大丈夫です。

  • Tags
    タグを使用すると、AWS リソースを目的、所有者、環境などさまざまな方法で分類することができます。
    ここでは仮にkeyをstage、valueをdevelopとして設定します。
     
     
    NEXTを押しつぎの設定へ遷移します。


 

  • レビュー
    最後に確認として今まで設定した内容が一覧で表示されますので内容に問題が無ければ、Launchをクリックしてサーバを作成します。

スターターキットおよび Chef Automate ダッシュボードの認証情報をダウンロード

Launch後、Chef Automate ダッシュボードに遷移しますのでサーバを作成している間にダウンロードしておきます。
※Chef Automateサーバがオンラインになるまでの、このタイミングしか認証情報は取得できないので要注意
 

※画像中央青いボタン2つをクリックすることでダウンロード可能です。
 ダウンロードすると下記2つが手に入ります。

  • myfirstautomate_credentials.csv
  • myfirstautomate_starter_kit.zip
    これらは無くさないように大切に保管するようにしてください。
     
    ここまでで一通りの設定作業は完了しましたので次回は、「管理するノードを追加する事前準備」から記事を書いていきたいと思っておりますのでお楽しみに。

まとめ

普段、余り触らないDevOpsの部分について記事を執筆していく中で学びが多くありもっと極めていこうと思うキッカケになったように思いました。
これからChef Automateを触る機会あれば参考にしていただけると幸いです。