2021/03/30

AWS SDK for JavaScriptの基本設定について徹底解説!

 
  

AWS SDK for JavaScriptとは

AWSには、多くのサービスがあり、それらを組み合わせるだけでWebシステムが作れます。その上、サービスの多くでAPIが用意されており、バックエンドのプログラム以外からでも利用できます。 今回解説するAWS SDK for JavaScriptは、そのようなAWSのサービスで使えるAPIを、Webブラウザから利用するための仕組みです。

AWSサービスをWebブラウザから使う仕組み

AWS SDK for JavaScriptは、AWSで提供されているサービスのAPIを、Webブラウザで動作するJavaScriptから利用するための仕組みです。 なお、AWSで提供されているサービスのAPIは、Amazon S3などに置いたサーバーサイドのプログラムから利用できます。WebブラウザからAPIを利用するには、認証などを含む特別なやりとりが必要です。 そして、そのような特別なやりとりを担当するSDKが、AWS SDK for JavaScriptです。なお、AWS SDK for JavaScriptは、サポートされているWebブラウザのバージョンが決まっているので注意してください。

Amazonが動作保証する仕組み

もちろん、Amazon EC2などに外部からAPIを利用するプログラムを用意し、JavaScript向けのインターフェースを用意すれば、AWS SDK for JavaScriptと同じ機能を実現できます。 しかし、APIは、サービスの改版等で仕様が変わったり、仕様を正しく理解しないまま作ると誤作動を起こしたりする可能性があります。 その点、AWS SDK for JavaScriptは、Amazonが開発し、動作保証している仕組みです。また、AWSからSDKをロードするだけで使えるので、APIを利用する仕組みを開発する手間がかかりません。

利用できるサービスには制限がある

前述の通り、AWS SDK for JavaScriptを利用することで、AWSの多くのサービスのAPIを利用できます。しかし、AWSの全てサービスを利用できる訳ではありません。なかには、AWS SDK for JavaScriptから利用できないサービスもあります。 Amazonより、AWS SDK for JavaScriptで利用できるサービスが公開されているので、参照してください。

AWS SDK for JavaScript利用のための設定

AWS SDK for JavaScriptを利用するためには幾つかの設定が必要です。まず、ブラウザでSDKを使用するために必要なスクリプトタグをHTMLページに追加します。 <script src=”https://sdk.amazonaws.com/js/aws-sdk-2.816.0.min.js”></script> (この例では、バージョン2.816.0を指定していますが、頻繁に更新されています。公式サイトをチェックして最新版を利用してください。) さらにAWS SDK for JavaScript利用する前に、下記の設定が必要になります。 ・サービスをリクエストするリージョンを決める。 ・SDKリソースへのアクセスを許可するための認証を実施する。 AWSの一部のサービスは、リージョン内のみに限定されています。AWS SDK for JavaScriptのデフォルトは、リージョンを選択していないので、設定しなければなりません。また、APIを利用するための認証も必須です。APIにアクセスするための認証も設定してください。

AWS SDK for JavaScriptのリージョン設定方法

AWS SDK for JavaScriptのリージョンは、グローバル設定オブジェクトを使用して設定します。なお、グローバル設定オブジェクトAWS.Configなので、JavaScritに次のように記述してください。 リージョン設定方法 AWS.config.update({region: ‘ap-northeast-1’}); この例では、リージョンを’ap-northeast-1’、つまり「Asia Pacific (Tokyo)」 に設定します。

AWS SDK for JavaScriptの認証方法

AWS SDK for JavaScriptで推奨される認証方法は、Amazon Cognito ID認証情報オブジェクト、AWS.CognitoIdentityCredentialsの使用です。そして、このオブジェクトのインスタンス、IdentityPoolIdに、アタッチ済みのIDを指定します。 AWS.CognitoIdentityCredentialsの使用例 AWS.config.credentials = new AWS.CognitoIdentityCredentials({ IdentityPoolId: ap-northeast-1:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx }); この例では、アタッチ済みのIDとして「ap-northeast-1:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx」を指定して、認証しています。

アクセス制限に注意

WebブラウザからAWSの各種サービスのAPIを利用できるからといって、どこからでもAWS SDK for JavaScriptが利用できるとは限りません。 例えば、AWS SDK for JavaScriptは、AWSのAPIとのAjax通信が必要です。更に、WebブラウザにはHTMLを開いたサーバーに対してのみAjax通信でアクセスできる、という制限があります。そうでないと、フィッシングやウィルスなどの攻撃が成功してしまうからです。 そのため、AWS SDK for JavaScriptを利用するJavaScriptを記述したHTMLを、Amazon S3に置き、そのリージョンを指定してから利用してください。

AWS SDK for JavaScriptを利用するための設定例

これまでAWS SDK for JavaScriptを利用するために最低限必要な記述について解説しましたが、個別に説明しただけでは解り難い箇所もあるでしょう。次に、具体例を使って書き方を解説します。 AWS SDK for JavaScriptを利用する設定例 <script src=”https://sdk.amazonaws.com/js/aws-sdk-2.816.0.min.js”></script> <script type=”text/javascript”> AWS.config.update({region: ‘ap-northeast-1’}); AWS.config.credentials = new AWS.CognitoIdentityCredentials({ IdentityPoolId: ap-northeast-1:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx }); この例では、AWS SDK for JavaScriptを利用するために、バージョン2.816.0のSDKを利用し、リージョンを’ap-northeast-1’「Asia Pacific (Tokyo)」 に設定し、Amazon Cognito ID認証情報を使って認証しています。 なお実際には、この後に個々のAWSサービスのAPIを利用するためのプログラムを記載します。

まとめ

最近、Webブラウザ側でページを作成するHTMLレンダリングエンジン、または、ブラウザレンダリングによる動的なWebページの作り方が注目されています。AWS SDK for JavaScriptは、そのようなWebページを作りたい方に適している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エンジニアを目指すとこんな道がある【キャリアチェンジアカデミー】