Amazon Web Services ブログ

Category: AWS CodeCommit

.NET Frameworkのためのカスタムビルド環境でAWS CodeBuildを拡張する

.NET Framework用のカスタムCodeBuildビルド環境の作成方法について説明している、この素晴らしいブログを書いたMicrosoftプラットフォーム担当シニア・ソリューション・アーキテクト、Greg Eppelに感謝します。 — AWS CodeBuildは、ソースコードをコンパイルし、テストを実行し、展開可能なソフトウェアパッケージを生成する、フルマネージドなビルドサービスです。 CodeBuildは、Android、Go、Java、Node.js、PHP、Python、Ruby、Dockerなどのプログラミング言語とランタイムのためのビルド環境を提供します。 CodeBuildは、Microsoft Windows Serverプラットフォーム用のビルドもサポートしています。これには、Windows上の.NET Core用にあらかじめパッケージ化されたビルド環境も含まれます。アプリケーションで.NET Frameworkが使用されている場合は、独自のDockerイメージを使用して、Microsoftの.NET Frameworkクラスライブラリを含むカスタムビルド環境を作成する必要があります。この手順が必要な理由については、よくある質問を参照してください。この記事では、.NET Frameworkアプリケーション用のカスタムビルド環境を作成し、この環境を使用するようにCodeBuildを設定する手順を説明します。

Read More

AWS OpsWorks for Chef Automate におけるクックブックの継続的なテストとデリバリー

Chef サーバは、テスト済みの信頼できるクックブックを対象ノードの run list に簡単に追加できるハブであるべきです。しかしながら、クックブックのテストを実行し、Chef サーバへ配信する作業は手間のかかるタスクです。このプロセスをシンプルかつ迅速にするために、私たちは AWS の技術を活用してテストの実行と Chef サーバへのクックブックの配信を統合したパイプラインを構築しました。これによりクックブック開発の定型的ながらも重要な部分を自動化できます。

Read More

AWS Developer Toolsを使用したサーバレスなAWS Glue ETLアプリケーションの継続的インテグレーションとデリバリの実装

大規模なデータおよびデータレイクのワークロード用にサーバーレスETL(抽出、変換およびロード)アプリケーションを開発するためにAWS Glueはますます普及しています。 ETLアプリケーションをクラウドベースのサーバーレスETLアーキテクチャに変換する組織は、ソースコードからビルド、デプロイ、プロダクトデリバリまで、シームレスでエンドツーエンドの継続的なインテグレーションおよび継続的なデリバリ(CI / CD)パイプラインが必要です。優れたCI / CDパイプラインを持つことで、組織はプロダクションリリース前にバグを発見し、より頻繁にアップデートを提供することができます。また、開発者が高品質のコードを書いたり、ETLのジョブリリース管理プロセスを自動化したり、リスクを軽減したりするのに役立ちます。 AWS Glueは、フルマネージドのデータカタログとETLのサービスです。これは、データの発見、変換、およびジョブスケジューリングなどの困難で時間のかかる作業を簡素化し自動化します。 AWS Glueは、データソースをクロールし、CSV、Apache Parquet、JSONなどの一般的なデータフォーマットとデータタイプ用に事前に作成された分類子を使用してデータカタログを構築します。 AWS Glueを使用してETLアプリケーションを開発する場合、CI / CDの次のような課題に直面する場合があります。 ユニットテストによる繰り返しの開発 継続的なインテグレーションとビルド ETLパイプラインをテスト環境にプッシュする ETLパイプラインをプロダクション環境にプッシュする 実データを使用したETLアプリケーションのテスト(live test) データの調査と検証 この記事では、AWS Developer Tools(AWS CodePipeline、AWS CodeCommit、AWS CodeBuildなど)とAWS CloudFormationがサポートするサーバーレスAWS Glue ETLアプリケーションのCI / CDパイプラインを実装するソリューションを紹介します。 ソリューションの概要 次の図は、ワークフローのパイプラインを示しています。 このソリューションでは、AWS CodePipelineを使用して、ETLアプリケーションのソースコードのテストおよびステージへのデプロイを制御および自動化することができます。 このソリューションは、以下のステージを含むパイプラインで構成されています。 1.)Source Control:このステージでは、デプロイするETLジョブのAWS Glue ETLジョブソースコードとAWS CloudFormationテンプレートファイルの両方がバージョン管理にコミットされます。 バージョン管理にAWS CodeCommitを使用することにしました。 ETLジョブソースコードとAWS CloudFormationテンプレートを取得するには、gluedemoetl.zipファイルをダウンロードします。 このソリューションは、以前の記事、AWS Glue と Amazon S3 を使用してデータレイクの基礎を構築するに基づいて開発されました。 2.)LiveTest:このステージでは、AWS […]

Read More

AWS CodeCommitのプルリクエストを使用してコードレビューをリクエストし、コードについて議論する

シニアクラウドアーキテクトのMichael Edge氏のCodeCommitのプルリクエストに関する素晴らしいブログに感謝します。 ~~~~~~~~~~~~~ AWS CodeCommitは、プライベートGitリポジトリを安全にホスティングするフルマネージドなサービスです。CodeCommitは今ではプルリクエストをサポートするようになりました。これによってリポジトリのユーザは、コードの変更に対するレビュー、コメント、対話的なイテレーションが可能になります。チームメンバー間のコラボレーションツールとして使用されるプルリクエストは、CodeCommitリポジトリに対する変更の可能性を、リポジトリにそれらの変更をマージする前に確認するのに役立ちます。各プルリクエストは、次のように単純なライフサイクルを通じて実行されます: マージされる新機能は、featureブランチに1つ以上のコミットとして追加されます。コミットは、宛先のブランチにマージされません。 プルリクエストが通常は2つのブランチの差異から作成されます。 チームメンバーはプルリクエストをレビューし、コメントします。プルリクエストは、追加のコミットで更新される可能性があります。これにはコメントに対応して行われる変更や宛先ブランチとの差分から発生する変更が含まれます。 チームメンバーがプルリクエストに満足すれば、それは宛先ブランチにマージされます。 コミットは、プルリクエストに追加されるのと同じ順序で宛先ブランチに適用されます。

Read More

AWS CodePipelineを利用したネストされたAWS CloudFormationスタックの継続的デリバリー

CodePipeline の更新 – CloudFormation スタックの継続的デリバリーワークフローの構築で、 Jeff BarrはInfrastructure as Codeについてと、AWS CodePipelineを継続的デリバリーに使用する方法について説明しています。 本ブログ記事では、ソースリポジトリとしてAWS CodeCommitを、ビルドおよびテストツールとしてAWS CodeBuildを使用した、AWS CodePipelineを使ったネストされたCloudFormationスタックの継続的デリバリーについて説明します。手動承認プロセスに従ってCloudFormationチェンジセットを使用してスタックをデプロイします。 AWS CodePipelineでは、次の4つのステージでパイプラインを作成します。 Source (AWS CodeCommit) Build and Test (AWS CodeBuild および AWS CloudFormation) Staging (AWS CloudFormation および 手動承認) Production (AWS CloudFormation および 手動承認) 次の図に、パイプラインのステージと、各ステージのアクション、およびステージ間の遷移を示します。 CloudFormationテンプレート、テストスクリプト、およびビルドスペックファイルは、AWS CodeCommitリポジトリに格納されています。これらのファイルは、AWS CodePipelineのパイプラインのSourceステージで使用されます。 AWS::CloudFormation::Stackリソースタイプは、親スタックから子スタックを作成するために使用されます。 CloudFormationスタックリソースでは、S3バケットに格納される子スタックのテンプレートを必要とします。テンプレートファイルの場所は、リソース定義のPropertiesセクションにURLとして指定されます。 次のテンプレートは、3つの子スタックを作成します。 Security (IAM, セキュリティグループ) Database (RDSインスタンス) Web stacks (Auto ScalingグループのEC2インスタンス, ELB) Description: Master stack […]

Read More

ASP.NET CoreとAWS CodeStarのDeep Dive

AWS CodeStar チームは最近、2つのASP.NET Coreプロジェクト テンプレートの追加を発表しました。ご存知かもしれませんが、AWS CodeStarは継続的インテグレーションと継続的デプロイメント(CI/CD)パイプラインを開発者に代わって作成し、それによって開発者は貴重な時間をインフラの構築の代わりにアプリケーションの構築に費やすことができます。新しいASP.NET Coreプロジェクトテンプレートを使用することで、.NET開発者は初日からAWSアプリケーションを構築し、展開することができます。Tara Walkerの優れたブログ記事では、AWS CodeStarでASP.NET Core アプリケーションを作成する方法について説明しています。このブログ記事では、AWS CodeStarのASP.NET Coreプロジェクトにテストを追加する方法を学ぶ中で、背後で何が起こっているのかを詳しく見ていきます。   Unit Test プロジェクトの追加 私たちの目標は、HelloControllerの機能を実行するシンプルなテストケースを追加することです。私はあなたが全く新しいASP.Net Core Web Service プロジェクトを持っていると仮定しています。もし、まだプロジェクトを持っていない場合は、Taraのブログ記事(上記)をたどってプロジェクトを作成することができます。ASP.NET Core Web Service テンプレートを選択していることを確認してください。ASP.NET Core for AWS CodeStarプロジェクトを作成後、Team Explorer でプロジェクト リポジトリをクローンし、AspNetCoreWebServiceソリューションをロードしたら、残りのブログ記事に沿って後を追えるようになります。Team Explorer でリポジトリをセットアップするためのガイドが必要な場合は、5月のSteve RobertのVisual StudioとCodeCommitのインテグレーションについての発表をご覧ください。 最初に、AspNetCoreWebServiceTestという名前の新しいxUnitプロジェクトをAspNetCoreWebServiceソリューションに追加します。私たちの新しいテストプロジェクトはHelloControllerクラスとJsonResultを参照するので、AspNetCoreWebServiceをプロジェクト参照として追加し、Microsoft.AspNetCore.MvcをNuGet参照として追加する必要があります。それらをテストプロジェクトに追加すると、AspNetCoreWebServiceTest.csprojに次の追加情報が表示されます。   <ItemGroup> <PackageReference Include=”Microsoft.AspNetCore.Mvc” Version=”1.1.3″ /> … </ItemGroup> … <ItemGroup> <ProjectReference Include=”..\AspNetCoreWebService\AspNetCoreWebService.csproj” /> </ItemGroup>   これにより、HelloControllerクラスを直接参照し、JsonResultを展開することができます。次のように簡単なテストケースを追加しましょう。 using […]

Read More

New – AWS CodeStarの紹介 – AWS上のアプリケーションをすばやく開発、構築、デプロイする

それほど遠く無い昔、今日多くのソフトウェア チームがアプリケーション開発で直面している、リリース期限までにソフトウェア プロジェクトを完成させ変化に対応するというような開発チームに私は所属していました。そこには新しいプロジェクト環境のセットアップ、チームメンバーのコラボレーション、各開発ビルドのコード変更、構成、ライブラリの継続的な追跡を行う日常的なタスクなどの課題がありました。 今日、企業がイノベーションと市場投入をより迅速に行うためには、開発チームがソフトウェアの作成、構築、展開をより簡単かつ効率的に行うことが不可欠になっています。   残念なことに、多くの組織は、より機敏で動的なソフトウェア開発プロセスを追求する上で、いくつかの重要な課題に直面しています。 ほとんどの新しいソフトウェア プロジェクトが直面する最初の課題は、開発者がコーディングを開始する前に完了しなければならない長いセットアップ プロセスです。 このプロセスには、IDEのセットアップ、適切なコード リポジトリへのアクセスの取得、および/またはビルド、テスト、および運用に必要なインフラストラクチャの識別が含まれます。   コラボレーションは、ほとんどの開発チームが直面しうる別の課題です。 プロジェクトのすべてのメンバーに安全な環境を提供するために、チームはさまざまなチームの役割とニーズに応じて別々のプロジェクトとツールを頻繁に設定する必要があります。 さらに、すべてのステークホルダーに、課題の更新、開発の進展、およびソフトウェアの問題の報告に関する情報を提供することは、時間がかかる可能性があります。   最後に、ほとんどの企業では、継続的インテグレーションと継続的デリバリに関するベストプラクティスを採用することで、ソフトウェア開発のスピードを高め、市場投入までの時間を短縮したいと考えています。 これらのアジャイル開発戦略を適用するには、企業が方法論についてチームを教育し、これらの新しいプロセスのためのリソースを設定するための時間を費やす必要があります。   AWS CodeStar:プレゼンテーション   開発チームがソフトウェアを構築する上での課題を緩和し、アプリケーションやソリューションをリリースするペースを向上させるために、AWS CodeStarを紹介します。   AWS CodeStarは、開発プロジェクト全体の設定を簡素化することにより、AWS上でアプリケーションの開発、構築、および展開を容易にするために設計されたクラウドサービスです。 AWS CodeStarには、ソフトウェア プロジェクトのコーディング、ビルド、テスト、デプロイ、および実行のためのプロジェクトとリソースのプロビジョニングを可能にする一般的な開発プラットフォーム用のプロジェクト テンプレートが含まれています。   AWS CodeStarサービスの主な利点は次の通りです: Amazon EC2、AWS Elastic Beanstalk、またはAWS Lambda用のテンプレートを使用して、5つの異なるプログラミング言語を使用して新しいプロジェクトを簡単に作成できます。 JavaScript、Java、Python、Ruby、およびPHPをサポートします。 テンプレートを選択すると、サービスはプロジェクトとアプリケーションに必要な基盤となるAWSサービスをプロビジョニングします。 ソフトウェアチーム全体に対するアクセスおよびセキュリティ ポリシー管理の統一されたエクスペリエンスを提供します。プロジェクトは、適切なIAMコントロール ポリシーで自動的に構成され、安全なアプリケーション環境を確保します。 コードのコミット、ビルドの結果、デプロイメント アクティビティなど、さまざまなアクティビティを追跡するための事前設定されたプロジェクト管理ダッシュボード。 素早い立ち上げと実行に役立つ実行可能なサンプルコードは、Visual Studio、Eclipse、またはGitをサポートする任意のコード エディタなどのお好きなIDEで使用できます。 AWS CodeCommit、AWS CodeBuild、AWS CodePipeline、およびAWS CodeDeployを使用して、自動的に構成された各プロジェクトの継続的なデリバリ パイプライン。 […]

Read More

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

AWS 開発者用ツールは現代の DevOps を実施する上で役立ちます。概要については次をご覧ください (詳しくは「ソースコード管理やデプロイに使用できる新しい AWS ツール」を参照)。 は完全マネージド型のソースコード管理サービスです。既存の Git ツールやワークフローを引き続き使用しながら、安全でスケーラビリティに優れたプライベート Git リポジトリをホストするために同サービスを使用できます (詳細は「Introduction to AWS CodeCommit」のビデオをご覧ください)。 は インスタンスやオンプレミスサーバーでコードのデプロイを自動化します。デプロイの間にダウンタイムを回避しながら、すばやくアプリケーションを更新することができます (詳細は「Introduction to AWS CodeDeploy」のビデオをご覧ください)。 はリリースプロセスの効率化や自動化に使用することができる継続的配信サービスです。リポジトリ (CodeCommit または Git) でチェックインを行うと、ビルド、テスト、デプロイなどの操作が開始します (概要については「Introducing AWS CodePipeline」をご覧ください)。このビルドは CodeDeploy、、 のいずれかを使用して EC2 インスタンスまたはオンプレミスサーバーでデプロイすることができます。 こうしたサービスと既存のビルドやテストツールを組み合わせて使用することで、CodePipeline がまとめるエンドツーエンドソフトウェアのリリースパイプラインを作成することができます。 AWS は今年 Code* 製品に多数の機能強化を追加しました。今回は時期的にもそうした機能の概要をご説明するのにちょうど良い時期だろうと思い、このブログを公開することにしました。こうした機能強化の多くは開発者用ツールと AWS の他の部分を連携できるようにするので、今後もデプロイのプロセスを調整していくことが可能になります。 CodeCommit の機能強化 [codecommit_u] の新機能: リポジトリトリガー コードブラウジング コミット履歴 コミットの可視化 Elastic Beanstalk の統合 リポジトリトリガー – […]

Read More

【新機能】AWS CodeCommit の通知

AWS CodeCommit は、セキュアで高度にスケーラブルなプライベート Git リポジトリを容易にホストできるフルマネージドなソース管理サービスです。今回リポジトリ トリガーを追加することで CodeCommit はさらに有用なサービスになりました。これらのトリガーを利用することで、既にあるユニット テストやデプロイメント ツールをソースコード管理ワークフローに統合することができます。トリガーは効率的でスケーラブルなので、変更をポーリングするように構築されたモデルよりもより広範囲に適用可能です。継続的インテグレーションや継続的デリバリをベースとした開発方法論に向かって進むために、これらのトリガーが有用であることがお分かり頂けると思います。   通知に関するすべて CodeCommit のリポジトリごとに10個までのトリガーを作成することができます。トリガーはコードのプッシュ、ブランチ/タグの作成、ブランチ/タグの削除を含むリポジトリのアクションに対する応答として起動されます。トリガーはリポジトリの特定のブランチやすべてのブランチに対してセットできます。 トリガーによって Amazon Simple Notification Service (SNS) トピックの送信や AWS Lambda ファンクションの起動が可能です。また個々のトリガーはカスタム データで拡張することが可能で、そのデータによって特定のトリガーを同じイベントで実行される他のトリガーと区別することができます。リポジトリ イベントを email や SNS によって購買するためにトリガーを利用することができます。SNS から SQS へ書き込み、キューを通じて CI/CD のツールにジョブを上げたり、お使いのツールが提供する webhook に対して SNS を使ってアクティベートしたりできます。どのようなケースでも、CodeCommit リポジトリの変更によって指定したアクションがトリガーされます。また Lambda ファンクションを利用してビルド、シンタックスのチェック、コードの複雑度メトリックスの捕捉、開発者の生産性の測定(もちろん少ないほうがいいですね)などをトリガーできます。私の同僚もこの記事の最後にあるような、いくつかの珍しいアイデアを思いつきました! トリガーは AWS マネジメント コンソール、AWS コマンドライン インターフェース(CLI)、または CodeCommit API を通じて作成、表示、管理することができます。ここではコンソールを使います。左側のナビゲージョン列に Triggers の項目が追加されています: Create Trigger をクリックして開始します。単一のイベント(または複数のイベント)を選択し、単一のブランチ(または複数のブランチ)を選択し、通知の発行や Lambda ファンクションの起動に必要な詳細を入力します: 対象となるイベントとブランチを選択しました: […]

Read More