Amazon Web Services ブログ

新規 — デプロイメントパイプラインのリファレンスアーキテクチャとリファレンス実装

1月30日、エンタープライズグレードのデプロイパイプラインのための新しいリファレンスアーキテクチャとリファレンス実装のセットをリリースいたします。デプロイパイプラインは、アプリケーションまたはインフラストラクチャの構築、テスト、および AWS 環境へのデプロイを自動化します。ワークロードをクラウドにデプロイする場合、デプロイパイプラインを持つことが俊敏性を高め、市場投入までの時間を短縮するための鍵となります。

カンファレンスやソーシャルメディアで皆さんと話すと、私たちのドキュメントやチュートリアルが新しいサービスや新しいコンセプトを始めるのに良いリソースであるとよく耳にします。ただし、使用量を拡大したい場合や、複雑なユースケースやエンタープライズグレードのユースケースがある場合は、深く掘り下げるためのリソースが不足していることもよくあります。

これが、私たちが長年にわたり、実際のユースケースセキュリティリファレンスアーキテクチャに基づいて何百ものリファレンスアーキテクチャを作成してきた理由です。本日、このコレクションに新しいリファレンスアーキテクチャを追加いたします。

このデプロイパイプラインのリファレンスアーキテクチャと実装には、Amazon で学んだベストプラクティスと数百ものお客様のプロジェクトから得た教訓が活かされています。一般的な「Hello World」の例をはるかに超えています。複数の環境、複数の AWS アカウント、複数のリージョン、手動承認、自動テスト、自動コード分析などを含む複雑なデプロイパイプラインの構築方法と実装方法を文書化しています。DevOps と継続的デリバリーを通じて顧客へのソフトウェア配信のスピードを上げたい場合、この新しいリファレンスアーキテクチャは、AWS のサービスを組み合わせて連携させる方法を示しています。アーキテクチャの必須コンポーネントとオプションコンポーネントが文書化されています。

アーキテクチャのドキュメントと図があるのは素晴らしいことですが、実装があることはさらに優れています。リファレンスアーキテクチャの各パイプラインタイプには、少なくとも 1 つのリファレンス実装があります。リファレンス実装の 1 つは、AWS Cloud Development Kit (AWS CDK) アプリケーションを使用してリファレンスアーキテクチャをアカウントにデプロイします。リファレンスアーキテクチャを検討したり、特定の要件に合わせてカスタマイズしたりすることから始めるとよいでしょう。

このリファレンスアーキテクチャとその実装は https://pipelines.devops.aws.dev にあります。

デプロイメントパイプラインのリファレンスアーキテクチャ

リファレンス実装をデプロイしましょう
新しいデプロイメントパイプラインのリファレンスアーキテクチャは、 Java コンテナ化されたアプリケーションとデータベースをデプロイするためのパイプラインを構築する方法を示しています。2 つのリファレンス実装が付属しています。Amazon EC2 AMI のデプロイ、アカウント群の管理、アプリケーションの動的設定の管理を行うためのパイプラインタイプの追加に取り組んでいます。

サンプルアプリケーションは SpringBoot で開発されています。これは、Amazon が提供する OpenJDK のディストリビューションである Corretto で動作します。アプリケーションは CDK でパッケージ化され、AWS Fargate にデプロイされます。ただし、ここではアプリケーションは重要ではありません。独自のアプリケーションに置き換えることができます。重要な部分は、インフラストラクチャコンポーネントとアプリケーションをデプロイするためのパイプラインです。このパイプラインタイプには、2 つのリファレンス実装が用意されています。1 つは re: Invent 2022 で発表した新しいサービスである Amazon CodeCatalyst を使用してアプリケーションをデプロイし、もう 1 つは AWS CodePipeline を使用しています。これは、このブログ投稿用にデプロイすることを選択したものです。

パイプラインは AWS CodeBuild を使用してアプリケーションの構築を開始します。ユニットテストを実行するとともに、Amazon CodeGuru を実行してコードの品質とセキュリティを確認します。最後に、Trivy を実行して、アプリケーションの依存関係にある既知の脆弱性など、その他のセキュリティ上の懸念事項を検出します。構築が成功すると、パイプラインはベータ、ガンマ、プロダクションの 3 つの環境にアプリケーションをデプロイします。アプリケーションを単一リージョンのベータ環境にデプロイします。パイプラインはベータ環境でエンドツーエンドのテストを実行します。ガンマ環境へのデプロイを続けるには、すべてのテストが成功する必要があります。ガンマ環境では、2 つのリージョンを使用してアプリケーションをホストします。ガンマ環境へのデプロイ後、本番環境へのデプロイは手動承認の対象となります。最後に、パイプラインはアプリケーションを 6 つのリージョンの本番環境にデプロイします。3 ウェーブのデプロイを、それぞれ 2 つのリージョンで行います。

デプロイメントパイプラインのリファレンスアーキテクチャ

このリファレンス実装をデプロイするには、4 つの AWS アカウントが必要です。1 つはパイプラインとツールをデプロイするためのもので、もう 1 つは各環境 (ベータ、ガンマ、プロダクション) 用です。大まかに言うと、デプロイのステップは 2 つあります。1 つは 4 つのアカウントすべてに CDK をブートストラップし、次に toolchain アカウントにパイプライン自体を作成します。アカウントの準備、パイプラインの作成、最初のデプロイには、2 ~ 3 時間の時間をかけて計画する必要があります。

パイプラインが作成されると、AWS CodeCommit のソースからサンプルアプリケーションを構築、テスト、デプロイします。アプリケーションのソースコードに変更をコミットしてプッシュすると、パイプラインのステップが再び実行されることを確認できます。

同僚の Irshad Buch が、私のアカウントでパイプラインを試すのを手伝ってくれました。彼は詳細な README を書いてステップバイステップの説明を行い、皆さんが自分の側で同じことができるようにしました。この実装を詳細に説明するリファレンスアーキテクチャは、この新しいウェブページにあります。アプリケーションのソースコード、アプリケーションをデプロイするための AWS CDK スクリプト、およびパイプライン自体を作成する AWS CDK スクリプトはすべて AWS の GitHub で入手できます。気軽に投稿したり、問題を報告したり、改善を提案したりしてください。

今すぐご利用いただけます
デプロイメントパイプラインのリファレンスアーキテクチャとそのリファレンス実装は、今すぐ無料で入手できます。リファレンス実装をデプロイする場合は、アカウントで作成したリソースに対して課金されます。提供されている AWS CDK コード詳細な手順を使用して、このパイプラインを AWS アカウントにデプロイできます。今すぐ使用してみましょう!

— seb

原文はこちらです。