Amazon Web Services ブログ

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

by AWS Japan Staff | on | in AWS CodeBuild, AWS CodeCommit, AWS CodeDeploy, AWS CodePipeline |

それほど遠く無い昔、今日多くのソフトウェア チームがアプリケーション開発で直面している、リリース期限までにソフトウェア プロジェクトを完成させ変化に対応するというような開発チームに私は所属していました。そこには新しいプロジェクト環境のセットアップ、チームメンバーのコラボレーション、各開発ビルドのコード変更、構成、ライブラリの継続的な追跡を行う日常的なタスクなどの課題がありました。 今日、企業がイノベーションと市場投入をより迅速に行うためには、開発チームがソフトウェアの作成、構築、展開をより簡単かつ効率的に行うことが不可欠になっています。

 

残念なことに、多くの組織は、より機敏で動的なソフトウェア開発プロセスを追求する上で、いくつかの重要な課題に直面しています。 ほとんどの新しいソフトウェア プロジェクトが直面する最初の課題は、開発者がコーディングを開始する前に完了しなければならない長いセットアップ プロセスです。 このプロセスには、IDEのセットアップ、適切なコード リポジトリへのアクセスの取得、および/またはビルド、テスト、および運用に必要なインフラストラクチャの識別が含まれます。

 

コラボレーションは、ほとんどの開発チームが直面しうる別の課題です。 プロジェクトのすべてのメンバーに安全な環境を提供するために、チームはさまざまなチームの役割とニーズに応じて別々のプロジェクトとツールを頻繁に設定する必要があります。 さらに、すべてのステークホルダーに、課題の更新、開発の進展、およびソフトウェアの問題の報告に関する情報を提供することは、時間がかかる可能性があります。

 

最後に、ほとんどの企業では、継続的インテグレーションと継続的デリバリに関するベストプラクティスを採用することで、ソフトウェア開発のスピードを高め、市場投入までの時間を短縮したいと考えています。 これらのアジャイル開発戦略を適用するには、企業が方法論についてチームを教育し、これらの新しいプロセスのためのリソースを設定するための時間を費やす必要があります。

 

AWS CodeStar:プレゼンテーション

 

開発チームがソフトウェアを構築する上での課題を緩和し、アプリケーションやソリューションをリリースするペースを向上させるために、AWS CodeStarを紹介します。

 

AWS CodeStarは、開発プロジェクト全体の設定を簡素化することにより、AWS上でアプリケーションの開発、構築、および展開を容易にするために設計されたクラウドサービスです。 AWS CodeStarには、ソフトウェア プロジェクトのコーディング、ビルド、テスト、デプロイ、および実行のためのプロジェクトとリソースのプロビジョニングを可能にする一般的な開発プラットフォーム用のプロジェクト テンプレートが含まれています。

 

AWS CodeStarサービスの主な利点は次の通りです:

  • Amazon EC2AWS Elastic Beanstalk、またはAWS Lambda用のテンプレートを使用して、5つの異なるプログラミング言語を使用して新しいプロジェクトを簡単に作成できます。 JavaScript、Java、Python、Ruby、およびPHPをサポートします。 テンプレートを選択すると、サービスはプロジェクトとアプリケーションに必要な基盤となるAWSサービスをプロビジョニングします。
  • ソフトウェアチーム全体に対するアクセスおよびセキュリティ ポリシー管理の統一されたエクスペリエンスを提供します。プロジェクトは、適切なIAMコントロール ポリシーで自動的に構成され、安全なアプリケーション環境を確保します。
  • コードのコミット、ビルドの結果、デプロイメント アクティビティなど、さまざまなアクティビティを追跡するための事前設定されたプロジェクト管理ダッシュボード。
    素早い立ち上げと実行に役立つ実行可能なサンプルコードは、Visual Studio、Eclipse、またはGitをサポートする任意のコード エディタなどのお好きなIDEで使用できます。
  • AWS CodeCommitAWS CodeBuildAWS CodePipeline、およびAWS CodeDeployを使用して、自動的に構成された各プロジェクトの継続的なデリバリ パイプライン。
  • CodeStarコンソールから課題管理とトラッキングを直接行えるAtlassian JIRA Softwareとの統合

 

AWS CodeStarによって、開発チームはソフトウェアのデプロイとバグ修正のスピードアップだけでなく、開発者が顧客の要望やニーズに一層合ったソフトウェアを構築できるようにするためのアジャイル ソフトウェア開発ワークフローを構築することができます。

 

AWS CodeStarを使用したレスポンシブな開発ワークフローの例を以下に示します:

CodeStarへの旅

 

AWS CodeStarサービスについて少し理解できたので、このサービスを使ってWebアプリケーションプロジェクトを設定しましょう。 まず、AWS CodeStar Consoleに行き、[Start a project]ボタンをクリックします。

適切なIAM権限を設定していない場合、AWS CodeStarはあなたのためにAWSリソースを管理する権限を要求するダイアログボックスを表示します。 [Yes、grant permissions]ボタンをクリックして、AWS CodeStarに他のAWSリソースへの適切な権限を与えます。

ところが、IAMユーザーに正しいポリシーを適用していないため、AWS CodeStarに対する管理者権限がないという警告が表示されました。 AWS CodeStarでプロジェクトを作成する場合は、IMSユーザーにAWSCodeStarFullAccess管理ポリシーを適用するか、すべてのAWSサービスに対して完全な権限を持つIAM管理ユーザーを持っている必要があります。

IAMで前述の権限を追加したので、このサービスを使ってプロジェクトを作成することができます。 単に [Create a new project]ボタンをクリックするだけで、AWS CodeStarサービスのハブに移動します。

この時点でソフトウェア開発のニーズに応じて、さまざまな環境を提供するために、20種類以上のAWS CodeStarプロジェクトテンプレートが用意されています。 各プロジェクトテンプレートは、プロジェクトの展開に使用されるAWSサービス、サポートされているプログラミング言語、実装されている開発ソリューションの種類の説明が記述されています。 AWS CodeStarは現在、Amazon EC2、AWS Lambda、AWS Elastic BeanstalkのAWSサービスをサポートしています。 これらのプロジェクト テンプレートは、あらかじめ設定されたAWS CloudFormationテンプレートを使用して、ボタンをクリックするだけで、マイクロサービス、Alexaスキル、Webアプリケーションなどのソフトウェア開発プロジェクトを作成できます。

私の最初のAWS CodeStarプロジェクトでは、Node.js / AWS Lambdaプロジェクトテンプレートを使用して、Node.jsとAWS Lambdaを使用してサーバーレスWebアプリケーションを構築しましょう。

このテンプレートによってAWS CodeStarがAWS CodeBuild、AWS CloudFormation、Amazon CloudWatchなどのサービスと連携するAWS CodePipelineを含む、開発プロジェクトに必要なすべてのツールとサービスを設定することに気づくでしょう。 新しいAWS CodeStarプロジェクトの名前をTaraWebProjectにして、Create Projectをクリックします。

ここではAWS CodeStarを初めて作成したので、AWS CodeStarのユーザー設定について質問するダイアログが表示されます。 表示名のテキストボックスにTaraと入力し、メールテキストボックスに自分のメールアドレスを追加します。 この情報は、プロジェクトの他のメンバーにどのように表示されるかを示しています。

次に、プロジェクトコードの編集方法を選択します。 Visual Studio IDEを使用してTaraWebProjectプロジェクトコードを編集することに決めました。 Visual Studioでは、プロジェクトコードの編集中にAWS Toolkit for Visual Studio 2015を使用してAWSリソースにアクセスするように設定することがポイントです。 この画面では、AWS CodeStarがプロジェクト用に設定したAWS CodeCommit Gitリポジトリへのリンクも表示されます。

ソフトウェア開発プロジェクトのプロビジョニングとツールのセットアップが完了しました。 私のソフトウェアプロジェクトであるTaraWebProjectのAWS CodeStarダッシュボードを提示されているので、プロジェクトのリソースを管理することができます。 これには、コードのコミット、チームメンバーシップとwiki、継続的なデリバリ パイプライン、Jiraの課題トラッキング、プロジェクトステータス、およびその他の適用可能なプロジェクトリソースなどのリソース管理が含まれます。

AWS CodeStarが本当にすばらしいのは、サーバレスWebアプリケーションの開発を開始できる実用的なサンプルプロジェクトを提供することです。 私の新しいWebアプリケーションのサンプルを見るには、ダッシュボードのApplication endpointsセクションに行き、提供されたリンクをクリックします。

新しいブラウザウィンドウが開き、開発を開始するためにAWS CodeStarが生成したサンプルWebアプリケーションが表示されます。サンプルアプリケーションのクールな機能は、サンプルアプリのバックグラウンドが時刻に基づいて色が変わることです。

サンプルWebサイトの構築に使用したコードを見てみましょう。 コードを表示するには、AWS CodeStarコンソールのTaraWebProjectダッシュボードに戻り、サイドバーメニューからCodeオプションを選択します。

AWS CodeCommitコンソールのtarawebproject Gitリポジトリに移動します。 ここから自分のWebアプリケーションのコード、リポジトリで行われたコミット、コミットやブランチの比較、リポジトリのイベントに応じたトリガーの作成を手動で行うことができます。

これによりAWSでホストされているWebアプリケーションの開発を開始することができます。 AWS CodeStarをVisual Studioに統合したので、コードを変更するためにIDEを使用してWebアプリケーションを更新することができます。これによってプロビジョニングされたコード リポジトリにコミットするたびにTaraWebProjectに含まれるコードを毎回自動的更新できます。

AWS CodeStarのTaraWebProjectダッシュボードには、コードを操作するためにツールをプロジェクト リポジトリに接続していますというメッセージがあります。 Visual StudioをIDEとして既に選択していますが、Connect ToolsボタンをクリックしてこのIDEに接続する手順を確認してみましょう。

再度、どのIDEを選択するかを選択できる画面を参照します。 Visual Studio、Eclipse、またはコマンドライン ツールがプロジェクト コードの編集に使用できます。 開発プロジェクトの作業中はいつでもIDEの選択肢を変更するオプションがあることが重要です。 さらに、HTTPSとSSH経由のGitでAWS CodeCommitリポジトリに接続できます。 各プロトコルの適切なリポジトリURLを取得するには、Code repository URLドロップダウンを選択してHTTPSまたはSSHを選択し、結果のURLをテキストフィールドから単にコピーするだけです。

Visual Studioを選択した後、CodeStarはVisual Studioとの統合に必要な手順に進みます。 これには、Visual Studio用のAWS Toolkitのダウンロード、Team ExplorerをAWS CodeCommitを介してAWS CodeStarに接続すること、および変更をリポジトリにプッシュする方法が含まれます。

Visual StudioをAWS CodeStarプロジェクトに正しく接続したら、AWS CodeStar TaraWebProject CodeStarダッシュボードに戻り、Webアプリケーションで作業しているチームメンバーの管理を開始します。 Setup your teamを選択して、プロジェクトチームページに行くことができます。

私のTaraWebProjectプロジェクトチームページでは、Add team member ボタンを選択し Select userドロップダウンをクリックして、チームメンバーのJeffを追加します。 チームメンバーは自分のアカウントのIAMユーザーでなければならないので、JeffのIAMアカウントを作成するには、Create new IAM userリンクをクリックします。

Create IAM user ダイアログボックスが表示されたら、チームメンバー(この場合はJeff Barr)のIAMユーザー名、表示名、電子メールアドレスを入力します。 Jeffに付与できるプロジェクトロールには、所有者、コントリビュータ、ビューアの3種類があります。 TaraWebProjectアプリケーションでは、Contributor プロジェクト ロールを付与し、Remote accessチェックボックスをオンにしてリモートアクセスできるようにします。 ここでは、[Create]ボタンをクリックしてJeffのIAMユーザーアカウントを作成します。

これにより、新しいIAMユーザーの作成を確認するIAMコンソールが表示されます。 IAMユーザー情報と許可されたアクセス許可を確認した後、[Create user]ボタンをクリックして、TaraWebProject用のJeffのIAMユーザーアカウントの作成を完了します。

Jeffのアカウントを正常に作成したら、Jeffのログイン資格情報を電子メールで送信するか、credentials.csvファイルをダウンロードすることが重要です。これらの資格情報を再度取得することはできません。 現在のログイン資格情報を取得せずにこのページを終了すると、Jeffの新しい資格情報を生成する必要があります。 [Close]ボタンをクリックすると、AWS CodeStarコンソールに戻ります。

JeffBarr-WebDev IAMロールを選択し、[Add]ボタンをクリックすることで、TaraWebProjectのチームメンバーとしてJeffを追加することができます。


私はジェフをAWS CodeStarプロジェクトのチームメンバーとして追加し、Webアプリケーションを構築する際にTaraWebProjectのチームコラボレーションを可能にしました。

私がAWS CodeStarサービスを本当に気に入っているのは、TaraWebProjectダッシュボードから自分のプロジェクトのすべてのアクティビティを監視できるからです。 アプリケーションのアクティビティや最近のコードのコミットを見ることができ、ビルドの結果、コードの変更、展開などのプロジェクトアクションの状態を1つの包括的なダッシュボードで追跡できます。 AWS CodeStarはダッシュボードのApplication activityセクションでAmazon CloudWatchと結びつけ、AWS CodePipelineに連携したContinious Deploymentセクションでビルドとデプロイメントのステータスに関するデータを提供し、Commit HistoryセクションでAWS CodeCommitのの最新のGit コードのコミットを表示します。


まとめ

AWS CodeStarサービスの旅で、AWSサービスを使用してTaraWebProjectソフトウェアプロジェクトのコーディング、ビルド、テスト、デプロイメント用に開発ツールチェーン全体をプロビジョニングしたサーバーレスWebアプリケーションを作成しました。 驚くべきことに、私はアプリケーションをリリースする日々のソフトウェア開発活動を管理するためのAWS CodeStarを使用するメリットについて、まださらっと表面をなめただけです。

AWS CodeStarを使用すると、AWS上でアプリケーションを迅速に開発、構築、および展開できます。 AWS CodeStarは、統一されたユーザーインターフェースを提供し、ソフトウェア開発活動を1か所で簡単に管理できるようにします。 AWS CodeStarでは、さまざまなテンプレートからAWS LambdaAmazon EC2AWS Elastic Beanstalkを使用してプロジェクトを設定することができます。 AWS CodeCommitAWS CodeBuildAWS CodePipeline、およびAWS CodeDeployを使用して、プロジェクト管理ダッシュボード、自動化された継続的デリバリ パイプライン、およびGitコードリポジトリが事前設定されており、開発者は最新のアジャイル ソフトウェア開発のベストプラクティスを実装できます。各AWS CodeStarプロジェクトは、Gitをサポートする一般的なIDEで使用できる実用的なコードサンプルを提供することにより、開発者に開発の最前線を提供します。加えてAWS CodeStarのAtlassian JIRA Softwareとの組み込みの統合機能によって、AWS CodeStarコンソールからダイレクトに連携するプロジェクト管理と課題追跡システムをソフトウェアチームに提供します。

AWS CodeStarサービスを使用して、AWSで新しいソフトウェア プロジェクトを開発することができます。 詳細については、AWS CodeStarの製品ページとAWS CodeStarのユーザーガイドのドキュメントを参照してください。
Tara

 

原文 New- Introducing AWS CodeStar – Quickly Develop, Build, and Deploy Applications on AWS (翻訳;SA 福井 厚)

TAGS: