アドベントカレンダーAWS特集CodeDeploy2015年12月14日kawaharakunio(17)62この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。はじめにこんにちは、川原です。2015』の14日目のエントリです。Beanstalk』でした。このアドベントカレンダーの企画は、普段AWSサービスについて最新のネタ・深い/細かいテーマを主に書き連ねてきたメンバーの手によって、今一度初心に返って、基本的な部分を見つめ直してみよう、解説してみようというコンセプトが含まれています。CodeDeploy』です。目次サービスの基本的な説明デプロイ先サーバーの選択方法デプロイ方法の選択AppSpecファイル(appspec.yml)によるライフサイクルイベントの制御CodeDeployと連携するサービスサービス利用のユースケースデプロイ処理の起動&管理自動化Windowsカスタムメトリックス設定処理の自動化あわせて読みたい公式情報Developers.IO関連エントリさいごにサービスの基本的な説明CodeDeployとは、ざっくり言ってしまいますと、アプリケーションを構成している「ファイル群」をステージング環境や本番環境といった「グルーピングされたサーバー群」に定められた手順で自動配置するサービスです。以下のような特徴があります。Japanデプロイ先サーバーの選択方法デプロイ先のサーバーは下記3つの定義の組み合わせによって決まります。タグの場合であれば、タグの"キー名"と"値"を指定するとそれに合致するEC2インスタンスがデプロイ先の対象となります。タグが付与されたEC2(タグのキー名と値を指定)AutoScaleグループオンプレミス環境のサーバーEC2にデプロイする場合は、だいたい以下のような作業が必要になります。詳細は公式ドキュメントのこのあたりを参照ください。AutoScaleグループのEC2についてはタグの付与は不要です。Roleに対して適切にポリシーを設定する。CodeDeployエージェントをEC2にインストールするEC2にタグを付与するオンプレミス環境のサーバーにデプロイする場合は事前に準備が必要になります。枝葉の準備作業を取り除きますと、だいたい以下のような作業が必要になります。詳細は公式ドキュメントのこのあたりを参照ください。CLIをオンプレミス環境サーバーにインストールするCodeDeployエージェントをオンプレミス環境サーバーにインストールするオンプレミス環境サーバーをCodeDeployに登録する登録したオンプレミス環境サーバーに対し(CodeDeploy上の)タグを付与するデプロイ方法の選択CodeDeployではデプロイするサーバーが複数存在した場合のデプロイ方法を選択することができます。デフォルトでは下記スライドにある3つから選択します。CLI等を使用すると、この3つ以外のデプロイ方法を定義(カスタマイズ)可能です。マネジメントコンソールからはこのカスタマイズは行えないようです1。JapanAppSpecファイル(appspec.yml)によるライフサイクルイベントの制御AppSpecとはデプロイ処理においてどのファイル(ディレクトリ)をどこに配置するかを定義し、また、ファイル配置の前後に行われるライフサイクルイベントにおいてどのような処理(スクリプト)を実行するかを定義しており、CodeDeployの処理の中核を担う重要なファイルです。ライフサイクルイベントとは、CodeDeployのデプロイ処理の最中に行われるいくつかのイベント(≒処理)です。ライフサイクルイベントは下図の流れですすみます。中央にあるInstallが実際にファイルをコピーするイベントになります。黄色の5つのイベントではユーザーが指定したスクリプトを実行させることができます。デプロイのライフサイクルイベントとは何ですか?」をご参照ください。AppSpecはYAML形式で記載します。以下は、公式ドキュメントに記載されているAppSpecファイルの例です。rootfiles:部分にはデプロイするファイル・ディレクトリのコピー元(source:)、コピー先(destination:)を記載します。毎に、実行する処理を記載していきます。AppSpecファイルの詳細については以下をご参照ください。CodeDeployにはCodeDeployと連携するサービスとその連携内容、連携に使用するスクリプトへのリンクがあります。自分が使っているサービスの有無とその連携内容を確認しておくとよいと思います。以下に上記ページに記載されている連携サービスの一覧を示します。CIサービス利用のユースケース本サービスは文字通りデプロイのためのサービスです。そのため、ユースケースとしては基本的にはアプリケーションのデプロイになります。ここでは弊社ブロクで紹介している王道のユースケースと、応用的なユースケースを紹介します。Integration:継続的インテグレーション)を行うといういわば王道的なユースケースを紹介したブログです。CIで自動化するというものです。CodeDeployでWindowsのCloudWatchカスタムメトリクス設定を自動化するこちらのブログは応用例の記事になります。CodeDeployのエージェントプログラムをファイル配置処理に活用し、通常だと自動化のハードルが少々高いWindowsのカスタムメトリックスの設定処理(パフォーマンスモニター使用版の設定処理)の自動化に成功しています。14日目のエントリ『CodeDeploy』編でした。CodeDeployは一見すると地味ですが、使いこなすと継続的なサービス提供を強力にサポートできると思います。皆さん、使いこなしていきましょう。DynamoDB編です。お楽しみに!公式ドキュメントに以下の記載がありました。リモート】クラスメソッドの会社説明会を開催しますクラスメソッドでは、AWS・AI・ビッグデータ・モバイルなどの技術職や営業のメンバーとして一緒にお仕事をする仲間を大募集しています。#cmdevio新型コロナウイルスの感染拡大を受け、本イベントを延期させていただくことになりました(開催時期未定)。お申し込みいただいた皆様には大変申し訳ございませんが、何卒ご理解いただけますようよろしくお願いいたします。AWSについてライトに色んな情報交換をしましょう。カフェ店長のオカノです。使いたいときの注意点を書きました。本が出ていたので読んでみたところよかったので紹介させていただきます。EC2)環境において、不要な踏み台サーバをなくすことができる便利なアップデートです。臼田佳祐295ワークフロー自動化OSSのn8nをAWS環境で建てて検証してみました。非常に期待できるサービスです。Fargateの勉強をしています。使ってみたい方は参考にしてください。洋介252SnowflakeがAWSの東京リージョン上で稼働するようになりました。データを日本に置けます。芳賀健232こんにちは!猫様の忠実なるしもべ、芳賀健です。Tokyoで開催されました。カフェ店長のオカノです。クラスメソッド株式会社が運営するAWS・iOS・HTML5に関する技術情報サイトです。