この記事の目次
AWS SDK入門 GO言語で始めるAWS SDK
![](https://b-engineer-media-cms.s3.amazonaws.com/item/image/user/f5ef944a50653ad198392450d8cdba1dea4885cc/87a2e1f3-0fdc-4110-8476-dbf1920c6d4e.png)
記事を読む上での前提知識
こちらの記事は、AWSに関しての一定の理解がある前提で話を進めます。AWSのアカウントの作り方や、ハンズオンパートで利用する予定のストレージサービスであるS3に関しての解説は省略いたします。 また、OSに関してはMacの利用を前提としております。Macのコマンドの使い方等の解説は省略いたしますので、予めご了承ください。 またこちらの記事で使用するGO言語のバージョンは、以下となっております。$ go version
go version go1.15.5 darwin/amd64
AWS SDKとは
AWS SDKとは、AWS側が提供している公式のSDK(Software Development Kit)になります。 自身で作成されたプログラムから、AWSのサービスを利用したい場合などに利用されます。SDKですので、自身のプログラムにSDKのライブラリを組み込んで使用することになります。 AWS SDKには、今回解説するGO言語以外にも様々な言語が対応しています。執筆時点ではC++, Java, JavaScript, .NET, Python, RubyなどのSDKが存在します。ご自身の得意な言語に合わせてSDKを選択できるのが、魅力的な点と言えるでしょう。GO言語とは?
![](https://b-engineer-media-cms.s3.amazonaws.com/item/image/user/9e08934fd24485c7d9e691a312f16a4ef7ff96eb/654bd373-e8cd-4bfa-b2e9-6a2405b5a5ff.jpg)
GO言語での開発環境を構築しよう!
SDKを使う前には、GO言語のインストールや設定等が必要になります。すでにパソコンにインストール済みという方は、こちらのセクションを飛ばしていただいても構いません。GO言語のインストール
ターミナルを開いて、HomebresにてGOをインストールします。$ brew install go
インストールが完了したらバージョンを表示して、インストールが完了したかどうかをチェックします。
$ go version
go version go1.15.5 darwin/amd64
上記の通り表示されれば、問題ありません。
GO言語の環境設定
GOをインストールしただけでは、アプリの開発はできません。次に、重要な環境変数やパスの設定を行います。 ターミナルを開いて、以下のコマンドを実行してください。$ mkdir $HOME/go
$ cd $HOME/go
$ pwd
/Users/{yourname}/go
最終的にpwdでパスが表示されていれば問題ありません。{yourname}はご自身の環境によって変化しますので、注意してください。
次に環境変数の設定を行います。ターミナルで、以下の通り実行をしてみてください。
$ export GOPATH=/Users/{yourname}/go
$ echo $GOPATH
/Users/{yourname}/go
前のセクションと同じように、/Users/{yourname}/goが表示されれば問題ありません。
GOPATHとは
前のセクションでは、GOPATHを設定しました。こちらの環境変数は、非常に重要な意味合いを果たします。GOでライブラリをインストールする先が、こちらのパスになります。 今後、GOで開発を進めていく際には、go get というコマンドを利用することになりますが、そちらのgo getで取得したソースコードの格納先がGOPATHになります。SDKを用いたサンプルアプリケーションの実装
今回は、S3のバケットのリストを取得する簡単なアプリケーションを作成します。AWSのアカウントは保持しているという前提で話をしますので、作成されていない方は事前に作成をお願いします。IAMの認証情報の設定
AWSのIAMからAPIのアクセスキーとシークレットを取得して、ローカル環境に認証情報を記載します。また、デフォルトのリージョン(今回の例ではap-northeast-1)も合わせて記載します。$ vim ~/.aws/credentials
[default]
aws_access_key_id = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
aws_secret_access_key = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
region = ap-northeast-1
xxxxxの部分は取得した値を記載してください。使用するIAMに関しては、必ずS3の参照権限を付与しておいてください。
S3でのバケットの作成
S3にてバケットが作成されていない場合は、AWSのコンソール上で、任意のバケットを作成してください。バケットの数は何個でも構いません。今回はバケットの一覧を表示するだけなので、わかりやすいバケットの名前にしておいてください。ライブラリのインストール
任意のディレクトリで、以下のコマンドを実行してください。今回は、2つのライブラリをgo getします。go get github.com/aws/aws-sdk-go/service/s3
go get github.com/aws/aws-sdk-go/aws/session
次に以下のコマンドを実行して、ファイル等が表示されれば、正しくgo getでライブラリがインストールできた証拠となります。
ls -al $HOME/go/src/github.com/aws/aws-sdk-go/service/s3
ls -al $HOME/go/src/github.com/aws/aws-sdk-go/aws/session
SDKを利用したサンプルアプリの実装
GOPATH配下に作業ディレクトリを用意して、アプリケーションの実装を行います。 今回はエラー処理等は考慮しておりません。最低限SDKが利用できるアプリを目指します。$ mkdir $GOPATH/gosdksample
$ cd $GOPATH/gosdksample
$ vim main.go
func main() {
svc := s3.New(session.New())
input := &s3.ListBucketsInput{}
result, _ := svc.ListBuckets(input)
fmt.Println(result)
}
では、go runコマンドで実行してみましょう。
$ go run main.go
{
Buckets: [{
CreationDate: 2020-09-15 06:07:33 +0000 UTC,
Name: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
},{
CreationDate: 2020-05-08 12:39:56 +0000 UTC,
Name: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}],
Owner: {
DisplayName: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
ID: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}
}
上記の通り、バケットの一覧が表示されれば、正しく動作している証拠です。
ローカルからSDKを通じてS3の情報が取得できています。
AWS SDK for Goを活用しましょう!
これにて本記事は終了となります。今回はS3の情報を取得する機能を使用しましたが、S3以外にも多くの機能をSDKを通じて利用可能です。 現在、多くのアプリケーションは、AWSのマネージドサービスと連携が必要であると言えます。その際に、ぜひSDKを活用して実装を行いましょう。]]>この記事の監修者・著者
![株式会社オープンアップITエンジニア](https://tenshoku-careerchange.jp/wp-content/uploads/2023/07/fzxADbr-_400x400-1-150x150.jpg)
-
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞
最新の投稿
- 2024年3月26日キャリア・転職保安職(自衛官・警察・消防官など)に向いている人の性格・特徴ランキング【現役保安職(自衛官・警察・消防官など)36人が回答】
- 2024年3月26日キャリア・転職保安職(自衛官・警察・消防官など)に必要なスキルランキング&スキルアップの方法とは?【現役保安職(自衛官・警察・消防官など)36人が回答】
- 2024年3月26日キャリア・転職クリエイター職(ライター・デザイナー・編集)に向いている人の性格・特徴ランキング【現役クリエイター職(ライター・デザイナー・編集)64人が回答】
- 2024年3月26日キャリア・転職クリエイター職(ライター・デザイナー・編集)に必要なスキルランキング&スキルアップの方法とは?【現役クリエイター職(ライター・デザイナー・編集)64人が回答】