Amazon Web Services ブログ

AWS 開発者用ツールのまとめ – CodeCommit、CodePipeline、CodeDeploy に追加した最近の機能強化

AWS 開発者用ツールは現代の DevOps を実施する上で役立ちます。概要については次をご覧ください (詳しくは「ソースコード管理やデプロイに使用できる新しい AWS ツール」を参照)。

AWS CodeCommit は完全マネージド型のソースコード管理サービスです。既存の Git ツールやワークフローを引き続き使用しながら、安全でスケーラビリティに優れたプライベート Git リポジトリをホストするために同サービスを使用できます (詳細は「Introduction to AWS CodeCommit」のビデオをご覧ください)。

AWS CodeDeployAmazon Elastic Compute Cloud (EC2) インスタンスやオンプレミスサーバーでコードのデプロイを自動化します。デプロイの間にダウンタイムを回避しながら、すばやくアプリケーションを更新することができます (詳細は「Introduction to AWS CodeDeploy」のビデオをご覧ください)。

AWS CodePipeline はリリースプロセスの効率化や自動化に使用することができる継続的配信サービスです。リポジトリ (CodeCommit または Git) でチェックインを行うと、ビルド、テスト、デプロイなどの操作が開始します (概要については「Introducing AWS CodePipeline」をご覧ください)。このビルドは CodeDeploy、AWS Elastic BeanstalkAWS OpsWorks のいずれかを使用して EC2 インスタンスまたはオンプレミスサーバーでデプロイすることができます。

こうしたサービスと既存のビルドやテストツールを組み合わせて使用することで、CodePipeline がまとめるエンドツーエンドソフトウェアのリリースパイプラインを作成することができます。

AWS は今年 Code* 製品に多数の機能強化を追加しました。今回は時期的にもそうした機能の概要をご説明するのにちょうど良い時期だろうと思い、このブログを公開することにしました。こうした機能強化の多くは開発者用ツールと AWS の他の部分を連携できるようにするので、今後もデプロイのプロセスを調整していくことが可能になります。

CodeCommit の機能強化
[codecommit_u] の新機能:

  • リポジトリトリガー
  • コードブラウジング
  • コミット履歴
  • コミットの可視化
  • Elastic Beanstalk の統合

リポジトリトリガー – リポジトリで変更があるたびに通知を送信したりコードを実行するリポジトリトリガーを作成することができます (これは場合によって webhooks と呼ばれることもあります — ユーザー定義の HTTP コールバック)。こうしたフックは開発のワークフローをカスタマイズしたり自動化することを可能にします。トピックまたは Lambda 関数を呼び出して Amazon Simple Notification Service (SNS) に通知を配信することもできます。

コードブラウジングコンソールでコードをブラウズすることができます。これにはソースコードのツリーとコードでのナビゲーションも含まれています。

コミット履歴 – リポジトリのコミット履歴を表示できます (私の場合はあまり動きがなかったため 2015 年の履歴が表示されています)。

コミットの可視化 – リポジトリのコミット履歴をグラフィカル表示にすることができます。

Elastic Beanstalk の統合Elastic Beanstalk を使用する CodeCommit リポジトリで、Elastic Beanstalk 環境で実施するデプロイ用のプロジェクトコードを保存できます。

CodeDeploy の機能強化
CodeDeploy の新機能:

  • CloudWatch イベントの統合
  • CloudWatch アラームと自動デプロイメントロールバック
  • プッシュ通知
  • 新しいパートナーの統合

CloudWatch イベントの統合 – インスタンスの状態または AWS Lambda 関数、Amazon Kinesis ストリーム、Amazon Simple Queue Service (SQS) キュー、SNS トピックのデプロイで起きた変更をストリームするように CloudWatch イベントを設定すると、デプロイで起きた変更を Amazon CloudWatch イベントで監視したり対応することができます。変更によりトリガーするワークフローやプロセスを構築することができます。デプロイに失敗した場合に EC2 インスタンスを自動的に終了させたり、Slack チャネルにメッセージをポストする Lambda 関数を呼び出すことができます。

CloudWatch アラームと自動デプロイメントロールバック – CloudWatch アラームは別の方法でデプロイ監視を可能にします。CodeDeploy で管理しているインスタンスまたは Auto Scaling グループのメトリックスを監視できるほか、決められた期間にしきい値を超えた場合は再起動、終了または復元することでデプロイを停止したり、インスタンスの状態を変更することができます。デプロイに失敗した場合や CloudWatch アラームへの対応として自動的にデプロイをロールバックすることもできます。

プッシュ通知 – デプロイに関するイベントについて Amazon SNS からプッシュ通知を受信し、デプロイの状態やプログレスを確認することができます。

新しいパートナーの統合 – AWS の CodeDeploy パートナーは AWS 製品と自社製品を連結できるように努めています。最近のリリース:

CodePipeline の機能強化
[codepipeline_u] の新機能:

  • AWS OpsWorks 統合
  • Lambda 関数のトリガー
  • 手動の承認アクション
  • コミット済み変更の情報
  • 新しいパートナーの統合

AWS OpsWorks 統合 – CodePipeline でモデルしたソフトウェアリリースパイプラインで AWS OpsWorks をデプロイプロバイダとして選択することができます。

[codepipeline_u] で [opsworks_u] を使用するように設定して、カスタム Chef cookbooks のレシピでコードをデプロイすることもできます。

Lambda 関数のトリガー – ソフトウェアリリースパイプラインの操作のひとつとして Lambda 関数をトリガーできるようになりました。Lambda では、ほぼすべてのタスク実行を可能にする関数を記述できるので、パイプラインを好きなようにカスタマイズすることができます。

手動承認アクション – ソフトウェアリリースパイプラインで手動承認アクションを追加できるようになりました。必要な IAM アクセス権限を持つ人物がコード変更を承認または拒否するまで実行が一時停止します。

コミット済み変更の情報 – ソフトウェアリリースパイプラインを経由するコードに対するコミット済み変更の情報を表示できるようになりました。

 

新しいパートナー統合 – AWS の CodePipeline パートナーは AWS 製品と自社製品を連結できるように努めています。最近のリリース:

新しいオンラインコンテンツ
最新の開発手法について皆さんにご理解いただけるように、いくつかの新しい入門用資料をご提供しています。

ご覧いただきありがとうございました。
今回は AWS の開発用ツールに新しく追加された機能概要をご紹介しました。いかがでしたか?

皆さんが継続的配信を実際に体験できるように、私の同僚が新たに Pipeline スターターキットを作成しました。このキットには、EC2 インスタンスを内部に含む VPC 作成のテンプレート、アプリケーションペア (各インスタンス用、CodeDeploy でデプロイ)、サンプルアプリケーションを構築してデプロイするパイプライン、その他必要な IAM サービスとインスタンスロールが含まれています。

Jeff;