Amazon Web Services ブログ

Category: Programing Language

.NET on AWS

AWSで.NET 5を利用する

AWSには長い間.NETでの開発に携わってきた者が多数在籍しており、私たちは.NET 5がGAリリースされたことに大きい喜びを感じています。2020年夏に.NET Conf 2020で発表されたベンチマーク結果によると、旧バージョンの.NET Core 3.1に比べ特に性能改善に力が注がれたことがよく分かります。この記事では、AWSが.NET 5での開発をサポートするためにどんなサービスやツールをご用意しているか、コンピューティング・ネットワーク・開発者ツール・データベースといった4つの領域に分けて解説していきたいと思います。これらの情報をもとに、皆様がAWS上で.NETを最大限活用できれば幸いです。

Read More

Amazon CodeGuru の新機能 – Python サポート、Security Detector、および Memory Profiling

Amazon CodeGuru は、コードの品質を向上させるデベロッパーツールであり、次の 2 つの主要コンポーネントで構成されています。 CodeGuru Reviewer は、プログラム分析と機械学習を使用して、コード内で見つけにくい潜在的な欠陥を検出し、改善のための提案を提供します。 CodeGuru Profiler は、ライブアプリケーションからランタイムパフォーマンスデータを収集し、アプリケーションのパフォーマンスを微調整するのに役立つ視覚化と推奨事項を提供します。 本日は、3 つの新機能を発表いたします。 CodeGuru Reviewer および CodeGuru Profiler 用の Python のサポート (プレビュー) – CodeGuru を使用して Python で記述されたアプリケーションを改善できるようになりました。このリリース以前には、CodeGuru Reviewer は Java コードを分析でき、CodeGuru Profiler は Java 仮想マシン (JVM) で実行されるアプリケーションをサポートしていました。 CodeGuru Reviewer 用の Security Detector – CodeGuru Reviewer 用の新しい検出機能セットで、セキュリティの脆弱性を特定し、Java コード内のセキュリティのベストプラクティスをチェックします。 CodeGuru Profiler 用の Memory Profiling – 時間の経過に伴うオブジェクトタイプごとのメモリ保持の新しいビジュアライゼーションです。これにより、メモリリークを検出し、アプリケーションによるメモリの使用を最適化することが容易になります。 これらの機能をもっと詳しく見てみましょう。 […]

Read More

RAPIDSをAmazon SageMaker Processingで実行する

こんにちは、アマゾン ウェブ サービス ジャパンの藤田です。Amazon SageMakerは、すべての開発者が機械学習モデルを迅速に構築、トレーニング、デプロイできるようにするための完全マネージド型サービスです。Amazon SageMakerは機械学習モデルの開発を容易にするため、機械学習の各プロセスから負荷の大きな部分を取り除きます。 今回は、開発者が機械学習の前処理、後処理、モデル評価といったワークフローをAmazon SageMaker上で簡単に行うためのPython SDKであるAmazon SageMaker ProcessingとデータサイエンスのワークフローをGPUで高速化するフレームワーク、RAPIDSを使用し、サーバレスに前処理、特徴量作成を行う方法を紹介します。

Read More

サーバーレス LAMP スタック – Part 6: MVC からサーバーレスマイクロサービスへ

本投稿は AWS サーバーレス アプリケーションのシニアデベロッパーアドボケートである Benjamin Smith による寄稿です。 本シリーズの他のパートは以下のリンクからアクセスできます。また、関連するサンプルコードはこちらの GitHub リポジトリにあります。 パート1:サーバーレス LAMP スタックの紹介 パート2:リレーショナルデータベース パート3:Webサーバーの置き換え パート4:サーバーレス Laravel アプリの構築 パート5:CDK コンストラクトライブラリ この投稿では、マイクロサービスを使用してサーバーレス PHP アプリケーションを構築する方法をご理解いただけます。これまでご紹介してきた MVC フレームワークを利用した単一の Lambda 関数によるスケーラブルな Web ホスティングから、分離されたマイクロサービスモデルに移行する方法を示します。なお、このブログ投稿に付随するコード例は、この GitHub リポジトリにあります。 MVC アーキテクチャパターン 従来の LAMP スタックでは、多くの場合、Model-View-Controller(MVC)アーキテクチャを使って実装しています。これは、アプリケーションロジックをモデル、ビュー、およびコントローラの3つの部分に分離して実装する、確立された手法です。 モデル:この部分はアプリケーションのデータを管理する役割を果たします。その役割は、データベースから生データを取得したり、コントローラからユーザー入力を受け取ることです。 ビュー:このコンポーネントは表示に焦点を当てています。モデルから受け取ったデータをユーザーに提示します。ユーザーからの応答が認識され、コントローラコンポーネントに送信されます。 コントローラ:この部分はアプリケーションロジックを担当します。ユーザー入力に応答し、データモデルオブジェクトに対して相互作用を実行します。 データ、ロジック、およびプレゼンテーション層を分離するという MVC の原則により、1つの層での変更が他の層に与える影響を最小限に抑えることが可能です。これにより、開発プロセスがスピードアップし、レイアウトの更新、ビジネスルールの変更、および新機能の追加が容易になります。コンポーネント化によって、再利用とリファクタリングの適用性があがり、同時/並行開発がしやすくなります。 サーバーレス LAMP スタック サーバーレス LAMP スタックアーキテクチャについては、この投稿で説明しています。そこでは Webアプリケーションが 2つのコンポーネントに分割されています。アプリケーションにおける MVC フレームワークの役割をはたす単一の AWS Lambda 関数と、各応答を同期的に返す […]

Read More

サーバーレス LAMP スタック – Part 5: CDK コンストラクトライブラリ

本投稿は AWS サーバーレス アプリケーションのシニアデベロッパーアドボケートである Benjamin Smith による寄稿です。 本シリーズの他のパートは以下のリンクからアクセスできます。また、関連するサンプルコードはこちらの GitHub リポジトリにあります。 パート1:サーバーレス LAMP スタックの紹介 パート2:リレーショナルデータベース パート3:Webサーバーの置き換え パート4:サーバーレス Laravel アプリの構築 パート6:MVC からサーバーレスマイクロサービスへ この投稿では、サーバーレス LAMP スタック用の新しい CDK コンストラクトライブラリが、開発者によるサーバーレス PHP アプリケーションの構築にどのように役立つかを学びます。 AWSクラウド開発キット(AWS CDK)は、クラウドアプリケーションリソースをコードで定義するためのオープンソースソフトウェア開発フレームワークです。開発者は、TypeScript、Python、C#、Javaなどの使い慣れたプログラミング言語でインフラストラクチャを定義できます。開発者は、インターフェイス、ジェネリクス、継承、メソッドアクセス修飾子など、言語が提供する機能を利用できます。AWS Construct ライブラリは、CDK アプリケーションで AWS リソースを定義するための API を公開するモジュールの広範なセットを提供します。 「サーバーレス LAMP スタック」ブログシリーズでは、ベストプラクティス、コード例、多くのサーバーレスコンセプトの詳細を紹介し、これらが PHP アプリケーションにどのように適用されるかを示しています。また、PHP 開発者のインスピレーションを刺激するのに役立つ、コミュニティからの貴重な貢献に焦点を当てています。 このサーバーレス LAMP スタックの各コンポーネントについては、一連のブログ記事で詳しく説明しています。 パート1:サーバーレス LAMP スタックの紹介 パート2:リレーショナルデータベース パート3:Webサーバーの置き換え パート4:サーバーレス Laravel アプリの構築 サーバーレス LAMP […]

Read More

サーバーレス LAMP スタック – Part 4: サーバーレス Laravel アプリの構築

本投稿は AWS サーバーレス アプリケーションのシニアデベロッパーアドボケートである Benjamin Smith による寄稿です。 本シリーズの他のパートは以下のリンクからアクセスできます。また、関連するサンプルコードはこちらの GitHub リポジトリにあります。 パート1:サーバーレス LAMP スタックの紹介 パート2:リレーショナルデータベース パート3:Webサーバーの置き換え パート5:CDK コンストラクトライブラリ パート6:MVC からサーバーレスマイクロサービスへ この投稿では、サーバーレスアプローチで Laravel アプリケーションをデプロイする方法を学びます。 これは「サーバーレス LAMP スタック」シリーズの4番目の投稿になります。過去の投稿はこちらです。 パート1:サーバーレス LAMP スタックの紹介 パート2:リレーショナルデータベース パート3:Webサーバーの置き換え Laravel は PHP 用のオープンソースの Web アプリケーションフレームワークです。フレームワークを使用すると、開発者は一般的なコンポーネントとモジュールを再利用することで、より速く構築できます。また、開発標準に準拠することにより、長期的なメンテナンスにも役立ちます。ただし、従来の LAMP スタックを使用して PHP フレームワークをスケーリングする場合は、まだ課題があります。サーバーレスアプローチを使用してフレームワークをデプロイすると、これらの課題の解決に役立ちます。 Laravel アプリケーションのサーバーレスインフラストラクチャへの展開を簡素化する方法は数多くあります。ここで紹介する方法では、AWSサーバーレスアプリケーションモデル(AWS SAM)テンプレートを使用しています。これによって、Laravel アプリケーションが単一の Lambda 関数にデプロイされます。この関数は、Bref FPM カスタムランタイムレイヤーを使用して PHP を実行します。AWS SAMテンプレートは、「サーバーレス LAMP スタック – パート3: […]

Read More

サーバーレス LAMP スタック – Part 3: Webサーバーの置き換え

本投稿は AWS サーバーレス アプリケーションのシニアデベロッパーアドボケートである Benjamin Smith による寄稿です。 本シリーズの他のパートは以下のリンクからアクセスできます。また、関連するサンプルコードはこちらの GitHub リポジトリにあります。 パート1:サーバーレス LAMP スタックの紹介 パート2:リレーショナルデータベース パート4:サーバーレス Laravel アプリの構築 パート5:CDK コンストラクトライブラリ パート6:MVC からサーバーレスマイクロサービスへ この投稿では、Web サーバーを使用せずにサーバーレス PHP アプリケーションを構築する方法を学びます。 この投稿の後半で、bref および Serverless Visually Explained の作成者である Matthieu Napoli が FastCGI Process Manager の実装を Lambda 関数内で使うことでそれを可能にする方法を説明しています。Bref は、PHP 用のオープンソースのランタイム Lambda レイヤーです。 また、プライベート Amazon S3 バケットから静的アセットを安全に提供およびキャッシュするように Amazon CloudFront を構成する方法を示します。動的リクエストは、その後 Amazon API Gateway にルーティングされ、単一の […]

Read More

サーバーレス LAMP スタック – Part 2: リレーショナルデータベース

本投稿は AWS サーバーレス アプリケーションのシニアデベロッパーアドボケートである Benjamin Smith による寄稿です。 本シリーズの他のパートは以下のリンクからアクセスできます。また、関連するサンプルコードはこちらの GitHub リポジトリにあります。 パート1:サーバーレス LAMP スタックの紹介 パート3:Webサーバーの置き換え パート4:サーバーレス Laravel アプリの構築 パート5:CDK コンストラクトライブラリ パート6:MVC からサーバーレスマイクロサービスへ この投稿では、サーバーレスアプリケーションで Amazon Aurora MySQLリレーショナルデータベースを使用する方法を学びます。Amazon RDS Proxy を使用してデータベースへの接続をプールおよび共有する方法と、構成を選択する方法を示します。この投稿のコード例は PHP で記述されており、この GitHubリポジトリにあります。なお、この概念自体は、AWS Lambda でサポートされている他のランタイム言語にも適用できますので、PHP に限定しない内容としてお読みいただけます。 サーバーレス LAMP スタック このサーバーレス LAMP スタックアーキテクチャについては、この記事で説明しています。このアーキテクチャでは、PHP Lambda 関数を使用して、Amazon Aurora MySQL データベースの読み取りと書き込みを行います。 Amazon Aurora は、MySQL および PostgreSQL データベースに高いパフォーマンスと可用性を提供します。基盤となるストレージは、最大64 テビバイト(TiB)まで需要に応じて自動的に拡張されます。 Amazon Aurora DB […]

Read More

新しいサーバーレス LAMP スタック – Part 1: 概要紹介

本投稿は AWS サーバーレス アプリケーションのシニアデベロッパーアドボケートである Benjamin Smith による寄稿です。 本シリーズの他のパートは以下のリンクからアクセスできます。また、関連するサンプルコードはこちらの GitHub リポジトリにあります。 パート2:リレーショナルデータベース パート3:Webサーバーの置き換え パート4:サーバーレス Laravel アプリの構築 パート5:CDK コンストラクトライブラリ パート6:MVC からサーバーレスマイクロサービスへ これは、PHP 開発者向けの投稿シリーズの第一弾です。このシリーズでは、PHP でサーバーレステクノロジーを使用する方法を説明します。サーバーレスアプリケーションを構築するために利用できるツール、フレームワーク、戦略や、なぜ今始めるべきかについて説明します。 今後の投稿では、Laravel や Symfony などの PHP フレームワークとともに構築された Web アプリケーションに AWS Lambdaを使用する方法を示します。Lambda を Web ホスティング機能の代替として使用することから、分離されたイベント駆動型のアプローチに移行する方法を示します。最小限のスコープの複数の Lambda 関数を他のサーバーレスサービスと組み合わせて、パフォーマンスの高いスケーラブルなマイクロサービスを作成する方法について説明します。 まずは、カスタムランタイム API を使用して Lambda で PHP を使用する方法を学びます。サンプルコードについては、この GitHubリポジトリにアクセスしてください。 サーバーレスLAMPスタック 従来の PHP アプリケーションの課題 スケーラビリティは、従来の LAMP スタックの伝統的な課題です。スケーラブルなアプリケーションとは、非常に多様なレベルのトラフィックを処理できるアプリケーションです。PHP アプリケーションは、多くの場合、必要に応じて Web サーバーを追加することにより、水平方向にスケーリングされます。これは、リクエストをさまざまな […]

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