Amazon Web Services ブログ

Category: AWS CodeBuild

Builder 例のコンセプト

Cloud Native Buildpacks による AWS CodeBuild と AWS CodePipeline を使ったコンテナイメージの作成

この記事は Creating container images with Cloud Native Buildpacks using AWS CodeBuild and AWS CodePipeline (記事公開日: 2021 年 10 月 6 日) を翻訳したものです。 Amazon Elastic Container Service (Amazon ECS)、Amazon Elastic Kubernetes Service (Amazon EKS)、またはその他のコンテナオーケストレーターを使用している組織は、迅速に稼動させるためのよくある課題に直面しています。それは、アプリケーションのソースコードをコンテナイメージに迅速かつ効率的にパッケージ化するにはどうすればよいかということです。この “Source to Image” というという道のりは、組織がコンテナ技術を導入したばかりであるか、数百のワークロードにスケールアップしようとしているかに関わらず、さまざまな場面で課題となります。

Read More

AWS CDK Pipelines を利用した SaaS の並列かつ動的なデプロイ

こちらの記事は「Parallel and dynamic SaaS deployments with AWS CDK Pipelines」を翻訳したものです。 Software as a Service(SaaS)は、従量課金制の価格モデル、スケーラビリティ、可用性などのメリットをもたらすビジネスモデルで、独立系ソフトウェアベンダー(ISV)の間でますます人気を集めています。 SaaS サービスは、多数のアーキテクチャモデルを使用して構築できます。アーキテクチャを共有しないサイロモデルでは、各テナントごとに専用のリソースを提供します。サイロモデルでの展開は、テナント間のコンピューティングリソースとデータを分離し、ノイジーネイバー問題を排除するのにも役立ちます。一方、プールモデルには、コンピューティングリソースとキャパシティをより効率的に利用できるため、メンテナンスのオーバーヘッドの削減、管理と運用の簡素化、コスト削減の機会など、いくつかのメリットがあります。ブリッジモデルは、サイロモデルとプールモデルの両方が共存して使用されるハイブリッドなモデルです。システムの一部はサイロモデルとして、別の一部はプールモデルとして構築することができます。

Read More

CDK Pipelinesのmodern APIを使ってCDKアプリケーションをデプロイする

CDK Pipelines は、AWS CodePipelineによって CDK アプリケーションの継続的なデプロイパイプラインを簡単にセットアップできる高レベルのコンストラクトライブラリです。現在のCDK Pipelinesには従来のoriginalバージョンと、新しいmodernバージョンの2つのAPIセットが含まれています。modernバージョンのAPIはより使いやすく改善されており、今後は推奨されるAPIとなります。originalバージョンのAPIは後方互換性のためまだ利用可能ですが、可能であれば新バージョンへの移行をおすすめします。 originalのAPIと比較して、modernのAPIは、より適切なデフォルト値を持ち、より柔軟性があり、並列デプロイメントをサポートし、複数のシンセサイザー入力をサポートし、CodeBuildプロジェクトのより詳細な制御を可能にし、CodePipeline以外のデプロイメントエンジンをサポートしています。original APIのREADMEと移行ガイドは、GitHub にあります。 この記事ではCDK Pipelinesのmodern APIを使ってデプロイを行う基本的な手順について解説します。CDK Pipelinesの使い方についてはAWS CDK Reference Documentation の @aws-cdk/pipelines module のページに詳しく書いてあるため、そちらも合わせて参照してください。

Read More

AWS App Mesh を使用した Amazon ECS でのカナリアデプロイパイプラインの作成

この記事は Create a pipeline with canary deployments for Amazon ECS using AWS App Mesh を翻訳したものです。 この記事では Amazon Elastic Container Service (Amazon ECS) で実行されるアプリケーションのカナリアデプロイ戦略を、AWS App Meshと組み合わせて実装する方法を説明します。ALB の加重ターゲットグループを使用した AWS CodeDeploy でのカナリアデプロイを行う場合はこちらの記事を参照してください。

Read More

AWS CodeBuild が大阪リージョンでご利用いただけるようになりました。

みなさん、こんにちは。アマゾン ウェブ サービス ジャパン、シニアエバンジェリストの亀田です。 AWS CodeBuild が大阪リージョンでご利用いただけるようになりましたのでお知らせいたします。 AWS CodeBuild CodeBuild はAWS Codeサービスファミリーの一つであり、ソースコードをコンパイルし、テストを実行し、デプロイ可能なソフトウェアパッケージを作成できる完全マネージド型のビルドサービスです。大阪リージョンでは、すでにプライベート Git リポジトリをホストする AWS CodeCommit 、オンプレミスを含めたさまざまなコンピューティングサービスへのソフトウェアのデプロイを自動化する AWS CodeDeploy 、がご利用可能でしたが、新しいラインナップが加わったことになります。

Read More

GitHub モノレポを AWS CodePipeline と統合して、プロジェクト固有の CI/CD パイプラインを実行する

(この記事は、Integrate GitHub monorepo with AWS CodePipeline to run project-specific CI/CD pipelines を翻訳したものです。) AWS CodePipeline は、ソフトウェアのリリースに必要なステップをモデル化、可視化、自動化できる継続的デリバリーサービスです。AWS CodePipeline を使用して、コードを構築し、稼働前の環境にデプロイし、アプリケーションをテストし、実稼働環境にリリースするまでの完全なリリースプロセスをモデル化できます。AWS CodePipeline は、コードが変更されるたびに定義されるワークフローに従って、アプリケーションを構築、テスト、デプロイします。多くの組織が GitHub をソースコードリポジトリとして使用しています。組織によっては、1 つの GitHub リポジトリに複数のアプリケーションまたはサービスをフォルダで分割して格納することを選択しています。リポジトリ内のソースコードをこのように整理する方法は、モノレポと呼ばれます。 この記事では、AWS Lambda で GitHub イベントペイロード(訳者注:GitHub 上でのアクティビティを元にトリガーされるイベント情報。詳細は GitHub イベントのドキュメントをご確認ください。)を読み取り、サービス固有のパイプラインを実行するようにカスタマイズする方法を示します。

Read More
Solutions Design diagram explaining how the solution is structured

Selenium, AWS Lambda, AWS Fargate, AWS Developer Tools を使ったサーバーレスなUIテスト

(この記事は、 Serverless UI testing using Selenium, AWS Lambda, AWS Fargate, and AWS Developer Tools を翻訳したものです。) 以前、Using AWS CodePipeline, AWS CodeBuild, and AWS Lambda for Serverless Automated UI Testing (日本語版 ) を公開してから、Chrome headless とFirefox headless が各ブラウザでネイティブにサポートされるようになったことで、事態は大きく変わりました。 AWS Lambda は今やコンテナイメージをサポートし、 AWS Step Functions はLambda と統合された Map state のサポートを追加し、AWS Fargate は完全にサーバーレスのテクノロジを利用した、UIテストを可能にしました。

Read More

AWS Service Catalog を使用しての、Amazon ECS 継続的デリバリー用の自動設計図の共有

この記事は、AWS Dev Tech のスペシャリスト SA である Mahmoud ElZayet が執筆しました  現代的なアプリケーション開発プロセスは、各組織がスピードや品質を継続的に向上することを可能にしています。このような革新的なカルチャーにおいては、小型の自律的なチームに、アプリケーションの全ライフサイクルがゆだねられます。ただ、こういった敏速かつ自律的なチームは、製品デリバリーを加速する一方で、コンプライアンスや品質保証、およびコードデプロイのためのインフラストラクチャに対するコストを生じさせます。 標準化したツールやアプリケーションリリース用コードを用いることで、チーム間でベストプラクティスを共有でき、冗長的なコードを削減し、オンボーディングを加速し、一貫性のあるガバナンスを作り上げながらリソースのオーバープロビジョニングを減らせます。   概要 今回の記事では、標準化され自動化されたデプロイ設計図を、AWS Service Catalog を使用して提供する方法をご紹介していきます。これは、製品チームによる Amazon ECS でのアプリケーションリリースワークフローの改善と迅速化に役立ちます。ここでの手順を実施していただくと、お客様の製品チームが ECS 上でコンテナ化されたアプリケーションをリリースするために使用できる、サンプル設計図が作成できます。この設計図のコンセプトは、サーバーレスや Amazon EC2 をベースとするデプロイなど、他のテクノロジーにも適用が可能です。 本稿で提供するサンプルテンプレートやスクリプトはデモ用に用意したものなので、実稼働環境でそのまま使用するには適しません。これらのリソースになじんだ後で、手元にあるツールや、チームのスキル、そして適用すべき規格や規制をすべて考慮しながら、実稼働環境向けにカスタマイズしたバージョンを作成してください。   前提条件 ここでのソリューションには、次に挙げる各リソースが必要です。 AWS アカウント での管理者アクセス権限 AWS CLI   サンプルシナリオ Example Corp という企業では、アプリケーションやサービスを AWS 上で開発するために、いくつかの製品チームを抱えています。同社内の各チームは、ECS 上の AWS Fargate で管理するコンテナ化したアプリケーションのデプロイに関心を示しています。ここでは、Example Corp. における主幹ツール管理チームとして、各チームが Fargate で迅速にアプリケーションをリリースできることを目指します。さらに、すべてのベストプラクティスやガバナンス要件を、各チームが準拠することも保証していきます。 事情を単純にするために、製品チームはすでに構成済みであり、サービスのデプロイ用に AWS のアカウントを共有しながら、同じドメイン、アプリケーション、もしくはプロジェクトで作業をしていると想定します。この 1 つのアカウントを通じ、チーム全体が同じ ECS […]

Read More

[AWS Black Belt Online Seminar] AWS CodeBuild 資料及び QA 公開

先日 (2020/11/25) 開催しました AWS Black Belt Online Seminar「AWS CodeBuild」の資料を公開しました。当日、参加者の皆様から頂いた QA の一部についても共有しております。 20201125 AWS Black Belt Online Seminar AWS CodeBuild AWS クラウドサービス活用資料集(すべての過去資料が閲覧できます) Q. プロキシサーバが必要なのはどんなケースでしょうか? A. システム要件によりプロキシサーバを経由する必要がある場合にご利用ください。 例:オンプレミス上のプロキシサーバを経由する必要がある、アクセスログを残す必要があるなど。 Q. テストレポートは、CodeBuildの実行履歴からたどれるのでしょうか A. テストレポートは以下よりご確認いただけます。 ビルド履歴のレポートタブ レポートグループおよびレポート履歴 Q. phasesでプロセスを分けるメリットは何でしょうか? A. 任意のフェーズに全ての処理を記述することも可能ですが、フェーズを分けることでビルド仕様の可読性が上がる、フェーズ毎に run-as で実行ユーザを変更できる、フェーズ毎に通知を受け取れるなどがあるかと思います。 Q. CodeBuildを使ったテスト方法を知りたいです。 A. AWS CodeBuild のドキュメントにいくつか例がございます。こちらをご参照ください。 Q. AWS CodeBuild に Heroku/GitLab「アプリの確認」に似た機能はありますか?そうでない場合、AWS サービスの組み合わせによる同様の機能はありますか? A. 同様の機能はございませんが、ソースリポジトリへのプルリクエストをトリガーに、確認用環境構築を自動化する仕組みを作成することで同様のことは可能かと思います。確認用環境のリソース作成には AWS CloudFormation 、デプロイには […]

Read More
CDK

CDK Pipelines: AWS CDK アプリケーションの継続的デリバリ

AWS Cloud Development Kit(AWS CDK)は、使い慣れたプログラミング言語でクラウドインフラストラクチャを定義し、AWS CloudFormation を通じてプロビジョニングするためのオープンソースのソフトウェア開発フレームワークです。AWS CDK は、次の 3 つの主要なコンポーネントで構成されています。 再利用可能なインフラストラクチャ・コンポーネントをモデリングするためのコアフレームワーク CDK アプリケーションをデプロイするための CLI AWS Construct Library(クラウドリソースを抽象化し、実績のあるデフォルト値をカプセル化する高レベルのコンポーネントのセット) CDK を使用すると、cdk deploy を実行するだけで、ワークステーションから AWS クラウドにアプリケーションを簡単にデプロイできます。これは、初期開発およびテストを行う場合に最適ですが、本番ワークロードをデプロイするためには、より信頼性の高い自動化されたパイプラインを使用する必要があります。 CDKアプリケーションを継続的にデプロイするために、お好みのCI/CDシステムを利用することが可能ですが、より簡単で、かつすぐに利用可能な方法をお客様はご要望でした。これはCDKの中核的な理念に適合します。つまりクラウドアプリケーションの開発を可能な限り簡素化して、お客様が関心のある部分に集中することです。 CDK Pipelines の開発者プレビューリリースをお知らせします。CDK Pipelines は、AWS CodePipeline によって CDK アプリケーションの継続的なデプロイパイプラインを簡単にセットアップできる高レベルのコンストラクトライブラリです。この投稿では、CDK Pipelines を使用して、AWS Lambda と連携した Amazon API Gateway エンドポイントを 2 つの異なるアカウントにデプロイする方法について説明します。

Read More