MEGAZONEブログ
Simplify building applications with AWS SDKs
AWS SDKによるアプリケーション構築の簡素化
Pulisher : Mass Migration & DR Center イ・ミンギュ
Description : AWS SDKsの活用方法および大規模パッチへのアプローチについて学ぶセッション
はじめに
AWS SDKsがどのような方向性を持って発展してきたのか、顧客の要件に合わせてSDKをどのように活用すればいいのか、また、多数のサービスの大規模なパッチに対してどのようにアプローチするのかについて知るためのセッションです。
セッションの概要紹介
SDKsは350以上の様々なAWSサービスをサポートし、14,000以上の様々なタスクやAPIを呼び出すことができます。
12種類のプログラミング言語で提供され、お客様のニーズを満たすためにさらに多くの言語を追加しています。クラウドでデータを保護するための認証などの様々な主要な機能をサポートし、非常にシンプルなものから非常に複雑な自動再起動に至るまで、そして問題が発生したときにもデータセットが回復力を持って運用を継続できるようにします。
これを可能にした原動力は、開発者エクスペリエンスアプローチ、SDKに一貫性を提供し、簡素化を優先したことです。
AWSが始まったばかりの20年前にさかのぼると、当時はいくつかのサービスしかありませんでした。
S3は、オブジェクトをバケットに入れると、同じオブジェクトを戻すという単純な入れ替え作業をサポートしていました。
しかし、時間が経つにつれて、顧客向けの新機能を追加し、新しいユースケースをサポートすることで、数個に過ぎなかったサービスが350個以上に増えました。
2022年だけで3000以上の新機能をSubseaのSDKとして追加しました。
PythonプログラマーとRustプログラマーが同時に機能をリリースすることを考慮しなければなりませんでした。
現在、350以上のサービスと12の言語をサポートし、毎年何千もの機能をSDKに統合する必要があります。
これを可能にするためには、モデルから始まるモデルベースのAPI開発をしたからこそ可能です。
Smithyは、プロトコルに依存しないオープンソースのインターフェース設計言語です。さまざまな言語でサーバー側とクライアント側のコードを生成するために使用でき、JavaScript、Rust、Cottlin、Goを含むすべてのAWSの最新SDKのコアを作成します。
現在、Smithyを使用してゼロから構築されたサービスは90以上あります。
イベントストリームは、クライアントとサービス間の双方向非同期データ転送方式です。
クライアントがサービスへデータをストリーミングしながら、同時に次のような作業を行います。
同時にデータをクライアントに再ストリーミングするサービスです。
ユーザーが音声を含む大容量のオーディオファイルを持っていて、あるシステムに供給して、アプリケーションで他の方法で使用できるようにテキストトランスクリプトを出力するとします。
イベントストリームを使用して、ユーザーはそのオーディオファイルをAmazon Transcribeにストリーミングし、Amazon Transcribeが結果をストリーミングし始めると同時に、SDKはそのオーディオファイルを分割して個々のリクエストを送信し、サーバーが個々の応答を解釈して、ユーザーが使用できる非同期データフローオブジェクトに組み立てます。
このように、ユーザーはオーディオファイル全体を一度にメモリに保存する必要はなく、テキスト全体を一度にメモリに保存する必要もなく、ディスクからストリーミングしたり、ディスクやアプリケーションの他の部分にストリーミングしたりすることができ、すべてSDKSが提供するメカニズムによって実現されます。
セッションを終えて
全体的に、技術の発展と革新を通じて、開発者がより効率的に作業することができ、様々な要件を満たすことができるツールとサービスが提供されるためには、どのような部分を考慮しなければならないかについて考えることができる時間でした。