Amazon Web Services ブログ

Category: Python

Coursera の新しい Modern Application Development 専門講座を発表

この記事は、2021年7月28日に Anand Tripathi によって投稿された Announcing new modern application development Specializations on Coursera を翻訳したものです。 International Data Corporation (IDC) は、2025年までに新しいアプリケーションの 90% 以上がクラウドネイティブになると予測していますが、最新のエンタープライズアーキテクチャに関する知識を持つ従業員が大幅に不足しています。Burning Glass は、米国だけでも200万以上のプログラミング言語ベースの開発者の求人数があると推定しており、今後10年間で前年比で平均 29% 増加すると予想しています(*)。これが意味するのは、あなたが開発者で、現代において需要の高いクラウドスキルを持っているなら、自分のキャリアパスを描く絶好の機会があるということです。 クラウドをはじめて使う開発者や、レガシーアプリケーションをクラウドに移行する開発者、クラウド開発者になりたい開発者に向けて、AWS Training & Certification と Coursera は、モダンなサーバーレスアプリケーションを AWS で構築するために必要なスキルを獲得するのに役立つ、4つの新しい Modern Application Development 専門講座を Coursera で発表します。

Read More

GitHub モノレポを AWS CodePipeline と統合して、プロジェクト固有の CI/CD パイプラインを実行する

(この記事は、Integrate GitHub monorepo with AWS CodePipeline to run project-specific CI/CD pipelines を翻訳したものです。) AWS CodePipeline は、ソフトウェアのリリースに必要なステップをモデル化、可視化、自動化できる継続的デリバリーサービスです。AWS CodePipeline を使用して、コードを構築し、稼働前の環境にデプロイし、アプリケーションをテストし、実稼働環境にリリースするまでの完全なリリースプロセスをモデル化できます。AWS CodePipeline は、コードが変更されるたびに定義されるワークフローに従って、アプリケーションを構築、テスト、デプロイします。多くの組織が GitHub をソースコードリポジトリとして使用しています。組織によっては、1 つの GitHub リポジトリに複数のアプリケーションまたはサービスをフォルダで分割して格納することを選択しています。リポジトリ内のソースコードをこのように整理する方法は、モノレポと呼ばれます。 この記事では、AWS Lambda で GitHub イベントペイロード(訳者注:GitHub 上でのアクティビティを元にトリガーされるイベント情報。詳細は GitHub イベントのドキュメントをご確認ください。)を読み取り、サービス固有のパイプラインを実行するようにカスタマイズする方法を示します。

Read More

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の間の変更点をご紹介します。

Read More

cfn-lint を使った AWS CloudFormation テンプレートの Git pre-commit バリデーション

AWS CloudFormation のツールはいまや黄金期をむかえています。cfn_nag や taskcat といったツールによって、1 つのリソースをアカウントにデプロイする前にテストと検証を実行することで、コードとしてのインフラストラクチャの取り扱いが容易になりました。このブログ記事では、linter を使って CloudFormation テンプレートを検証する方法について解説していきます。   linter とは、コードを精査して、そのコードを実行したときにエラーを発生させる可能性のある構文エラーやバグがないかを探すプログラムのことです。スタンドアロンのツールとして実行することも可能ですが、ビルド自動化やオーサリングなどのツールに組み込まれていることが多いです。 これまで CloudFormation による構文チェックは、サービス API の ValidateTemplate アクションに限られていました。このアクションを実行すると、テンプレートが正しい形式の JSON または YAML で書かれているかどうかがわかりますが、自分で定義した実際のリソースが検証されているわけではありません。数か月前、私はより良い選択肢がないか探しました。Stelligent の cfn_nag のようなツールは、テンプレートのリソースに追加の検証を実行できますが、これはセキュリティやベストプラクティスの観点から行われるものです。さらに探しているうちに、CloudFormation のサービスチームが、リソースやプロパティに有効な構文について説明したリソース仕様を公開していることを発見しました。 AWS CloudFormation linter の紹介 同じころ、Amazon の同僚である Kevin Dejong が、Python で自ら記述した CloudFormation linter のオープンソース化を準備していました。これは、私が求めていた必須項目のほとんどをクリアしていました。 組み込み関数の解析 (条件文を含む) 拡張可能なルールベースのアーキテクチャ 公開済みのリソース仕様に照らした検証 Python で記述されている (ええ、私は偏ってます) 私はこの linter の、とりわけ拡張性に強く引かれました。コミュニティのメンバーは、許容値や二者択一のリソースプロパティなど、リソース仕様の外部に存在する事柄について、新しい構文規則を追加することが可能になるからです。 当社は昨春、この linter を cfn-lint […]

Read More

Amazon CodeGuru Reviewer のアップデート: 最大 90% 値下げとなる新しい予測可能な料金モデル、Python サポートが一般利用可能に

Amazon CodeGuru は、機械学習と自動化された推論を活用した推奨事項により、コードレビューの自動化とコード品質の向上を支援します。 CodeGuru Reviewer を使用すると、検出しにくい潜在的な欠陥やバグを検出し、 CodeGuru Profiler によってライブデータに基づいてアプリケーションのパフォーマンスを微調整することができます。このサービスは 2020 年 6 月から一般公開されています。CodeGuru の使用開始方法については、こちらをご覧ください。 ここ数か月で多くのお客様と協力しながら、 セキュリティ検出器、プレビューでの Python サポート、メモリプロファイリングを導入し、お客様がコード品質を向上させ、デベロッパーの時間を節約するのを支援しています。また、料金設定や対象言語の範囲など、さまざまな分野に関するご意見もいただきました。こうしたフィードバックに対応し、より簡単に組織内で大規模に Amazon CodeGuru を採用できるようにしました。 本日、CodeGuru Reviewer の 2 つの主要なアップデートを発表いたします。 リポジトリのサイズに基づいて月額料金を低く固定し、最大 90% の値下げとなる、まったく新しい、見積もることが簡単な料金モデルになっています。 Python サポートが一般利用可能 (GA)となりました。推奨範囲が広く、Python 検出器に関連する 4 つの更新が行われています。 CodeGuru Reviewer の新しい予測可能な料金 CodeGuru Reviewer を使用すると、GitHub、GitHub Enterprise、AWS CodeCommit、Bitbucket に保存されているリポジトリのフルスキャンを実行できます。また、プルリクエストを送信するたびに、 CodeGuru Reviewer は新しいコードレビューを開始し、コメントの形式で推奨事項と改善を提案します。 以前の料金体系は、1 か月あたりの分析コード行数 (LoC) に基づいており、100 LoC あたり 0.75 USD […]

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

AWS Systems Manager の新しいオートメーション機能

本日、AWS Systems Manager 内で追加された自動化機能を発表します。Systems Manager をまだ使用していない方のために説明すると、本サービスは統合されたユーザーインターフェイスを提供するため、複数の AWS サービスから運用データを表示し、AWS リソース全体の運用タスクを自動化できます。 この新しいリリースで、さらに強力になりました。AWS Systems Manager に追加機能を追加しました。これにより、チーム内または組織内の他のユーザーと自動化を構築、実行、共有できるため、インフラストラクチャの管理を繰り返すのがより簡単になり、エラーが発生しにくくなります。 ナビゲーションメニューの AWS Systems Manager コンソール内には、オートメーションという項目があり、このメニュー項目をクリックするとオートメーションを実行ボタンが表示されます。 これをクリックすると、実行するドキュメントを尋ねられます。AWS では、選択可能なドキュメントのライブラリを提供しますが、今日は独自のドキュメントを作成するため、ドキュメントを作成ボタンをクリックします。 これにより、新しい画面が表示され、Python または PowerShell スクリプトを実行するドキュメント (オートメーションプレイブックとも呼ぶ) を作成できます。 コンソールには、ドキュメントを編集するための 2 つのオプションがあります。YAML エディタまたはガイド付きの段階的なユーザーインターフェイスを提供する「ビルダー」ツールで、各ワークフローステップのドキュメントを含めることができます。 それでは、簡単なオートメーションを構築して実行してみましょう。ビルダーツールを使用してドキュメントを作成する場合、最初に必要なのはドキュメント名です。 次に、説明を入力する必要があります。以下に示すように、Markdown を使用して説明の書式を設定できます。説明は、ドキュメントの機能を説明する絶好の機会です。ほとんどのユーザーは、これらのドキュメントをチームの他のユーザーと共有し、日常の問題を解決するためのドキュメントライブラリを構築したいと思っています。 オプションで、ドキュメントのパラメータを指定するように求められます。これらのパラメータは、後で作成するすべてのスクリプトで使用できます。この例では、3 つのパラメータ imageId、tagValue、instanceType を作成しました。このドキュメントを実行するときに、設定したデフォルトを上書きするこれらのパラメータの値を提供する機会があります。 誰かが私のドキュメントを実行すると、実行されるスクリプトは AWS サービスと対話します。ドキュメントは、Assume ロールを提供するオプションとともに、ほとんどのアクションに対するユーザー権限を使用して実行されます。ただし、スクリプトを実行する操作を含むドキュメントの場合、スクリプトが AWS API を呼び出すときにロールが必要です。 ビルダーツールで、Assume ロールをグローバルに設定できます。ただし、ドキュメントに assumeRole というパラメータを追加したいので、それを実行している人であれば誰でも別のパラメータを提供できます。 次に、Assume ロールプロパティのテキストボックスで {{assumeRole}} 構文を使用して、このパラメータをグローバルに assumeRole に結び付けます (パラメータ名 […]

Read More

Amazon DynamoDB スキャンパフォーマンスに対する Python バージョンの影響の分析

Amazon DynamoDB は、柔軟なスキーマを使用できる NoSQL データベースです。これは、項目それぞれにどのような属性が存在するかという点で、同じテーブル内の項目が互いに異なることを意味します。 前の AWS ブログ記事では、項目あたりの属性数の影響について検証しましたが、私たちは先日、お客様の Python アプリケーションにおけるスキャンが遅いという問題を解決するお手伝いをしていた時、Python バージョンのアップグレードがパフォーマンス向上に役立つかどうかを確認するために、異なるバージョンの Python インタプリタを調べました。 この記事では、Python インタプリタのバージョンがスキャンパフォーマンスにどのように影響し得るかをお見せしたいと思います。 手法 パーティションキーとソートキー (どちらも文字列) で構成されるプライマリキーというシンプルな構造の DynamoDB テーブルを 1 つ作成しました。また、それぞれに 7 文字のキー名 (「field01」、「field10」、など) を含む、個別の 6 文字の文字列属性 24 個 (6 x 24 = 合計 144 文字) で構成されるもうひとつの DynamoDB テーブルも作成しました。 DynamoDB には、単一のリクエストで取得するデータの量に 1 MB の上限があるので、ランダムなデータ 10,000 項目でテーブルをシードしてから、1 MB の上限内に収まるだけの項目を取得する単一のスキャンを実行します。その後、クライアント側でこれらの項目を取得し、アンマーシャルするためにかかる時間を測定します。 ウォークスルー 以下は、Python バージョンの比較に関する典型的な質問です。 Python のあるバージョンを使用する場合と、別のバージョンを使用する場合とでは、どのようにパフォーマンスが変化するのか? […]

Read More

AWS DMS タスク ID を使用して DMS タスクログをダウンロードするための Python コード

AWS Database Migration Service (AWS DMS) を使用すると、データベースを迅速かつ安全に AWS に移行できます。この記事では、AWS DMS タスク ID を使用して AWS DMS タスクログをローカルコンピュータにダウンロードするために必要なサンプル Python コードについて説明します。 概要 DMS タスクログには、移行プロセス中に記録されたタスク情報が含まれています。記事「AWS DMS 移行のデバッグ: 問題が発生した場合の対処方法 (パート1)」で示唆されているように、AWS DMS を使用してデータを移行する際、これらのログを使用して問題を解決することができます。 この記事では、DMS は Amazon CloudWatch Logs のログストリームにタスクログを送信するので、DMS 移行タスクに関する情報を取得できます。けれども、トラブルシューティングをスピードアップするためにローカルにログをダウンロードしたい場合はどうすればよいでしょうか? Download DM Task ログの GitHub レポジトリで、DMS タスク ID を使用して AWS DMS タスクログをダウンロードするための完璧な Python コードを見つけてください。この記事の残りの部分では、Python コードを分解してそのソリューションの使用方法を次の順序で説明します。 必要なライブラリをインポートします。 DMS タスク ID の引数とログの時間範囲を読み取ります。 エポックからの経過時間をミリ秒に変換します。 […]

Read More