2021/05/28

AWS SDK とは?AWS SDKの9種類の対応言語やその特徴について紹介!

 
  

AWS SDKについてご紹介


AWS SDKとはAWSのサービスをプログラムなどから操作できるようにするための開発キットです。AWS SDKを使用することで既製のブラウザ等のWebアプリケーションを介さずに直接AWSサービスとやり取りできるアプリケーションを開発することが可能です。

AWSでは開発言語や環境に合わせたさまざまなAPIやナレッジが提供されており、コーディングする上でのさまざまな困難を解決しています。そこで今回は、AWSが提供しているSDKの種類と概要についてご紹介していきます。

AWS SDK とは?


AWS SDKとはAWSが提供している各言語、環境に合わせた開発ツールです。各プログラミング言語に合わせたSDKとして9種類、モバイル環境やモバイル用プログラミング言語に合わせたSDKとして6種類が提供されています。

また、その他にも有志が開発したものとしてIoTデバイス用のSDKとして6種類が紹介されており、こちらはGitHubのサイトからダウンロードが可能です。IDEやIDE用のツールキットも充実しており、各開発環境に柔軟に対応できます。

9種類の言語に対応したAWS SDK 各々の特徴などを紹介


AWS SDKは9種類の言語に対応した形で提供されており、さらにモバイル環境別にも別れて提供されています。

ここからは各々の特徴や導入方法などについて簡単にご紹介していきます。

それぞれの開発言語に合わせたAWS SDK 9種類をご紹介


9種類の開発言語に合わせたAWS SDKについてそれぞれの特徴などを紹介していきます。

基本的にはそれぞれの言語にあわせてAPIを最適に使用できるような形で提供されているため、AWSを用いてアプリケーションを開発する上のハードルはかなり下がります。

JavaScript

AWS SDK for JavaScriptはブラウザ用のプログラミング言語であるJavaScriptを使ったAWSサービスへの接続をサポートします。ウェブIDフェデレーションを使用し、アプリを利用するユーザーはよく知られている外部のID(FacebookやGoogleなど)でユーザー認証が可能です。

AWS SDK for JavaScriptの主な特徴としてソーシャルログインが可能な点、オンラインデータの利用が低コストで安全に利用できる点、すべてのブラウザに対応している点などが挙げられます。

Python(Boto3)

AWS SDK for PythonはPythonを使ったアプリケーションとAWSサービスを簡単に連携できます。AWS SDK for PythonはBoto3という名称で開発されており、GitHubおよびPyPIのサイトで入手が可能です。

主な特徴として従来のクライアントAPI(1つのHTTP API操作に対して1つのリソースへのマッピングを行う)に加えて、リソースAPIが提供されている点が挙げられます。

リソースAPIは、明示的にリソースの呼び出しが表示されず、属性に対しアクセスを行い、そのアクションを実行するために必要なリソースとコレクションが提供されます。
また、ウェーターというAWSリソースの状況を確認して待機する機能が備わっています。これにより効率の良い処理を行うアプリケーションを作成することが期待できます。

例えば、Amazon EC2 インスタンスを開始し、waiter を使用してそのインスタンスが “running” 状態になるまで待機する、または新しい Amazon DynamoDB テーブルを作成し、それが使用可能になるまで待機するといったことが可能です。https://aws.amazon.com/jp/sdk-for-python/

PHP

AWS SDK for PHPはPHPアプリケーションのためのオープンソースのライブラリです。AWSサービスを使ったセキュアなアプリケーションやソフトウェアを構築することができます。GitHubでソースを取得できます。

AWS SDK for PHPは次の方法でインストール可能です。

  • Composerを使用してaws/aws-sdk-phpパッケージをインクルード
  • スタンドアロンのzipをダウンロード
  • スタンドアロンのpharをダウンロード

    .NET

    AWS SDK for .NETは、AWS .NETの開発者にとって一貫性のある馴染み深いライブラリセットを提供しており、AWSサービスを使ってスケーラビリティと信頼性の高い.NETアプリケーションを構築することができます。

    AWS SDK for .NETを利用するにはAWS認証情報・プロファイルの設定とSDKインストールなどが必要です。IAMコンソールからすぐにアプリケーションを作成できるクイックスタートガイドもあります。詳細は開発者ガイドを参照してください。

    ■AWS SDK for .NET開発者ガイド

    Ruby

    AWS SDK for RubyではほとんどのAWSサービスにRubyクラスを提供しており、AWSサービスを利用するRubyアプリケーションを作成できます。

    Bundlerを利用している場合は、SDKをインストールするのは非常に簡単です。Gemfileに以下の行を追加するだけです。
    gem 'aws-sdk'

    Bundlerを利用していない場合はRubyGemsのサイトからダウンロードして、インストールします。
    ■AWS-SDK (rubygemsのダウンロードページ)

    Java

    AWS SDK for Javaは、JavaアプリケーションでAWSサービスを利用できるようにします。高度の抽象化もサポートされており、より開発を簡素なものにできます。

    主な特徴としてノンブロッキングI/O、HTTP/2のサポート、自動ページ区切り機能などがあります。

    Node.js

    AWS SDK for Node.jpはNode.jp内でAWS SDK for JavaScriptを利用できます。利用するにはGitHubでソースをダウンロードするかnpmを使ってインストールします。
    npm install aws-sdk

    サンプルプロジェクトからAmazon S3とやり取りする方法が簡単に学ぶことができます。
    git clone https://github.com/awslabs/aws-nodejs-sample.git
    npm install

    Go

    AWS SDK for GoはGoで開発されたアプリケーションでAWSサービスを利用することができます。特徴としてはAmazon S3 Transfer Manager、Response Paginator、SDKの頻繁な更新、拡張性などがあります。

    以下の公式ページではAWS Cloud9でAWS SDK for GOを利用する方法を解説されています。

    AWS SDK forGoでAWSCloud9を使用する

    C++

    AWS SDK for C++はC++アプリケーションでAWSサービスを利用できるオープンソースのライブラリです。

    特徴としてAmazon S2のクライアント側のデータ暗号化、Amazon S3 Transfer Manager、幅広いプラットフォーム対応、CMakeのサポート、カスタマイズ性の高いメモリ管理、AWSの最新APIに対応したSDKの頻繁な更新が挙げられます。

    AWS SDK for Java の設定方法


    ここではAmazon S3でAWS SDK for Javaを使うための簡単な設定方法を紹介します。まずは前提条件としてAWSアカウントを用意します。次にAmazon S3への読み取り、書き込みアクセス権を持つIAMユーザーを作成します。

    IAMユーザーの作成方法
    ①IAMコンソールにルートユーザーでログインします。
    ②ナビゲーションペインから[ユーザー]、つぎに[ユーザーの追加]を選択します。
    ③ユーザー名にTestSDKと入力して[プログラムによるアクセス]にチェックを入れ[次のステップ:アクセス権限]を選択します。
    ④[既存のポリシーを直接アタッチ]を選択します。
    ⑤ポリシーリストから[AmazonS3FullAccess]を選択してチェックを入れて[次のステップ:タグ]を選択します。
    ⑥特に何も変更せずに[次のステップ:確認]を選択し、つぎに[ユーザーの作成]を選択します。
    ⑦[.csvのダウンロード]を選択してローカル端末にcsvファイルを保存します。
    つぎにJavaとApacheMavenをインストールします。インストール方法はそれぞれ以下を参照してください。

    Java
    マルチプラットフォームで利用できるAmazon Correttoを利用することをおすすめします。
    Amazon Correttoのダウンロードページ

    ApacheMaven
    ApacheMavenのダウンロードページ
    資格情報を構成する
    Amazon S3にアクセスするための資格情報ファイルを作成します。テキストエディタで下記のコードを利用してファイルを作成します。

    [default]
    aws_access_key_id = YOUR_AWS_ACCESS_KEY_ID
    aws_secret_access_key = YOUR_AWS_SECRET_ACCESS_KEY
    

    ※YOUR_AWS_ACCESS_KEY_IDとYOUR_AWS_SECRET_ACCESS_KEYをそれぞれIAMユーザーの作成でダウンロードしたcsvファイルのものに置き換えてください。

    拡張子なしの以下のファイル名、指定場所で保存します。

    OS ファイル名(ファイルパス)
    Windows C:\Users\\.aws\credentials
    Linux, macOS, Unix ~/.aws/credentials

    以上でAWS SDK for Javaを使う準備は完了です。あとはMavenプロジェクトし、Java1.8を使うように構成したらコードを作成して実行します。

    プロジェクトの作成方法、サンプルコード、実行方法は以下のクイックスタートガイドのステップ2、ステップ3、ステップ4を参照してみてください。
    Get started with the AWS SDK for Java 2.x

    まとめ


    今回はAWS SDKの9種類の対応言語について紹介しました。

    AWSでは他にもモバイル向けのSDKもあり、多くの開発者が使用しているほとんどの環境、言語が網羅されています。

    オープンソースで日々最新のAPIへ対応しているので開発者はAWS SDKをうまく利用することで、AWSとの連携に煩わされることなくアプリケーションの開発に注力できます。

    AWS公式ページには多くのリファレンスも掲載されているので、まずは自身の得意の言語を使ってAWSを使ったアプリケーションを気軽に作ってみてはいかがでしょうか。

  • ITエンジニアへのキャリアチェンジならキャリアチェンジアカデミー

    この記事の監修者・著者

    株式会社オープンアップITエンジニア
    株式会社オープンアップITエンジニア
    未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
    ・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
    ・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞

    おすすめの動画

    • 【未経験からIT業界へ転職するなら】相談窓口とスキルの獲得はここで解決!IT転職が一気に有利に!【キャリアチェンジアカデミー】

    • 【費用一切不要】未経験からIT業界へ転職するならまずはここへ相談!【キャリアチェンジアカデミー】

    • 【何のエンジニアになれるのか?】未経験からITエンジニアを目指すとこんな道がある【キャリアチェンジアカデミー】