29
opyright © CLASSMETHOD. 1 AWS SDK for .NET ををををを Excel ををを AWS ををををををををを ををををををををををを AWS ををををををををを をををを をを2013 を 12 を 10 を をを () 18:30-22:15 ををSAP をををを をを ()

Developers.io meetup 01 2013/12/10

Embed Size (px)

Citation preview

Page 1: Developers.io meetup 01 2013/12/10

Copyright © CLASSMETHOD. 1

AWS SDK for .NET を利用したExcel による AWS 環境定義書自動生成

クラスメソッド株式会社AWS コンサルティング部

福田寅成

日時: 2013 年 12 月 10 日(火) 18:30-22:15会場: SAP ジャパン(株)

Page 2: Developers.io meetup 01 2013/12/10

Copyright © CLASSMETHOD. 2

自己紹介

•福田寅成(ふくだ ともなり)@Cronoloves(くろの)北海道出身ソリューションアーキテクト

•AWSオペレーション担当アカウント管理サービス窓口

メンバーズ、 HOOT24等技術サポート /請求問い合わせ窓口

Page 3: Developers.io meetup 01 2013/12/10

Copyright © CLASSMETHOD. 3

あじぇんだ

•AWS 関連案件の自動化の状況•AWS 環境定義書自動生成ツールデモ•VBA VS Office アドイン•Excel 改造の流れ•これからの予定

Page 4: Developers.io meetup 01 2013/12/10

Copyright © CLASSMETHOD. 4

本セッション関連ブログ記事

• 【 Excel改造】 AWS環境定義書自動生成【 EC2編】

・ 12/9テスト環境の削除・ 12/11本番環境の ELB暖気申請

Page 5: Developers.io meetup 01 2013/12/10

Copyright © CLASSMETHOD. 5

AWS環境定義書作ったことありますか?

AWS環境定義書作ったことありますか?

またはネットワーク仕様書

作ったことありますか?

Page 6: Developers.io meetup 01 2013/12/10

Copyright © CLASSMETHOD. 6

AWS 環境定義書

Page 7: Developers.io meetup 01 2013/12/10

Copyright © CLASSMETHOD. 7

元となる情報@ AWS Management Console

Page 8: Developers.io meetup 01 2013/12/10

Copyright © CLASSMETHOD. 8

AWS 関連案件の自動化状況

営業 見積もり 構築 ドキュメント作成テスト

Page 9: Developers.io meetup 01 2013/12/10

Copyright © CLASSMETHOD. 9

AWS 関連案件の自動化状況

営業 見積もり 構築 ドキュメント作成テスト

流石に自動化は無理(?)

Page 10: Developers.io meetup 01 2013/12/10

Copyright © CLASSMETHOD. 10

AWS 関連案件の自動化状況

営業 見積もり 構築 ドキュメント作成テスト

・ AWS 利用料金の見積もり・ Simple Monthly Calculatorから見積書 PDF 作成を自動化したい

Page 11: Developers.io meetup 01 2013/12/10

Copyright © CLASSMETHOD. 11

AWS 関連案件の自動化状況

営業 見積もり 構築 ドキュメント作成テスト

・環境: CloudFormation・中身: Chef 等

Page 12: Developers.io meetup 01 2013/12/10

Copyright © CLASSMETHOD. 12

AWS 関連案件の自動化状況

営業 見積もり 構築 ドキュメント作成テスト

・ AWS 環境構築のテスト・負荷テスト・その他各種テスト

Page 13: Developers.io meetup 01 2013/12/10

Copyright © CLASSMETHOD. 13

AWS 関連案件の自動化状況

営業 見積もり 構築 ドキュメント作成テスト

・ AWS 案件でまれに発生 ・大企業案件、金融系案件等・作成コスト高

Page 14: Developers.io meetup 01 2013/12/10

Copyright © CLASSMETHOD. 14

AWS 環境定義書

•ネットワーク構成図•EC2 の設定一覧•Security Group 一覧•IP アドレス一覧•Apache の設定•監視設定•その他多数

AWS Management Console からダウンロード出来ないかな???

Page 15: Developers.io meetup 01 2013/12/10

Copyright © CLASSMETHOD. 15

AWS 環境定義書自動生成ツール

作ったった!

Page 16: Developers.io meetup 01 2013/12/10

Copyright © CLASSMETHOD. 16

AWS 環境定義書自動生成デモ

•Excel のリボンにボタンを追加•ボタンから AWS アクセスロジック呼び出し•デバッグ実行•Excel 上の「仕様書生成」ボタンをクリック•仕様書完成!

Page 17: Developers.io meetup 01 2013/12/10

Copyright © CLASSMETHOD. 17

VBA VS Office アドイン

•VBAVBA でプログラミングWeb の情報量は多い.NET が使えない通信処理が実装できない(難しい)

Page 18: Developers.io meetup 01 2013/12/10

Copyright © CLASSMETHOD. 18

VBA VS Office アドイン

•Office アドインC# でプログラミングWeb の情報量はほぼゼロ.NET が使える

AWS SDK for .NET が使える!!!

通信処理が実装できる

Page 19: Developers.io meetup 01 2013/12/10

Copyright © CLASSMETHOD. 19

Office アドイン

• リボンの改造!• Windows Forms 、 WPF のコントロールを

利用可能!

制限ゼロ

Page 20: Developers.io meetup 01 2013/12/10

Copyright © CLASSMETHOD. 20

(参考) Office アプリ

•Windows 8/RT から導入された新しいアプリケーション。•HTML5/JavaScript で開発•Office 365 、 Office Store 等向け

Page 21: Developers.io meetup 01 2013/12/10

Copyright © CLASSMETHOD. 21

(参考) Office ストア

Page 22: Developers.io meetup 01 2013/12/10

Copyright © CLASSMETHOD. 22

Excel の改造:リボンの作成

WindowsForms/WPF 開発と同様のイメージ

Page 23: Developers.io meetup 01 2013/12/10

Copyright © CLASSMETHOD. 23

Excel の改造: AWS SDK による情報収集

var ec2Client = new AmazonEC2Client();

var request = new DescribeInstancesRequest();

var response = ec2Client.DescribeInstances(request);

Page 24: Developers.io meetup 01 2013/12/10

Copyright © CLASSMETHOD. 24

Excel の改造: AWS SDK による情報収集

var reservationList = response.DescribeInstancesResult.Reservation;

var runningInstanceList = new List<RunningInstance>();

foreach (var reservation in reservationList){ runningInstanceList.AddRange( reservation.RunningInstance);}

Reservation : EC2 インスタンスを同時に起動した際に割り当てられるグループ

Page 25: Developers.io meetup 01 2013/12/10

Copyright © CLASSMETHOD. 25

Excel の改造:シートの準備

var activeWorksheet = (Excel.Worksheet)Globals.ThisAddIn. Application.ActiveSheet;

activeWorksheet.Name = "EC2";

アクティブシートの取得シート名の変更

Page 26: Developers.io meetup 01 2013/12/10

Copyright © CLASSMETHOD. 26

Excel の改造:シートへの値の描画

string name = (from tag in instance.Tag where tag.Key == "Name“ select tag.Value).ToArray()[0];

var cell = activeWorksheet. get_Range("C4“);cell.Value2 = name;

インスタンス名の表示

Page 27: Developers.io meetup 01 2013/12/10

Copyright © CLASSMETHOD. 27

Excel の改造:シートへの値の描画

cell = activeWorksheet. get_Range("B5“);cell.Value2 = "Availability Zone";cell.Interior.ColorIndex = 34;

cell = activeWorksheet. get_Range("C5“);cell.Value2 = instance.Placement.AvailabilityZone;

AZ の表示

Page 28: Developers.io meetup 01 2013/12/10

Copyright © CLASSMETHOD. 28

これからの予定

• Excel 改造ツールの公開インストーラ orz

• AWS Simple Monthly Calculator からの見積書の生成( Excel/Word/PDF )• シンプルな見積もりツールの作成• AWS 環境構成図の自動生成( Visio )• クラスメソッドメンバーズポータル連携ツー

ルAWS 利用料金表の経理提出用資料生成

• Office for Mac 2011 で何かできないか検討Office for Mac の改造は VBA のみ(泣)

Page 29: Developers.io meetup 01 2013/12/10

Copyright © CLASSMETHOD. 29

おしまい

もうスライドはないよ