Presentation Title Here

Similar documents
PowerPoint Presentation

Presentation Title Here

サーバーレスアプリケーションのための CI/CD パイプライン構築 

Presentation Title Here

Presentation Title Here

Presentation Title Here

AWS Deck Template

AWS Deck Template

Presentation Title Here

PowerPoint プレゼンテーション

スピーカースライド作成前の確認シート例

開発者向けクラウドサービスを活用したリッチな Web/ モバイル アプリケーションの構築手法 杉達也 Fusion Middleware 事業統括本部担当ディレクター [2013 年 4 月 9 日 ] [ 東京 ]

Startup_on_AWS_usecases_StartupDay

AWS CodePipeline​ 内に位置している - ユーザーガイド

PowerPoint Presentation

PowerPoint プレゼンテーション

よくある問題を解決する~ 5 分でそのままつかえるソリューション by AWS ソリューションズビルダチーム

AWS 認定 DevOps エンジニア - プロフェッショナルサンプル試験問題 1) あなたは Amazon EBS ボリュームを使用する Amazon EC2 上で実行されているアプリケーションサーバ ー向けに 自動データバックアップソリューションを導入する業務を担当しています 単一障害点を回避し

PowerPoint Presentation

_AWS-Blackbelt-Organizations

PowerPoint プレゼンテーション

2D/3D CAD データ管理導入手法実践セミナー Autodesk Vault 最新バージョン情報 Presenter Name 2013 年 4 月 2013 Autodesk

C# 開発者必見、Docker コンテナへの継続的デプロイメント on AWS ~CodeCommit, CodeBuild, CodePipeline, CloudFormation, ECR, ECS を活用した CI/CD ~

Symantec AntiVirus の設定

SIOS Protection Suite for Linux v9.3.2 AWS Direct Connect 接続クイックスタートガイド 2019 年 4 月

AWS Client VPN - ユーザーガイド

OpenAM 9.5 インストールガイド オープンソース ソリューション テクノロジ ( 株 ) 更新日 : 2013 年 7 月 19 日 リビジョン : 1.8

クックパッドのテスト自動化

AWS 上でのサーバーレスアーキテクチャ 入 門 AWS Black Belt Online Seminar 2016 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト清 水崇之 , Amazon Web Services, Inc. or its Aff

Agenda 1. 今回のバージョンアップについて a. バージョンアップ概要 b. バージョンアップ目的 c. 新バージョンのシステム要件に関する注意事項 d. 現行バージョンのサポート期間 2. 対応プラットフォームの追加 3. 新機能の追加および機能強化 2

使用する前に

利用者

目次 1. はじめに 本書対象者 PALRO のアプリケーションについて Ubuntu 8.04LTS の入手について Linux 上での開発環境の構築 事前準備 Ubuntu のインストール..

Microsoft Visual Studio 2010 Professional Data Sheet

PowerPoint Presentation

Microsoft PowerPoint - AWS-RatesSystem-JP_ pptx

内容環境... 3 対応 OS の変更... 3 関連アプリケーションの追加... 4 機能追加... 5 グラフ機能... 5 稼働率... 8 サービス一括削除 自動復旧エスカレーションコマンド AWS カスタムメトリックス監視 NRPE 任意監視... 11

Oracle Enterprise Managerシステム監視プラグイン・インストレーション・ガイドfor Juniper Networks NetScreen Firewall, 10gリリース2(10.2)

新OS使用時の留意事項

Slide 1

MotionBoard Ver. 5.6 パッチ適用手順書

そこが知りたい!AWSクラウドのセキュリティ

Presentation Title Here

Oracle SOA Suite 11gコンポジットに対するSOASchedulerの構成

AWS のコンテナ管理入門(Amazon EC2 Conatainer Service)

============================================================

AWS Deck Template

ArcGIS Runtime SDK for WPF インストールガイド (v10.2.5)

PowerPoint Presentation

目次 1. 本書の役割 Windows Agent サポート OS とエディション サポート言語 Agent 稼働前提条件 Azure SDK リリース済み Windows Agent のサポート

FUJITSU Cloud Service for OSS 「コンテナサービス」 ご紹介資料

Slide 1

Red Hat Enterprise Linuxのcron(8)デーモンにデフォルト定義されたtmpwatch命令の動作による、WebOTXのトラブル対処方法

はじめに このドキュメントではftServerに関する障害調査を行う際に 必要となるログ データの取得方法を説明しています ログ データの取得には 初期解析用のデータの取得方法と 詳細な調査を行うときのデータ取得方法があります 特別な理由でOS 側のログが必要となった場合には RHELログの取得につ

1. 開発ツールの概要 1.1 OSS の開発ツール本書では OSS( オープンソースソフトウェア ) の開発ツールを使用します 一般に OSS は営利企業ではない特定のグループが開発するソフトウェアで ソースコードが公開されており無償で使用できます OSS は誰でも開発に参加できますが 大規模な

はじめに AWS Glueは現在Preview中のサービスです 本資料に記載した内容はGA 正式リリース ま でに予告なく変更される可能性があります Twitterのハッシュタグは です 2

Cisco ViewMail for Microsoft Outlook クイックスタートガイド (リリース 8.5 以降)

インテル(R) Visual Fortran コンパイラ 10.0

【AWS Tech 再演】Amazon EC2 Systems Manager によるハイブリッド環境の管理

サーバセキュリティサービスアップグレード手順書 Deep Security 9.6SP1 (Windows) NEC 第 1 版 2017/08/23

Agenda! 事前準備

更新履歴 Document No. Date Comments 次 D JP 2017/05/01 初版 1. 概要 はじめに 情報源 A10 Lightning Application Delivery Service(ADS) 導 構成 動作概要 構築概要 2. 事

CLUSTERPROXSingleServerSafe SingleServerSafe ご紹介 2007 年 10 月

CLUSTERPRO MC ProcessSaver 2.1 for Windows 構築ガイド 2016(Mar) NEC Corporation はじめに 責任範囲 適用範囲 概要 事前準備 クラスタ設定

PowerPoint プレゼンテーション

PowerPoint Presentation

Presentation Title Here

Slide 1

TeX LiveのCIテスティング

SAMBA Stunnel(Windows) 編 1. インストール 1 セキュア SAMBA の URL にアクセスし ログインを行います xxx 部分は会社様によって異なります xxxxx 2 Windows 版ダウンロード ボ

クラウドネイティブにセキュリティを 活用する!API を連携して実装する方法

Presentation Title Here

PowerPoint Presentation

iNFUSE インフューズ

セットアップカード

28th Embarcadero Developer Camp

KDDI Smart Mobile Safety Manager ( 基本プラン /4G LTE ケータイプラン ) オプション機能説明 2018 年 2 月 27 日現在 KDDI 株式会社 ver Copyright 2018 KDDI Corporation. All Rights

Elastic MapReduce bootcamp

Windows Phone 用 Cisco AnyConnect セキュアモビリティクライ アントユーザガイド(リリース 4.1.x)

ドキュメント情報... 2 グローバルサイトマネージャー (GSM)... 3 コンソール概要... 3 サイト情報の表示... 4 サイトの作成および編集... 6 管理者の追加... 8 管理者の編集...10 GSM アカウント情報の表示...13 ポリシーの作成...13 ポリシーの自動イン

CLUSTERPRO MC ProcessSaver 1.0 for Windows 構築ガイド 2012(Sep) NEC Corporation はじめに責任範囲適用範囲概要事前準備クラスタ設定

KSforWindowsServerのご紹介

PowerPoint Presentation

システム要件 Trend Micro Safe Lock 2.0 SP1 Trend Micro Safe Lock 2.0 SP1 エージェントのシステム要件 OS Client OS Server OS Windows 2000 (SP4) [Professional] (32bit) Wind

PowerPoint プレゼンテーション

開発ツールのコラボレーション機能を検証する

Oracle Enterprise Manager 10g System Monitoring Plug-In for IBM WebSphere Application Server

Oracle Un お問合せ : Oracle Data Integrator 11g: データ統合設定と管理 期間 ( 標準日数 ):5 コースの概要 Oracle Data Integratorは すべてのデータ統合要件 ( 大量の高パフォーマンス バッチ ローブンの統合プロセスおよ

SCTM12.0_Product Release Notice_V1

IPM Release 2.6 へのアップグ レード

PowerPoint Presentation

Presentation Title Here

機能紹介:コンテキスト分析エンジン

Oracle Cloud Adapter for Oracle RightNow Cloud Service

Trend Micro Safe Lock 2.0 Patch1 管理コンソールのシステム要件 OS Windows XP (SP2/SP3) [Professional] Windows 7 (SP なし /SP1) [Professional / Enterprise / Ultimate] W

クラウド内の Java - 動画スクリプト 皆さん こんにちは Steve Perry です 私たちが作成した人事アプリケーションを覚えていますか? 今回は そのアプリケーションをクラウド内で実行しましょう コードは GitHub の

Microsoft Word - XOOPS インストールマニュアルv12.doc

はじめにお読みくださいfor HP Smart Zero Client v5.0

Title Slide with Name

ソフトウェアエンジニアリング - 機能 #54

Transcription:

AWS Black Belt Online Seminar Developer Tools AWS Code Series Part 2 AWS CodeDeploy AWS CodePipeline AWS CodeStar 編 アマゾンウェブサービスジャパン株式会社ソリューションアーキテクト福井厚 2017.06.28 2017, Amazon Web Services, Inc. or its affiliates. All rights reserved.

自己紹介 名前 福井厚 ( ふくいあつし )fatsushi@ 所属 アマゾンウェブサービスジャパン株式会社 技術統括本部エンタープライズソリューション部 ソリューションアーキテクト 前職 エンタープライズアプリケーション開発コンサルタント 好きな AWS サービス AWS Code シリーズ AWS IoT Lambda(C#)

内容についての注意点 本資料では 2017 年 6 月 28 日時点のサービス内容および価格についてご説明しています最新の情報は AWS 公式ウェブサイト (http://aws.amazon.com/ ) にてご確認ください 資料作成には十分注意しておりますが, 資料内の価格と AWS 公式ウェブサイト記載の価格に相違があった場合,AWS 公式ウェブサイトの価格を優先とさせていただきます 価格は税抜表記となっています. 日本居住者のお客様が東京リージョンを使用する場合, 別途消費税をご請求させていただきます AWS does not offer binding price quotes. AWS pricing is publicly available and is subject to change in accordance with the AWS Customer Agreement available at http://aws.amazon.com/agreement/. Any pricing information included in this document is provided only as an estimate of usage charges for AWS services based on certain information that you have provided. Monthly charges will be based on your actual use of AWS services, and may vary from the estimates provided.

Agenda CI/CDとAWS Code Series ASW CodeDeploy AWS CodePipeline AWS CodeStar まとめ

ソフトウェアを取り巻く環境の変化 ソフトウェアの作成と配布はかつてな いほど簡単で高速になっている 少ない資金でスタートアップが巨大企業に 対抗できる ダウンロードひとつで数百万人のユーザー にすぐにソフトウェアを配布できる 要求に応えるためには機敏性が最も重要

ソフトウェア配布モデルは大きく様変わりしている かつてのソフトウェア配布モデル 新しいソフトウェア配布モデル

機敏な動きに必要なツールとは この新しいソフトウェア駆動の世界でソフトウェアを リリースするのに必要なツールとは ソフトウェア開発のリリースプロセスの流れを管理するツー ル コードの不具合や潜在的な問題を正しくテスト 検査する ツール アプリケーションをデプロイするツール

リリースプロセスの4つの主なフェーズ ソース ソースコードを チェックイン バージョン管理 ブランチ管理 新しいコードの ピアレビュー ビルド Java C#などの コードのコンパイル ユニットテスト スタイルチェッカー コードメトリック コンテナイメージの 作成 テスト 他のシステムと の統合テスト ロードテスト UIテスト 侵入テスト 運用 本番環境に デプロイ

リリースプロセスのレベル ソースビルドテスト運用 継続的インテグレーション 継続的デリバリ 継続的デプロイメント

継続的デリバリのメリット ソフトウェアの 開発者の バグをすばやく アップデートの リリースプロセスを 生産性を改善 検出して対処 配信を高速化 自動化

AWS Code シリーズ AWS CodePipeline AWS CodeDeploy AWS CodeCommit AWS CodeBuild

継続的デリバリ == 開発者がより幸せに! https://www.flickr.com/photos/cannnela/4614340819/

AWS Code シリーズ ソフトウェアリリースフェーズ Source Build Test Production

AWS Code シリーズ ソフトウェアリリースフェーズ Source Build Test Production AWS CodeCommit

AWS Code シリーズ ソフトウェアリリースフェーズ Source Build Test Production AWS CodeBuild

AWS Code シリーズ ソフトウェアリリースフェーズ Source Build Test Production AWS CodeBuild Third Party Tooling

AWS Code シリーズ ソフトウェアリリースフェーズ Source Build Test Production AWS CodeDeploy

AWS Code シリーズ ソフトウェアリリースフェーズ Source Build Test Production EC2 AWS CodeDeploy On-Prem

AWS Code シリーズ ソフトウェアリリースフェーズ AWS CodePipeline Source Build Test Production

AWS Code シリーズ ソフトウェアリリースフェーズ AWS CodePipeline Source Build Test Production AWS CodeCommit Third Party AWS CodeBuild AWS CodeBuild AWS CodeDeploy Tooling

AWS Code Services AWS CodeCommit セキュア スケーラブルな Git 互換のリポジトリサービス スタンダードな Git Tool からアクセス可能 Push などのイベントをトリガーに SNS/Lambda を呼び出し可能 AWS CodeBuild AWS CodeDeploy AWS CodePipeline スケーラビリティに優れたビルドサービス ソースのコンパイル テスト パッケージ生成をサポート Docker イメージの作成も可能 S3 または GitHub 上のコードをあらゆるインスタンスにデプロイ デプロイを安全に実行するための様々な機能を提供 In-place( ローリング ) および Blue/Green のデプロイをサポート リリースプロセスのモデル化と見える化を実現 カスタムアクションによる柔軟なパイプライン作成が可能 様々な AWS サービスや 3rd パーティ製品との統合をサポート

AWS Code Series Part 1について 前回のPart 1の内容 AWS CodeCommit AWS CodeBuild のご紹介 見逃した方は下記をご覧ください オンデマンド https://connect.awswebcasts.com/p11xi3ubqpo/ PDF https://d0.awsstatic.com/webinars/jp/pdf/services/2017 0322_AWS-BlackBelt-CodeCommit-CodeBuild.pdf 24

Deploying your applications https://secure.flickr.com/photos/simononly/15386966677

AWS CodeDeploy 自動化されたデプロイメント 開発 テスト 本番環境への完全に自動化されたデプロイメント AWS CodeDeploy は数千台の環境にスケール可能 最小のダウンタイム In-place デプロイメントではAmazon EC2インスタンスに対してローリングアップデートが可能 Blue/Green デプロイメントでは最新のリビジョンをインスタンスにデプロイしてトラフィックを即時またはテスト完了後すぐに新しい環境にリルート 停止とロールバック 自動的またはマニュアルで停止とロールバックが可能 センターコントロール 容易な適用 AWS CodeDeploy コンソール及び AWS CLI でステータスのトラックが可能

デプロイとは アプリケーションやア セットの更新をサーバ に反映させること 実際には 更新された ファイル群を対象の サーバ群に配布する v2 Availability Zone Availability Zone

よくあるデプロイ手法と課題 Push型 デプロイ元からデプロイ先へ FTP, rsync, git pull Capistrano, Fabric 課題 自動化できていない 人間がサーバにログインしてコマンドを手動で実行している デプロイサーバの負荷 シングルポイント 新規サーバ構築時にデプロイ対象がわからない 複数人でデプロイがぶつからない様に管理するのが面倒

よくある課題を AWS CodeDeploy で解決 自動化できていない もちろん自動的にデプロイ デプロイサーバの負荷 シングルポイント マネージドサービスのためパフォーマンス 耐障害性も気にしなくて良くなる 新規サーバ構築時にデプロイ対象がわからない CodeDeploy なら AutoScaling と連動し自動でデプロイ 複数人でデプロイがぶつからない様に管理するのが面倒 AWS CodeDeploy で一元管理

デプロイの効率化 安定化 質の高いリリースのためには 必要不可欠 効率的で安定している仕組みがあるなら それを使わない手はない AWS CodeDeploy が選択肢

AWS CodeDeploy ワークフロー

AWS CodeDeploy コンポーネント Application デプロイメント構成 デプロイメント グループ デプロイメント タイプ IAM インスタンス プロファイル リビジョン サービル ロール ターゲット リビジョン 32

Application デプロイに対する一意の名前 フォルダ構成 appspec.yml (必須) ビルド済の成果物 その他配布物 hookスクリプト アップロード Amazon S3のObject GitHubのRepository zip形式でダウンロードされる / appspec.yml config/ config.xml deploy_hooks/ start-tomcat.sh stop-tomcat.sh target/ hello.war or Amazon S3 注: ソースコードではなくmavenやbundle後の ファイル群をput/pushすることをオススメ

AppSpec File デプロイの手順書 files hooks どのファイルをどこに配 置するか指定 以下の黄色のEventで実行 する処理を指定 version: 0.0 os: linux files: - source: config destination: /etc/app - source: target/hello.war destination: /var/lib/tomcat6/webapps hooks: ApplicationStop: - location: deploy_hooks/stop-tomcat.sh ApplicationStart: - location: deploy_hooks/start-tomcat.sh

appspec.yml の例 version: 0.0 os: linux files: - source: / destination: /var/www/html permissions: - object: /var/www/html pattern: *.html owner: root group: root mode: 755 hooks: ApplicationStop: - location: scripts/deregister_from_elb.sh BeforeInstall: - location: scripts/install_dependencies.sh ApplicationStart: - location: scripts/start_httpd.sh ValidateService: - location: scripts/test_site.sh - location: scripts/register_with_elb.sh アプリケーションファイルと 設定ファイルをそれぞれの ディレクトリに送信 特定のディレクトリとファイル のアクセス許可を設定 ELBへのインスタンスの追加と 削除 依存パッケージのインストール Apacheの起動 デプロイの成功を確認 他にも

AWS CodeDeploy Agent デプロイ対象となるインスタンスで実行 サポートする OS Amazon Linux 2017.03.x, 2016.09.0, 2016.03.1, 2016.03.0, 2015.03, 2014.09.1 Ubuntu Server 16.04 LTS and 14.04 LTS Microsoft Windows Server 2016, 2012 R2, and 2008 R2 Red Hat Enterprise Linux (RHEL) 7.x Open Source として必要に応じて他の環境にも適用可能 https://github.com/aws/aws-codedeploy-agent 36

デプロイメント構成 One-at-a-time Min. healthy hosts = 99% [Custom] Min. healthy hosts = 75% Half-at-a-time Min. healthy hosts = 50% All-at-once Min. healthy hosts = 0 v2 v1 v1 v1 v1 v1 v1 v1 v2 v2 v1 v1 v1 v1 v1 v1 v2 v2 v2 v2 v1 v1 v1 v1 v2 v2 v2 v2 v2 v2 v2 v2

デプロイメント グループ 下記のいずれか または両方で構成 タグのグループ Auto Scaling グループ デプロイメント グループに 対してどのリビジョンを 適用するかを指定 v2.0 v1.2 v1.1 v2.0 v1.2 v1.1 v2.0 v1.2 v1.1 Dev Test Prod

AWS CodeDeployとAuto Scaling Group(ASG) スケールアウト時に最新のリビ ジョンが自動でデプロイされる ASGのLifecycle Hookを利用 追加インスタンスのみにデプロイ Deployment GroupにASGを指定 するだけで利用可能 デプロイに成功した最新の リビジョンが自動でデプロイ

デプロイメント タイプ In-place v2 v1 v2 v1 v2 v1 CLB/ALB共にサポート 40 Blue/Green v1 v1 v1 2017/6/28時点ではCLBのみサポート

デプロイメント タイプ In-place v2 v1 v2 v1 v2 v1 CLB/ALB共にサポート 41 Blue/Green v1 v1 v1 v2 2017/6/28時点ではCLBのみサポート v2 v2

Auto Scaling グループとの連携で注意すること Auto Scalingライフサイクル フックの変更はできるだけしない 構成エラーによってCodeDeployとの統合が壊れる可能性がある Auto Scallingのカスタム ライフサイクルフックが実行されるタイミングは 事前決定できない デプロイメントの失敗に注意する 新しいインスタンスのデプロイに失敗した場合 CodeDeployはインスタ ンスに終了のマークをつける Auto Scalingはインスタンスを終了し 代わりの新しいインスタンスを起 動し CodeDeployにデプロイメントを開始するように通知する デプロイの失敗が一時的なものでない場合は インスタンスの開始と終了 のサイクルのループする 42

Auto Scaling グループとの連携で注意すること トラブルシュート時はAuto Scaling グループから切り離す CodeDeploy Agentの開始は起動スクリプトの最後に実行 複数のデプロイメント グループに同じAuto Scaling グループを割り当て ない CodeDeployのデプロイが進行中にAuto Scallingのスケールアップが発生 すると作成されたインスタンスには直近のアプリケーション リビジョン がデプロイされる CodeDeployに指示した新しいリビジョンと直近のリビジョンが入り混じる結果とな る デプロイ時にAuto Scalingをサスペンドする 下記のsample スクリプトを参照 https://github.com/awslabs/aws-codedeploy-samples/tree/master/loadbalancing/elb CLB and ASG https://github.com/awslabs/aws-codedeploy-samples/tree/master/loadbalancing/elb-v2 ALB and ASG) 43

IAM インスタンス プロファイル EC2インスタンスが配布物を取得できるように権限を付与 { } 44 "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:get*", "s3:list* ], "Effect": "Allow", "Resource": "*" } ]

リビジョン ソースコード Webページ 実行ファイル スクリプ トなどとAppSpecファイルをまとめたアーカイブ Linux: zip, tar, compressed tar Windows: zip S3バケットやGitHubリポジトリに保存 S3 オプジェクトキーとEtagまたはバージョンによっ て一意に識別される GitHub Commit IDによって一意に識別 45

サービス ロール CodeDeployサービスに与える権限 AWSCodeDeployRole 46 サービス アクセスレベル リソース Auto Scaling リスト 書き込み アクセス 権限の管理 すべてのリソース CloudWatch 読み込み すべてのリソース EC2 リスト 書き込み すべてのリソース ELB フル すべてのリソース ELB v2 リスト すべてのリソース Resource Group Tagging 読み込み すべてのリソース SNS 書き込み すべてのリソース

ターゲットリビジョン リポジトリにアップロードした直近のバージョンのアプリケーションリビジョン デプロイメントグループのインスンタスにデプロイする対象 自動デプロイでプルされるリビジョン 47

他の AWS サービスとの連携 Amazon CloudWatch サービスリソースとアプリケーションのモニタリング CloudWatch Alarms: 設定した閾値を超えた場合にデプロイを停止 CloudWatch Event: 設定したルールに従ってイベントを実行 CloudWatch Logs:AWS CodeDeploy Agent が生成するログをモニタリング https://aws.amazon.com/jp/blogs/devops/view-awscodedeploy-logs-in-amazon-cloudwatch-console/ Auto Scalling AWS CodePipeline Elastic Load Balancing AWS CloudTrail EC2インスタンスの自動的起動とデプロイパイプラインのCodeDeployの連携と実装 Blue/Green デプロイメントでは必須 APIコールをキャプチャ 48

AWS CodeDeploy パートナー連携

AWS CodeDeployの料金 Amazon EC2へのデプロイは全て無料 Amazon S3を使う場合は S3の利用料 オンプレミスインスタンスへのデプロイ $0.02/インスタンス/デプロイ 2017/6/28 時点の価格です

Orchestrating build and deploy with a pipeline https://www.flickr.com/photos/seattlemunicipalarchives/12504672623/

デプロイメントパイプラインとは ソースコードからビルドやテストなどのステージを自 動化したプロセス プロセスは開発チームやサービスそれぞれで異なる スムーズなデプロイメントには欠かせない ソースコード ビルド テスト ステージ デプロイ UAT 本番 デプロイ デプロイメントパイプライン

よくある課題 デプロイメントパイプラインの設定が複雑 デプロイ職人が生まれてしまう 標準化されないデプロイメントパイプライン デプロイメントパイプラインを他プロジェクトで再 現できない デプロイメントパイプラインのバックアップ 消失するとデプロイできなくなる

よくある課題を AWS CodePipeline で解決 デプロイメントパイプラインの設定が複雑 見やすい UI で設定できる もちろん CLI でも 標準化されないデプロイメントパイプライン CodePipeline なら標準化も簡単 デプロイメントパイプラインのバックアップ マネージドサービスで消失の可能性は低い

AWS CodePipeline リリースプロセスを自動化 ソースリポジトリからビルド テスト デプロイメントまで完全に自動化されたリリースプロセス 一環したリリースプロセスを確立 コードの変更に対して一貫した実行ステップのセットを定義 改善された品質でデリバリをスピードアップ リリースプロセスを自動化し インクリメンタルな機能追加を可能について顧客に素早くリリース お気に入りのツールを利用可能 既存のソース ビルド デプロイメントのツールをパイプランに組み込み 進捗状況が一目瞭然 リアルタイムにパイプラインのステータスをレビュー可能

AWS CodePipeline 継続的デリバリー リリース自動化を Amazon の様に Source Build Beta Gamma Production 1) ビルド 2) Unit テスト 1) デプロイ 2) UI テスト 1) デプロイ 2) 負荷テスト カスタマイズ可能なワークフローエンジン パートナーやカスタムのシステムと連携 ビジュアルエディターと可視化されたステータス 1) カナリアデプロイ 2) リージョン 1 デプロイ 3) リージョン 2 デプロイ

開発のスタイルにあったワークフローを自由に ソースコード ビルド ユニット テスト ステージ デプロイ A機能画面 テスト ステージ デプロイ B機能画面 テスト 本番 デプロイ CodePipeline

CodePipeline MyApplication Source Source GitHub Build JenkinsOnEC2 Jenkins ステージパイプラインアクション トランジション Deploy JavaApp Elastic Beanstalk

CodePipeline MyApplication Source Source GitHub Build JenkinsOnEC2 Jenkins NotifyDevelopers Lambda 並列アクション Deploy JavaApp Elastic Beanstalk

CodePipeline MyApplication Source Source GitHub Build JenkinsOnEC2 Jenkins TestAPI Runscope NotifyDevelopers Lambda 逐次アクション Deploy JavaApp Elastic Beanstalk

CodePipelineの構成例 git pushでリポジトリ を更新 CodeBuildがDockerイメージを ビルドしECRへプッシュ AWS CodeBuild Amazon ECR CodePipeline が更新を検知 しパイプラインを開始 CloudFormation がECRのDocker イメージをECSクラスタに展開 Developers AWS CodeCommit AWS CodePipeline AWS CloudFormation Amazon ECS

CodePipeline MyApplication Source 1. 変更を取得 Source CodeCommit Build JenkinsOnEC2 CodeBuild AWS CodeCommit ソースアーティファクト 5. ソースアーティファクト を取得 3. ジョブをポーリング 4. ジョブを承認 S3 6. ビルドアーティファクト を格納 7. 成功を通知 AWS CodeBuild S Amazon ECR ビルドアーティファクト Deploy JavaApp CloudFormation 8. CloudFormationでサービス 定義を更新 9. ビルドアーティファク トを取得 Amazon ECS

AWS サービス統合 ソース Amazon S3 ビルド AWS CodeBuild AWS CodeCommit ロジック実行 AWS Lambda デプロイ AWS CodeDeploy AWS CloudFormation AWS Elastic Beanstalk AWS OpsWorks 2017/6/28現在 東京リージョン では利用できません

優秀なパートナーが続々集結 ソース ビルド テスト デプロイ

CodePipeline アクションタイプとの統合 Source アクション Amazon S3 AWS CodeCommit GitHub Build アクション AWS CodeBuild CloudBees Jenkins Solano CI TeamCity Test アクション AWS CodeBuild Apica BlazeMeter Ghost Inspector HPE StormRunner Load Nouvola Runscope Deploy アクション AWS CloudFormation AWS CodeDeploy AWS ElasticBeanstalk AWS OpsWorks Stacks XebiaLabs Approval アクション Amazon Simple Notification Service Invoke アクション AWS Lambda 65

AWS Lambda ファンクションの実行 AWS CodePipelineのアクションとしてLambdaを追加可能 Lamdbaファンクションの利用例 AWS CloudFormation テンプレートの適用やアップデートによる環境変更の展開 実行時に1つのステージでCloudFormationを利用してリソースを作成し 別のス テージで削除 LambdaファンクションでCNAMEをスワップすることでゼロ ダウンタイム バージョ ンアップをElasticBeanstalkで実行 Amazon ECSへDockerインスタンスをデプロイ AMIスナップショットを作成することで構築 デプロイする前にリソースのバック アップを作成 IRCクライアントにメッセージをポストするなど サードパーティーの製品と統合 66

Approval アクションの管理 パイプラインに承認アクションを追加可能 SNSトピックを指定 承認アクションの例 リビジョンが次のステージに進む前にコードレビュや変更管理レ ビューを依頼 手動の品質管理テストを最新バージョンのアプリケーションに実施 を依頼 リリース前にビルドされた成果物の統合確認を依頼 会社のWebサイトに発行する前に 新規や更新されたテキストのレ ビューを依頼 67

68 Approval アクション

Custom アクション デフォルトで用意されていない独自のアクションを追加可能 AWS CLIを利用してアクションを追加 Job Worker の作成が必要 Customアクションに対するAWS CodePipelineのジョブリクエストをポーリング Custom Jobの実行 結果のステータスをAWS CodePipelineに返す AWS CodePipelineから参照可能なパブリックなエンドポイントを公開 詳細は下記URLを参照 http://docs.aws.amazon.com/ja_jp/codepipeline/latest/userguide/ actions-create-custom-action.html 69

Custom アクション S3 CodePipeline 開発者が コミット 1. エージェントでポーリング 3. ジョブのAck 2. ジョブの詳細 5. ジョブの成功 カスタムジョブワーカー カスタムアクションリソース カスタムビルドアクション 4. ビルドの実行

AWS CodePipelineの料金 1アクティブパイプライン毎に $1/月 アクティブパイプラインとは 30日以上存在していて その月に1つのコード変更が発生したパイプライン その月に新しいコード変更がないパイプラインに対しては 料金は発生しません 1ヶ月に満たない分に対しては按分計算されません 無料利用枠 1パイプライン/月あたり 2017/6/28 時点の価格です

72 AWS CodeStar

AWS CodeStar AWS 上にアプリケーションをすばやく開発 ビルド デプロイ AWS 上での開発をわずか数分間で開始 チームをまたがった開発をセキュアに ソフトウェアデリバリの管理を容易に 様々なプロジェクトテンプレートから選択

セットアップ内容 サンプルアプリケーション EC2 or Beanstalk or Lambda CodeCommitリポジトリ CodeBuildビルドプロジェクト デプロイツール CodeDeploy or Beanstalk or CloudFormation CodePipeline 継続的デプロイメントパイプライン CloudWatchメトリクス プロジェクトダッシュボード

豊富なプロジェクトテンプレート

開発ツールとの連携

プロジェクトダッシュボードの提供

プロジェクトダッシュボードの提供 CodeCommit App エンドポイント CloudWatch メトリクス JIRA 統合メニュー CodePipeline

AWS CodeStarの料金 追加料金はありません CodeStar プロジェクトでプロビジョニングし たAWS リソース Amazon EC2インスタンス AWS Lambdaの実行 Amazon S3のバケット など に対してのみ料金が発生します 2017/6/28 時点の価格です 79

https://aws.amazon.com/jp/devops/

まとめ AWS CodeDeploy は最小限のダウンタイムでデプロイの自動化が可能 AWS CodePipeline によってリリースプロセス全体を一貫したやり方で完全に自動化 AWS CodeStar で CI/CD 環境を素早く構築し ダッシュボードで一元管理が可能 これらを活用することで高品質なソフトウェアをインクリメンタルな開発手法で素早くリリース! 81

84