Amazon Web Services ブログ

Category: Java

AWS Cloud Development Kit v2 開発者プレビューのお知らせ

AWS Cloud Development Kit (AWS CDK) v2が開発者プレビューとして、TypeScript、Python、Java、C#、Go言語で利用できるようになりました。AWS CDKは、使い慣れたプログラミング言語を使ってクラウドアプリケーションのリソースをモデル化し、プロビジョニングするためのオープンソースのソフトウェア開発フレームワークです。AWS CDKを使用すると、インフラストラクチャをコードとして定義し、AWS CloudFormationを通じてプロビジョニングすることができます。AWS CDKは、実績のあるデフォルト値で事前に設定された高レベルなコンポーネントを提供しているため、専門家でなくてもクラウドアプリケーションを構築することができます。また、組織の要件を組み込んだ独自のカスタムコンポーネントを構成して共有することができるため、チームが新しいプロジェクトを迅速に開始することができます。 2019年7月には、TypeScriptとPython向けのAWS CDK v1の一般提供を発表しました。それ以降、JavaとC#の追加言語のサポートをリリースし、Go言語バインディングの開発者プレビューをリリースしました。今回はv2のプレビューリリースを発表します。このリリースによりAWS CDKをより簡単に利用できるようになり、また今後のバージョンアップに対応することがより容易になります。 AWS CDK v1アプリケーションの最新マイナーバージョンからv2への移行は、比較的簡単です。まずAWSアカウントで再度ブートストラップ (cdk bootstrap) をする必要がありますが、これは各リージョンで一度だけの作業です。ほとんどのプロジェクトでは、インポート文を更新し、合成(synth) し、デプロイするだけで済みます。リソースに若干の変更があるかもしれませんが、リソースの作り直しが必要になるようなことはありません。 この記事では、AWS CDK v1とv2の間の変更点をご紹介します。 AWS Construct Libraryが一つのパッケージに AWS CDK v1では、AWS Construct Libraryをサービスごとに多くの小さなパッケージに分割し、使いたいサービスのパッケージをダウンロードするだけで済むように細心の注意を払っていました。 この方法の欠点は、アプリケーションに新しいAWSサービスを追加するたびに、ターミナルに戻って別のパッケージをnpm installまたはpip installしなければならないことでした。さらに、NPMを使用している場合は、これらのパッケージがすべて同じバージョンであることが非常に重要でした。そうでない場合、NPMはいくつかのライブラリの複数のコピーをインストールする可能性があり、それらは適切に相互運用されませんでした。お客様からは、AWS CDKへの依存関係を正しく管理することが難しいというフィードバックをいただきました。 v2からは、AWS Construct Libraryの全てをaws-cdk-libという一つのパッケージに統合しました。このパッケージをインストールすることで、すべてのAWS CDK Constructにアクセスできるようになり、サードパーティのConstruct Libraryも同様にこのパッケージへの依存関係を作るだけで済みます。 また、constructsのプログラミングモデルを、constructsと呼ばれる別のライブラリに抽出しました。これは、相互運用可能なConstructライブラリの大規模なエコシステムの基礎となるもので、すでに cdk8s や terraform-cdk などの姉妹プロジェクトで使用されています。 v2の設計上の選択についての詳細は、GitHubのRFCをご覧ください。   Construct互換レイヤーの移動 AWS CDKのプログラミングモデルの適用範囲をKubernetesなどの他のドメインに広げるための取り組みとして、基本となるConstructクラス (およびいくつかの関連する型) をAWS […]

Read More

AWS App2Container – Java および ASP.NET アプリケーション用の新しいコンテナ化ツール

お客様は、コンテナとサーバーレステクノロジーを使用して新しいアプリケーションを開発することが多くなり、ソフトウェアデリバリーライフサイクルを自動化するために最新の継続的インテグレーションおよび継続的デリバリー (CI/CD) ツールを使用しています。また、手動で、または従来のシステムを使用して、構築および管理される多数の既存のアプリケーションを維持しています。異なるツールを使用してこれら 2 つのアプリケーションのセットを維持することで、運用上のオーバーヘッドが増加し、新しいビジネス機能の提供ペースが低下します。お客様は、既存のアプリケーションと新しいアプリケーションの両方について、管理ツールと CI/CD プロセスを可能な限り標準化できるようにしたいと考えています。その目的を達成するための最初のステップとして、既存のアプリケーションをコンテナにパッケージ化するオプションに目を向けています。 しかし、既存のアプリケーションをコンテナ化するには、アプリケーションの依存関係の識別、dockerfiles の書き込み、各アプリケーションのビルドプロセスとデプロイメントプロセスの設定など、手動による多くの作業を必要とします。これらの手動による作業は時間がかかり、エラーが発生しやすく、最新化に向けた取り組みの速度を低下させる可能性があります。 本日、当社は AWS App2Container をリリースします。これは、コードを変更することなく、オンプレミス、Amazon Elastic Compute Cloud (EC2)、または他のクラウドで実行されている既存のアプリケーションをコンテナ化するのに役立つ新しいコマンドラインツールです。App2Container は、サーバーで実行されているアプリケーションを検出し、それらの依存関係を識別して、Amazon ECS および Amazon EKS へのシームレスなデプロイのために、関連するアーティファクトを生成します。また、AWS CodeBuild および AWS CodeDeploy との統合を提供して、コンテナ化されたアプリケーションを繰り返し構築およびデプロイすることを可能にします。 AWS App2Container は、アプリケーションコンポーネントごとに、アプリケーションファイル/フォルダー、Dockerfiles、Amazon Elastic Container Registry (ECR) のコンテナイメージ、ECS タスク定義、Kubernetes デプロイ YAML、Amazon ECS または EKS にアプリケーションをデプロイする CloudFormation テンプレート、および AWS CodeBuild と CodeDeploy を活用する AWS Codepipeline でビルド/リリースパイプラインを設定するためのテンプレートといったアーティファクトを生成します。 本日より、App2Container を使用して、Windows […]

Read More

新発表 – AWS Toolkits for PyCharm、IntelliJ(プレビュー)、Visual Studio Code(プレビュー)

ソフトウェア開発者には好みの開発ツールというものがあります。パワフルなエディタを使う人もいれば、特定の言語やプラットフォームに最適化された統合開発環境(IDE)を使う人もいます。AWS Lambda のコンソールのエディタを使って、2014年に私は初めての AWS Lambda 関数を作りました。現在では、サーバーレス・アプリケーションをビルドしデプロイするためのツールの選択肢は豊富になりました。例えば、昨年 AWS Cloud9 がリリースされて AWS Lambda のコンソールのエディタ環境は大きく強化されました。.NET アプリケーションでは、 AWS Toolkit for Visual Studio と AWS Tools for Visual Studio Team Services を使う事ができます。 AWS Toolkits for PyCharm、IntelliJ(プレビュー)、そして Visual Studio Code(プレビュー) 今日、 AWS Toolkit for PyCharm の一般提供をお知らせします。また、 AWS Toolkits for IntelliJ と Visual Studio Code の開発者プレビューをお知らせします。これら(AWS Toolkits for IntelliJ と Visual Studio […]

Read More