aws sdk for go を使って作ってみた話

33
AWS SDK for Go を使って作ってみた話 2015 9 8 JAWS UG 千葉支部 Vol.5 懇親会 JAWS UG 中央線 内田 27+6P

Upload: uchimanajet7

Post on 16-Apr-2017

730 views

Category:

Technology


3 download

TRANSCRIPT

Page 1: AWS SDK for Go を使って作ってみた話

AWS SDK for Go

を使って作ってみた話

2015年9月8日

JAWS−UG千葉支部 Vol.5 懇親会JAWS−UG中央線 内田 学

27+6P

Page 2: AWS SDK for Go を使って作ってみた話

  2

‣ AWS SDK for Goとは?

‣ 使って作ってみた! ‣ まとめ ‣ 告知

アジェンダ

Page 3: AWS SDK for Go を使って作ってみた話

  自己紹介

内田 学(うちだ まなぶ)

uchimanajet7

スポットインスタンス

サポート

AWS SDK for Go

3

Page 4: AWS SDK for Go を使って作ってみた話

  4

➡AWS SDK for Goとは?

‣ 使って作ってみた! ‣ まとめ ‣ 告知

アジェンダ

Page 5: AWS SDK for Go を使って作ってみた話

  5

‣ golang 用のAWS SDK

‣ 2015/09/08 現在 Developer Preview

‣ GitHubを確認するとかなりの頻度で更新

が行われているのがわかる

‣ リリースされているバージョン毎にリリー

スノートが用意されている

AWS SDK for Goとは?

Page 6: AWS SDK for Go を使って作ってみた話

  6

‣ golangの特徴を使ってAWSを操作可能

‣ クロスコンパイルによるマルチ環境での動

作が可能

‣ 実行環境の構築/設定が不要

‣ 非同期処理が比較的簡単に実現可能

‣ 比較的省メモリで動作し実行速度も速い

AWS SDK for Goとは?

Page 7: AWS SDK for Go を使って作ってみた話

  7

✓AWS SDK for Goとは?

➡使って作ってみた! ‣ まとめ ‣ 告知

アジェンダ

Page 8: AWS SDK for Go を使って作ってみた話

  8

‣ 文字通りにAWS SDK for Goを使ってCLIツー

ルを作ってみた

‣ rds-try という名称で地味に公開中

‣ 詳細な内容については README.md と Blog

にまとめて記載済み

‣ なので今回は簡単に説明していく

使って作ってみた!

Page 9: AWS SDK for Go を使って作ってみた話

  9

‣ 制限事項として

- Amazon RDS for MySQL のみに対応

- 動作しているRDSインスタンスが必要

- API呼び出しでエラーの場合再呼び出し無し

- 実行状態を通知する機能は無し

- Tagの内容でツールでの作成なのかを判断

- エラーで終了した場合その状態のまま

使って作ってみた!

Page 10: AWS SDK for Go を使って作ってみた話

  10

‣ なぜ作ったのか?

- 普段はあまり負荷がないためマイクロインスタンスで十分

- DBには数十万件のレコードがある

- レコード数がそこそこあるので集計やバッチ処理に時間

がかかる時がある

- 処理中にリソースを使い果たしてしまい監視が反応する

時がある

- 処理する時だけインスタンスタイプを変更できたら便利

使って作ってみた!

Page 11: AWS SDK for Go を使って作ってみた話

  11

‣ なぜ作ったのか?

- スナップショットから復元して処理すればいいのでは?

- 復元後のRDSはセキュリティグループなどがデフォルト

のため、そのままではアクセス出来ない

- 復元と設定変更を行い集計処理まで自動で出来たら楽に

なるのでは?

- golangを採用したのは単純に興味津々だったから

- AWS CLIや定番のRubyでも当然同じことは可能

使って作ってみた!

Page 12: AWS SDK for Go を使って作ってみた話

  12

‣ 出来ることは?

- スナップショットからのインスタンス作成

• 新規スナップショットの作成

- 作成したインスタンスの一覧表示

• 作成したスナップショットの一覧表示

- 作成したインスタンスの削除

• 作成したスナップショットの削除

- クエリー実行時間計測

- クエリー結果ファイル出力

使って作ってみた!

Page 13: AWS SDK for Go を使って作ってみた話

  13

‣ 使ってみるには?

- リリースページ からファイルをダウンロード

- 実行環境に対応したものを利用する

- コンフィグファイルを作成する

- クエリーファイルを作成する

- ファイルが出力されるので権限の確認

- 後はコマンドを実行するだけ!

使って作ってみた!

Page 14: AWS SDK for Go を使って作ってみた話

  14

✓AWS SDK for Goとは?

✓使って作ってみた! ➡まとめ ‣ 告知

アジェンダ

Page 15: AWS SDK for Go を使って作ってみた話

  15

‣ AWS SDK for Go&golang楽しいです

‣ たとえ自分用だとしてもプロダクトを作って

AWS SDKを利用するのはおすすめ

‣ プロダクトがある事で定期的にAWS SDKの

ことを気にする必要がある

まとめ

Page 16: AWS SDK for Go を使って作ってみた話

  16

‣ AWS SDKについてもpublic初期から継続的に見て

いるので愛着が半端ない

‣ 利用しているAWS SDKが小変更されただけでも盛

り上がれる!

‣ AWS SDKも初期はAWS APIに近い基本的な関数し

かないため構築手順は多くなるが、それに比例して

AWS API&SDKへの理解度と愛着度が増す

まとめ

Page 17: AWS SDK for Go を使って作ってみた話

  17

‣ 最終的には利用しているAWS SDKにコントリ

ビュートしてカイゼンに協力していけるようになる

のが理想形

‣ 皆さんもAWS SDKを使ってプロダクトやサービス

を作ってみてはどうでしょう?

‣ 自分の好きな言語+AWSは最強ではないかと思い

ました!!

まとめ

Page 18: AWS SDK for Go を使って作ってみた話

  18

✓AWS SDK for Goとは?

✓使って作ってみた! ✓まとめ ➡告知

アジェンダ

Page 19: AWS SDK for Go を使って作ってみた話

  19告知

この中に9/27(日)午前10時30分「高尾山ビアマウント」に集合出来る人はいらっしゃいますか?

Page 20: AWS SDK for Go を使って作ってみた話

  20

‣ 遅くなりましたが今年も開催します

‣ JAWS−UG in 高尾山!!

‣ 今年は中央線&京王線の合同開催です

‣ 高尾山でJAWS−UGとか意味わかりません

が?という人には去年の様子を少し紹介!

‣ 詳細についてはBlogをご覧ください

告知

Page 21: AWS SDK for Go を使って作ってみた話

21

http://www.takaotozan.co.jp/beermnt/

Page 22: AWS SDK for Go を使って作ってみた話

22

JAWS-UG中央線第3回勉強会 in 高尾山

Page 23: AWS SDK for Go を使って作ってみた話

  23

https://jaws-ug-chuoline.doorkeeper.jp/events/30570

https://jawsug-keioline.doorkeeper.jp/events/30653

「JAWS−UG 中央線」or 「JAWS−UG 京王線」で検索!

告知

Page 24: AWS SDK for Go を使って作ってみた話

  24告知

AWS re:Invent 2015 で集合する前に9/27(日)午前10時30分 「高尾山ビアマウント」に集合でお願いします!

Page 25: AWS SDK for Go を使って作ってみた話

  25

https://ekiworld.net/personal/service/index.html http://roote.ekispert.net/ 「駅すぱあと」or「Roote」で検索!

お帰りの際は

Page 26: AWS SDK for Go を使って作ってみた話

  26

https://aws.amazon.com/jp/solutions/case-studies/val/ 「AWS 導入事例 駅すぱあと」で検索!

お帰りの際は

Page 27: AWS SDK for Go を使って作ってみた話

27

まちなみくん

Thank you for listening.

Page 28: AWS SDK for Go を使って作ってみた話

  28

‣ JAWS-UG 中央線

- http://jaws-ug.jp/bc/chuoline/

‣ JAWS-UG 京王線

- https://jawsug-keioline.doorkeeper.jp/

‣ AWS SDK for Go

- https://aws.amazon.com/jp/sdk-for-go/

Appendix

Page 29: AWS SDK for Go を使って作ってみた話

  29

‣ aws/aws-sdk-go

- https://github.com/aws/aws-sdk-go

‣ Release: AWS SDK for Go v0.9.5

- http://aws.amazon.com/releasenotes/

6995518966379854

‣ uchimanajet7 - Pixelhub.me

- http://pixelhub.me/pixelhub1/index.php?

user=uchimanajet7

Appendix

Page 30: AWS SDK for Go を使って作ってみた話

  30

‣ uchimanajet7/rds-try

- https://github.com/uchimanajet7/rds-try

‣ rds-try/README.md

- https://github.com/uchimanajet7/rds-try/blob/master/

README.md

‣ aws-go-sdk を使ってRDSをちょっとだけ操作できる「rds-

try」というツールを作ってみた

- http://uchimanajet7.hatenablog.com/entry/

2015/03/17/211139

Appendix

Page 31: AWS SDK for Go を使って作ってみた話

  31

‣ Releases · uchimanajet7/rds-try

- https://github.com/uchimanajet7/rds-try/releases

‣ 「JAWS-UG中央線第3回勉強会 in 高尾山 #jawsug」

(2014年08月02日)の開催メモ

- http://uchimanajet7.hatenablog.com/entry/

2014/08/04/130356

‣ 高尾山ビアマウント

- http://www.takaotozan.co.jp/beermnt/

Appendix

Page 32: AWS SDK for Go を使って作ってみた話

  32

‣ Jaws-ug中央線 - 全セッション終了後の記念写真です。

- https://www.facebook.com/chuoline.jawsug/posts/

832797526730914

‣ JAWS-UG中央線&京王線合同勉強会 in 高尾山2015

- https://jaws-ug-chuoline.doorkeeper.jp/events/30570

- https://jawsug-keioline.doorkeeper.jp/events/30653

‣ サービス・製品紹介 - 個人ユーザー向けサービス

- https://ekiworld.net/personal/service/index.html

Appendix

Page 33: AWS SDK for Go を使って作ってみた話

  33

‣ 駅すぱあとの『Roote』

- http://roote.ekispert.net/

‣ AWS 導入事例:株式会社ヴァル研究所

- https://aws.amazon.com/jp/solutions/

case-studies/val/

‣ まちなみくん

- https://www.facebook.com/matinamikun

Appendix