AWS が Rust、Kotlin、Swift、Amplify Studio 向け SDK をプレビューし、迅速なウェブアプリ開発を実現

Table of Contents

AWS が Rust、Kotlin、Swift、Amplify Studio 向け SDK をプレビューし、迅速なウェブアプリ開発を実現

Re:invent AWS は、Re:invent カンファレンスで、Rust、Swift、Kotlin 用の新しい SDK や、Figma 設計ツールと統合された高速 Web アプリケーション用の Amplify Studio など、新しい開発者リソースをプレビューしました。

SDKは、AWSサービスへのAPI用の言語ラッパーを提供します。既存のSDKは、JavaScript、Python、PHP、.NET(C#)、Ruby、Java、Go、Node.js、C++を対象としています。今週、さらに3つのSDKが追加されました。KotlinはAndroidの公式言語で、主にJVM(Java仮想マシン)上で動作します。SwiftはAppleのiOSおよびmacOS向け言語で、サーバーでも使用できます。RustはMozillaが開発した言語で、C言語とほぼ同等の速度を備えながら、メモリ安全性などの最新機能を備えています。

「Rustは社内でも広く利用されており、AWSとAmazon内で急速に採用が進んでいるのを目の当たりにしています」と、AWS開発ツール担当ゼネラルマネージャーのケン・エクスナー氏はThe Registerに語った。「EC2、S3、CloudFront、DynamoDBでも使用されています。」

Rustは主にシステム言語であることを踏まえると、開発者はRust SDKをどのような用途に使うのでしょうか?「簡単な例としては並列プログラミングが挙げられます」とエクスナー氏は言います。「並列プログラミングには、メモリリークを引き起こす競合状態に関連する一般的なバグがあります。並列プログラミングで最もよく見られるバグは、Rustのメモリ管理方法のおかげで解消されています。また、Python関連のワークロードの一部もRustが担うようになると思います。」

AWSはRust、Kotlin、SwiftのSDKをプレビューしました

Emily Freeman と Ken Exner が Re:invent で Rust、Kotlin、Swift 向け SDK をプレビュー

ウェブアプリケーションのような汎用プログラミングについてはどうでしょうか?「Rustコミュニティは、Rustの方向性を見出すでしょう。最も興味深いユースケースは、より低レベルかつバックエンドになると思いますが、必ずしもそうである必要はありません」とエクスナー氏は語りました。

Rust SDKは以前はアルファ版でしたが、現在は開発者プレビュー版として288のAWSサービスにアクセスできます。Lambdaサーバーレス関数で使用できますが、カスタムランタイムが必要なため、他の言語ほどシンプルではありません。最終リリースの日程は未定で、APIは変更される可能性があります。

「GAではバージョン1を宣言し、APIをロックダウンします」とエクスナー氏は語った。

もう一つの注目すべき開発者プレビューはAmplify Studioです。Amplifyは、AWSのブランド名としては少々紛らわしい存在となっています。「当初はObjective CやAndroid SDKをベースにしたモバイルSDKでした」とエクスナー氏は語ります。「React Nativeのような、Webアプリケーションとモバイルアプリケーションの境界を曖昧にするツールが登場し、Webとモバイルの融合が始まりました。そのため、Amplifyは元々のモバイルというルーツを超えて進化しました。」

Amplify Studioはモバイルアプリケーションを一切サポートしておらず、Webのみに対応しています。これはローコード環境であり、開発者はデータモデルから始め、コンテンツと認証を追加し、サードパーティの共同設計ツールであるFigmaと統合されたユーザーインターフェースを作成できます。Amplify Studioの使用はオプションであり、ホスティングとモバイル開発のための既存のAmplify機能は引き続き利用できます。

「コアSDKの上に、より高レベルのAPIを提供し始めました」とエクスナー氏は語った。「そして、その上にUIツールとCLIツールを提供しています。これは階層化されたアプローチで、どのレイヤーでもインターフェースが可能です。」

Amplify Studioは、1年前に導入されたAmplify Admin UIという旧製品の後継製品です。大きな違いは、新バージョンには新しいUIライブラリとFigmaとの統合が含まれており、完全なアプリケーションビルダーとなっていることです。UIライブラリには、ボタンやテキストフィールドなどのプリミティブが含まれています。Reactコンポーネントを生成し、データモデルへの接続のためのデータバインディングをサポートしています。認証はAWS Cognito経由で行われ、単体でもFacebook、Apple、Google、Amazonのログインと組み合わせても簡単に使用できます。Active Directory Federation ServicesやAzure Active Directoryなどの他のプロバイダーとの連携は可能ですが、より複雑です。

エクスナー氏によると、以前はAmplifyはフロントエンドを担当していなかったという。「今は、強力なキャンバスメタファーを使って、多数のコンポーネントをドラッグ&ドロップで操作できます。バックエンドのインフラはすべてAmplifyが管理しているので、フロントエンドもAmplifyが連携して操作します。非常に使いやすく、非常に独創的です。」

  • すべてのデータベースは私たちのもの: AWSはすべてのデータサイロを自社のプラットフォーム上に置きたいと考えている
  • AWSがGraviton3 Armチップなどを発表。しかし、真の話題はIaaSからパッケージソリューションへの移行だ。
  • Rustは地球を救えるのか?その理由と、救えない理由
  • AWSは成熟期の入り口にいるが、まだ成熟には程遠い

彼はFigmaとの連携を非常に重要視しています。「デザイナーとフロントエンド開発者の共同作業を観察すると、アナログな引き継ぎが見られます。デザイナーがプロトタイプを作成し、エンジニアが自分のツールでそれを再現するというやり方は、非常に時代遅れに感じられます。デザインのプロトタイピングとエンジニアリングを連携させることで、私たちはそれをデジタルな引き継ぎに変えているのです。」

このタイプのアプローチの難点は、美しいユーザーインターフェースを作成するデザイナーのスキルと、それを優れたパフォーマンスで様々なフォームファクターに適切に対応させるフロントエンドコーダーのスキルが必ずしも一致しないという点です。デザイナーの作品をそのままインポートするというアイデアは魅力的ですが、実際には問題が生じる可能性があります。

Studioの初期プレビューはReactのみですが、将来的にはGoogleのモバイルとウェブ向けのクロスプラットフォームフレームワークであるFlutterのサポートが追加される可能性があります。基盤となるAmplifyフレームワークは既にFlutterをサポートしています。なぜReactを採用したのでしょうか?「今日のアプリの70~80%はReactで作られています」とExner氏は語りました。

Amplify Studio でインスタント アプリケーションを作成する

Amplify Studio でインスタント アプリケーションを作成する

ネイティブモバイルアプリケーションのサポートについてはどうでしょうか?「これらすべてをサポートする予定です」とエクスナー氏は語りましたが、これは初期プレビューには含まれていませんでした。

Amplify Studio は無料でご利用いただけますが、JSON 宣言からリソースをプロビジョニングする AWS サービスである CloudFormation を使用しているため、課金対象となるサービスが裏で生成されます。実際にアプリケーションを作成してみたところ、どのリソースが利用されているのか、またそのコストはいくらになるのかをすぐに把握できず、この点が分かりにくいと感じました。ただし、バックエンドリソースをワンクリックで削除できる「削除」オプションがあります。®

Discover More