CI/CD Conference 2021
渡辺です。 2017/04/19開催(日本時間:2017/04/20)の『AWS Summit in San Francisco』で発表された新サービス『AWS CodeStar』についてお知らせします。 一言で言えば、CodeCommit, CodePipeline, CodeBuild, CodeDeployとそれらに付随する実行環境を一撃で構築・管理できます(2017年4月の時点で、東京リージョンでは利用できません)。 実行環境もカバーする最強のスキャホールド AWS CodeStarが何者か、一言で言えば、一時期に流行ったスキャホールドの類です。 Ruby on Railsが登場した時、コマンドひとつでウェブアプリケーションの雛形ができることに衝撃を覚えた人は多いでしょう。 ベース部分をスキャホールド(足組)として作り、肉付けをしていくというスタイルが流行ったかと思います。 AWS
はじめに どうも、iselegant です。 前回、執筆した商業誌について本ブログで紹介させていただいたところ、大変多くの反響がありました。 コメントをくれた方、書籍に関心を持っていただいた方、本当にありがとうございます🙇 AWSコンテナ設計・構築[本格]入門 | 株式会社野村総合研究所, 新井雅也, 馬勝淳史, NRIネットコム株式会社, 佐々木拓郎 |本 | 通販 | Amazon 本日から少しの間、分量調整と締め切りの都合上、商業誌では執筆しきれなかった AWS 設計に関するサイドトピックについて、本ブログ上でご紹介したいと思います。 今日はALB (Application Load Balancer) と NLB (Network Load Balancer) の Blue/Green デプロイメントに関する設計がテーマです。 AWS で Web アプリケーションの可用性とパフォ
その上で、新しく作り上げた deploy フローについて、雑な絵になりますが概略図を以下に示します。 主要な登場人物は Itamae Auto Scaling CodeDeploy GitHub / Circle CI となります。それぞれ追って説明をしていきます。 https://github.com/itamae-kitchen/itamae Itamae は @ryot_a_rai さんが作られた LightWeight な Chef like な OSS です。Chef で実現できた事のうち、 recipes の部分のみを切り出したようなシンプルなツールになっています。 (こちらの発表資料より引用) 弊社内で蓄積された Chef 関連のリソースを再利用・再整理するために粒度がちょうど良かったこともあり、Itamae を用いて provisioning の定義を書き直すことにしました
概要 AWSではアプリケーションのデプロイや、システムのスケーリングを自動化することができます。 しかしそれらを実現しようとすると、似たようなサービスの中から用途に合ったものを選ぶ事になると思います。 今回は選択肢となり得るサービスを挙げて、それぞれの出来る事、出来ない事をベースに比較していこうと思います。 比較の軸 以下のように、評価軸を設けました。 サービスの機構として提供されているものは◯とします。 機構として提供されているが、使い難いものは△とします。(例: AWS CLIを利用した場合のみ利用可能など) 機構としては提供されていないが、別の機構などを組み合わせることで容易に実現可能なら△とします。 別の機構などを組み合わせても辛い場合や、実現不可能なら×とします。 デプロイ自動化 まずはアプリケーションのデプロイを自動化するサービスの比較を行います。 以下の4つの選択肢があります
Rails アプリケーションをデプロイしてみよう 昨日の re:Invent で発表された AWS CodeDeploy (以下 CodeDeploy) を使って GitHub リポジトリで管理している Rails アプリケーションを EC2 インスタンスにデプロイしてみました。いままでは Capistrano を利用してデプロイを行うのが主流でしたが、果たして CodeDeploy はこれに変わるサービスなのか!?と思いながら試してみることにしました。 なお、サンプルサイトのデプロイ手順は以下で紹介していますので、こちらもあわせてご覧ください! [新サービス] AWS CodeDeployを触ってみた #reinvent | Developers.IO EC2 インスタンスの環境構築 今回の要件を達成するために、EC2 インスタンスには以下の環境構築が必要です。この手順については今回は割
Amazon Web Services ブログ AWS CodeDeploy による AWS Fargate と Amazon ECS でのBlue/Greenデプロイメントの実装 AWS Fargate と Amazon Elastic Container Service (Amazon ECS) 上で稼働するサービスでの Blue/Green デプロイメントがサポートされます。 AWS CodeDeploy を利用し、 Blue/Green デプロイメントを行うことでアプリケーションの更新時のダウンタイムを最小限に抑えることが出来るようになります。 Blue/Green デプロイメントは、古いバージョンと新しいバージョンのアプリケーションを同時に起動し、新しいバージョンをテストしてからトラフィックをルーティングします。デプロイ状況を監視し、問題が発生した場合はすぐにロールバックすること
New — File Release for Amazon FSx for Lustre Amazon FSx for Lustre provides fully managed shared storage with the scalability and high performance of the open-source Lustre file systems to support your Linux-based workloads. FSx for Lustre is for workloads where storage speed and throughput matter. This is because FSx for Lustre helps you avoid storage bottlenecks, increase utilization of compute
2016/01/30 【修正】 ELB にインスタンスを追加するタイミング、現環境を削除するタイミングは指定可能でした こんにちは、藤本です。 先日、CodeDeploy に Blue/Green デプロイ機能が追加されました。 AWS CodeDeploy Introduces Blue/Green Deployments 早速触ってみましたのでご紹介します。 概要 CodeDeploy は今までデプロイ方式にインプレイスデプロイのみを提供していました。インプレイスデプロイは既存のインスタンスにアプリケーションを上書きすることで、高速なデプロイを実現していました。しかし、アプリケーションを上書きすることで、いざ、デプロイしたアプリケーションにバグが内在していて、前のバージョンのアプリケーションに切り戻したい時は再度アプリケーションをデプロイする必要があり、切り戻しに時間がかかっていました
全国100万人のデプロイ・プロビジョニング自動化マニアのみなさんこんにちは! AWSから新たにDeploy用のサービスAWS CodeDeployがリリースされたので早速試してみました。 これを使うと複数のサーバに同時にアプリケーションをリリースするのが簡単にできます。もうCapistranoとかでごちゃごちゃやる必要はない感じです!! 詳細を知りたい方は公式サイトのドキュメントを見てみるとよいです。 ただ、GUIでやるのも面白く無いので、awscliを使ってやっていきましょう!! EC2インスタンスの準備まず、us-west-2でEC2インスタンスを何台か起動しましょう。これがデプロイ先のサーバになります。 デプロイ先サーバの識別にはEC2インスタンスのタグを利用しますので、同時にデプロイする対象には、同じタグを設定します(EC2のタグのFilterと同じ挙動です)。ここでは起動したイン
「ECSデプロイの話だけで45分喋った男がいた…」 というわけで、先日、Developers.IO 2020 CONNECTにおいて、以下のタイトルで喋りました。 「あなたの組織に最適なコンテナデプロイ方法とは?〜ECSにおけるデプロイ最新機能てんこ盛り〜」 オンラインセッションは何度か登壇経験あったのですが、今回は45分。正直めっちゃくちゃ疲れました。いやぁ、登壇ってもしかしたら、リアルよりもオンラインのほうがつかれるかもしれません。 そんな登壇だったわけですが、内容あれこれ詰め込んでECSのデプロイだけに内容を絞ったのですが、その甲斐あってかいろんな方に参考にしていただける内容になったのではと考えています。 ぜひ、この記事を、皆さんの現場のECSデプロイをパワーアップする参考にしていただければと思います。 ホンマにECSデプロイだけで45分喋ったの…!? ( ゚д゚) ガタッ /
Travis CI が AWS CodeDeploy をサポート AWS CodeDeploy (以下、CodeDeploy) で遊びまくっている者です。 CodeDeploy の肝は、何と言っても自動化でしょう!自動化といえば、CI サービスである Travis CI は既に CodeDeploy をサポートしています。Travis CI を既に使っている人は、少々設定を加えるだけで簡単に CodeDeploy のデプロイ処理を追加できます。 ということで今回は Travis CI 経由で CodeDeploy のデプロイ処理を実行してみたいと思います! デプロイを自動化してみる 事前準備 まず、Travis から CodeDeploy を実行するため、IAM User を作成しましょう。デプロイが実行できるよう、次のようなパーミッションにします。 { "Version": "2012-
スマートキャンプ、エンジニアの入山です。 前回のブログで、弊社プロダクトのインフラをEC2基盤からECS/Fargate基盤へ移行した話を紹介しました。 tech.smartcamp.co.jp 上記プロジェクトは大規模なインフラの刷新だったこともあり、CI/CDについても従来の仕組みからECS/Fargateの構成に合わせて変更しています。 CI/CDは、安定したプロダクト開発には必須且つ長期に渡って継続的に利用するものなので、いかにストレス少なく効率的に出来るかが重要だと考えています。 また、CI/CDは一度構築してしまうと放置されがちですが、日々の開発チーム全体の生産性にも大きな影響を与えるため、こういった数少ない再構築のタイミングではコストを掛ける価値があるのではないでしょうか。 今回は、弊社のインフラ移行時に実施したCI/CDの改善について紹介したいと思います。 従来のCI/CD
DevOpsやCI/CDに必須なサービスとしてすっかりおなじみになったCodeシリーズですが、今般、そのCodeシリーズに特化した通知サービスがリリースされました。 Introducing notifications for AWS CodeCommit, AWS CodeBuild, AWS CodeDeploy, and AWS CodePipeline Codeシリーズはアプリケーション開発〜運用のライフサイクル全般に関わるものが多く、それらを使っている中でリポジトリに対するプルリクエストの連絡、ビルド結果やパイプラインの実行結果、デプロイ結果などを通知するシチュエーションは非常に多くあります。従来、通知にはCloudWatch Eventsの利用が必須でしたが、今回Notificationsサービスとしてリリースされることで、Codeシリーズの中だけでの設定が可能となっています。
はじめに 瀬田@大阪オフィスです。1年に一つ、何か新しいことに手を出すことを目標にしているんですが、理解の浅いCode兄弟に入門してみることにしました。だってCodePipeline楽しそうなんだもの。 今回の構成 シンプルにECRへのPushでCodePipelineを発火させ、ECSにデプロイするだけの構成を作ります。 CodeCommitもCodeDeployも使用せず、S3から設定ファイルを取得します。 前提 ECRのリポジトリと、ECSは構成されているものとします。 手順 CodePipelineでSorceを作る(ECR+S3) ソースステージの編集からECRのソースを作成します。 ソースステージの編集から「アクションの追加」を押してS3のソースを作成します。 ポイントは、「S3 object key」に「imagedefinitions.json.zip」を入力しておくこと。
この記事は CircleCI Advent Calendar 2015 - Qiita の 2 日目の記事です。ちなみに 1 日目は @stormcat24 さんによる”CircleCIでサクッとビルドチェーンを実現する”お話でした。 というわけで、2 日目は、SmartNews’s Journey into Microservices という LT をしてきました のスライドで少しだけ触れている、Docker コンテナを AWS CodeDeploy + CircleCI でデプロイする話について、簡単に説明しようと思います。 背景 僕が所属しているスマートニュースという会社では、Java でアプリケーションが書かれていることが多いため、JAR/WAR を持ってきて実行するようなことを CodeDeploy を使った Pull 型デプロイでやっています。一方で、一部のアプリケーションは依
ども、大瀧です。 開催中のAWSプライベートイベント、re:Inventで続々と新サービスが発表になっています(他のブログエントリーでチェックしましょう)!今回は、CodeDeployという新サービスに触ってみたのでレポートします。 AWS CodeDeployとは CodeDeployは、その名の通りアプリケーションコードをAWSの仮想マシンサービスであるEC2にデプロイ、管理するサービスです。 従来からElastic Beanstalk、OpsWorksと言ったデプロイ系のサービスがありますが、CodeDeployは管理対象をEC2/AutoScalingのみに特化し、ローテーションやCIツールとの連携などより細やかなデプロイを意識したサービスと受け取れました。また、今後リリースされるAWS CodePipeline、CodeCommitとの連携にも期待したいところですね。費用はEC2
こんにちは、藤本です。 AWS re:Invent 2016 で CodeBuild がリリースされました。CodePipeline のビルドプロセスに CodeBuild を置くことができるようになりました。 CodeBuild に関しては以下の記事をご参照ください。 【速報】フルマネージドのビルドサービスCodeBuild爆誕 #reinvent 今回は CodeCommit、CodeBuild、CodeDeploy を CodePipeline で繋げて、デリバリプロセスの自動化を試してみました。 概要 昨今のシステム開発はユーザーの要望をより早く、より多く取り入れることを要求され、リリース頻度が増えてきたことに伴い、デリバリプロセスの自動化がデファクトスタンダードとなってきました。デリバリプロセスにはソースコード管理、ビルド、テスト、デプロイという 4つ主なフェーズがあります。下記
インフラの駒崎です。 Capistrano を使ったデプロイから、オートスケーリングをスムーズに導入するための弊社事例を紹介させていただきたいと思います。 こんな方へ 本稿で想定するのはこのような状況です。 Capistrano を使って中央管理型デプロイをしている AWS などのクラウドインフラを使ってオートスケーリングをやりたい オートスケーリング時のデプロイをどうするか検討している コンテナベースのデプロイやブルーグリーンデプロイには準備が足りない 理想は見えているもののなかなか進まない状況から、できるだけスムーズに改善を重ねることを目指します。 本稿のゴールは AWS でオートスケーリングを実現することです。 過度な一般化を避けるため、本稿では AWS 環境を前提として記述します。 オートスケーリングに必要なもの スケーリングのサイクルは、おおまかに次のように考えられます。 イメー
スマートキャンプ、エンジニアの入山です。 昨年末から弊社BOXILでは、EC2からECS/Fargateへのインフラ移行作業を実施しています。 EC2運用からコンテナベースのECS運用への移行は、インフラの思想として異なる部分も多く、一筋縄ではいかないということを日々痛感しています。特に運用面に関する仕組みやノウハウは大きく異なっているため、今までと同等の運用を異なる方法で実現する必要があり、頭を悩ませることが多いです。 例えば、今まではEC2にSSHしてコマンドを投入していたが、ECS/Fargate上で同じことをどうやってやるのか…など。SSHしなくても良い運用にすることも必要ですが、今まで当たり前に出来ていたことが万が一の時にどうやっても出来なくなるのはやはり辛い問題ではないでしょうか。 また、とりあえず移行はできたけど、今までよりも運用に時間や手間が掛かるようになった…といったこと
こんにちは、かたいなかです。 先日のre:InventにてECSに対してCodeDeployを使用してBlue/Green Deploymentを行う機能が発表されました。 AWS CodeDeploy/AWS CodePipelineでAWS Fargate/Amazon ECSのCI/CDがサポートされました! #reinvent 個人的にワクワクが止まらくなってしまい、ラスベガスに行ってもないのに早速試してみましたので、内容を紹介します。 今回の記事では、デプロイ後に本番トラフィックを向ける前に本番環境内で動作を確認し、動作確認後リリースを行う、という流れを実装していきます。 Blue/Green Deploymentとは Blue/Green Deploymentはデプロイの一つのパターンです。 本番環境内に2つの環境を用意し、トラフィックを片方だけに向けておきます。新しいバージョ
AppSpec AppSpec は AWS CodeDeploy (以下、CodeDeploy) で実行するデプロイ処理の内容です。デプロイでどのようなことを処理させるか、具体的な内容を記述していく YAML フォーマットで構成されたファイルです。 CodeDeploy を利用する上で、AppSpec でどのような設定を記述するかがとても重要になってきます。 ということで、本記事ではこちらのドキュメントを意訳していきたいと思います。 はじめに Application Specification File (AppSpec file) は、CodeDeploy があなたの EC2 インスタンスに対して、Amazon S3 または GitHub にあるアプリケーションのリビジョンをどのようにインストールするか決定する、YAML フォーマットのファイルです。また同様に、デプロイの様々なライフサイ
Amazon Web Services ブログ AWS Chatbot を利用して AWS 開発者用ツールの通知を Slack で受け取る方法 本投稿は Sr. Product Manager の Anushri Anwekar による AWS DevOps Blog への投稿を翻訳したものです。 開発者は多くの場合、Slack 上でコードについての議論を行います。AWS Chatbot を使用すると、リポジトリ、ビルドプロジェクト、デプロイアプリケーション、パイプラインといった開発者用ツールの通知を設定し、重要なイベントを自動的に Slack へ通知することができます。デプロイに失敗した時、ビルドが成功した時、プルリクエストが作成された時などに、開発者はもっとも気付きやすい形で通知を受け取ることができます。 2020年1月時点で通知がサポートされている AWS のサービスは以下の通りです
はじめに こんにちは、川原です。 当エントリはDevelopers.IOで弊社AWSチームによる『AWS サービス別 再入門アドベントカレンダー 2015』の14日目のエントリです。昨日13日目のエントリは都元の『AWS Elastic Beanstalk』でした。 このアドベントカレンダーの企画は、普段AWSサービスについて最新のネタ・深い/細かいテーマを主に書き連ねてきたメンバーの手によって、今一度初心に返って、基本的な部分を見つめ直してみよう、解説してみようというコンセプトが含まれています。 本日14日目のテーマは『AWS CodeDeploy』です。 目次 サービスの基本的な説明 デプロイ先サーバーの選択方法 デプロイ方法の選択 AppSpecファイル(appspec.yml)によるライフサイクルイベントの制御 CodeDeployと連携するサービス サービス利用のユースケース デ
はじめに こんにちは、中山です。 最近業務の中でAWS CodeDeployを使っています。AWS上でアプリケーションのデプロイを自動化する上でとても便利なサービスです。 私は完全に習うより慣れろ派の頭なので実際に手を動かさないとなかなか新しいサービスを覚えられません。という訳で、今回はCodeDeployを使ったイミュータブルなBlue/Greenデプロイメントの検証環境をTerraformで構築してみました。 構成図 構成図は以下の通りです。 構成図の解説 2つのASG(Blue/Green)を作成 そのうち1つのASGをELBに紐付ける(最初はBlue) アプリケーションのリリース時にCodeDeploy経由でGreenへデプロイ ELBの紐付け先AutoScaling GroupをGreenに付け替える アプリケーションのリリース毎にASGを作成してデプロイ、その後ELBの振り分け
AWS CodeDeployはAmazon EC2とオンプレミスのあらゆるインスタンスにソフトウェアをデプロイできます。またデプロイ中のダウンタイムを回避したり、アプリケーション・インスタンス・デプロイ・デプロイの設定を中央管理することができます。CodeDeployについてもっと知りたい方はこちらをご覧ください。このブログ投稿ではAmazon S3にアプリケーションをアップロードしたら自動的にCodeDeployのデプロイを開始する方法を紹介します。アプリケーションの新しいリビジョンがアップロードされたら可能な限り速くCodeDeployに通知するためにAWS Lambdaを使います。 AWS Lambdaはイベントに反応してコードを実行することができるコンピュートサービスです。サポートされたAWSのサービスでイベントが生成されると、そのイベントが発火するとすぐにLambdaが実行されま
こんにちは、かたいなかです。 以前、ECSがCodeDeployによるBlue/Greenデプロイに対応したことをお伝えしました。 今回は、CodePipelineからECS+CodeDeployへのデプロイを行うことで、CodeBuildでDockerイメージをビルドし、ビルドしたイメージをもとにタスク定義の新しいリビジョンを登録、ECSのサービスを更新するといった一連の流れを自動で行えるようにする方法をご紹介します。 構築するパイプラインの概要 今回は、以下のようなパイプラインを構成します。 GitHubの特定のブランチを変更を契機に処理を開始します。CodeBuildでイメージをビルドし、ECRにプッシュします。そして、最後にCodeDeploy + ECSを使用してデプロイを行うという流れです。 手順 では、実際にやっていきましょう。 設定としては以下の流れで進めます。 CodeD
この記事は AWS Advent Calendar 2015 - Qiita の 3 日目の記事です。昨日は “AWS CodeDeploy と CircleCI で Docker コンテナを自動デプロイ” という記事を書きましたが、それに引き続き AWS CodeDeploy ネタです。 Fabric や Capistrano などのデプロイツールを利用していると、AutoScaling によって起動してくるインスタンスへのアプリケーションのデプロイをどうするかというのは悩みの種ですが、 AWS CodeDeploy を利用すると、最後にデプロイに成功したリビジョンを起動時にデプロイしてくれるので非常に助かります。その一方で、 AutoScaling と連携して使うときに気をつけておくべきいいポイントがいくつかあるので、それについて書きます。 1. User Data でのプロビジョニン
CodeDeploy の Blue/Green デプロイを利用して、CodePipeline でいい感じに自動化されたデリバリを実装する こんにちは、藤本です。 ちょっと前から、AWS の Code◯◯ をベースにデリバリの自動化を勉強しています。 今回は今までブログエントリしてきたデリバリ方法に、先日リリースされた CodeDeploy の Blue/Green デプロイを組み合わせた実装を試すとともに、リリースプロセスを今一度整理してみました。 今までのエントリは下記をご参照ください。 CodePipeline で CodeCommit/CodeBuild/CodeDeploy を繋げてデリバリプロセスを自動化してみた #reinvent CodePipeline で承認プロセスを設けて本番環境へリリースする #reinvent CodeDeploy の Blue/Green デプロイ
渡辺です。 待望のアップデートがきました! AWS CodeDeployのELB対応です。 AWS CodeDeployは、ターゲットEC2インスタンスにエージェントを常駐させ、アプリケーションをデプロイするサービスです。 例えば、EC2インスタンスにJavaのSpringアプリケーションの実行環境を用意し、CodeDeployを利用してJAR(WAR)ファイルをデプロイすることができます。 しかし、システムがELB配下にある場合、ELBからのヘルスチェックを考慮する必要がありました。 デプロイが行われると、そのEC2インスタンスは一時的にヘルスチェックに失敗します。 したがって、ELBからのヘルスチェックに成功するまで待たなければ、一時的なサービス断が発生するのです。 これまでは、フックスクリプトでELBのヘルスチェックが成功するまでデプロイを完了させない方法で回避していました(Code
This document outlines a media workflow using AWS Elemental Media services including MediaPackage, MediaConvert, MediaLive and MediaConnect to ingest live video from an on-premise encoder, store video in Amazon S3, transcode and deliver video to viewers through Amazon CloudFront. The workflow is shown spanning regions in Seoul, Oregon, and Frankfurt to deliver live video streams to ScreenX theater
Join AWS Hybrid Cloud & Edge Day to Learn How to Deploy Your Applications in the Everywhere Cloud In his keynote of AWS re:Invent 2021, Dr. Werner Vogels shared the insight of how “the everywhere cloud” is bringing AWS to new locales through AWS hardware and services and spotlighted it as one of his tech predictions for 2022 and beyond in his blog post. “What we will see in 2022, and even more […]
こんにちは、藤本です。 Github リポジトリへのプッシュをトリガーに CodeDeploy によるデプロイを調べる機会があり、試してみたのでご紹介します。 2年以上前の記事ですが、AWS が公開しているブログの手順で実施できました。 Automatically Deploy from GitHub Using AWS CodeDeploy 試してみた 設定の流れは以下のようになります。 Github リポジトリ作成 CodeDeploy のアプリケーション作成 Github から CodeDeploy へデプロイする IAMユーザー作成 Github リポジトリへ CodeDeploy との連携設定 Github のパーソナルアクセストークン作成 Github リポジトリの自動デプロイサービス設定 動作確認 1. Github リポジトリ作成 Github のリポジトリを作成します。「
渡辺です。 AWS CodeDeployでは複数サーバにアプリケーションをデプロイできます。 この時、どの程度並列にデプロイするかを決めるのがデプロイ設定です。 デプロイ設定は、AllAtOnce、HalfAtATime、OneAtATimeから選択します。 AllAtOnceは全サーバを並列にデプロイします。 一方、OneAtATimeは並列にデプロイを行わず、ひとつのサーバのデプロイ完了を待って次のサーバのデプロイを行います。 HalfAtATimeは半分ずつのグループにわけ、各グループが成功した後に残りのグループをデプロイします。 OneAtATimeを使えばローリングアップデートとなるわけですが、実際にはデプロイ後にELBのヘルスチェックが通るまでタイムラグがある点に注意しなければなりません。 リリース時のサービス断を発生させない デプロイ(リリース)時のサービス断を発生させない有
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く