wakateweb vagrant aws

44
vagrant-awsにプルリしたら マージされた話

Upload: yuma-iwasaki

Post on 22-Jul-2015

5.203 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: wakateweb vagrant aws

vagrant-awsにプルリしたらマージされた話

Page 2: wakateweb vagrant aws

自己紹介

• 名前:岩崎 裕馬

• Twitter:@yuma_iwasaki

• 所属:株式会社Speee • 好きなこと:食べ歩き • 愛称:ランチコンダクター

Page 3: wakateweb vagrant aws

アジェンダ

• vagrant-awsとは? • プルリした内容について • 見つけた時の経緯 • その他 • Tips

Page 4: wakateweb vagrant aws

vagrant-awsとは?

Page 5: wakateweb vagrant aws

vagrant-awsとは?

• VagrantでAWSの操作を行うことができるようになるプラグイン

• 「vagrant up —provider=aws」だけで

EC2インスタンスの起動が行える。

Page 6: wakateweb vagrant aws

通常のVagrant

Page 7: wakateweb vagrant aws

vagrant-aws

Page 8: wakateweb vagrant aws

プルリした内容について

Page 9: wakateweb vagrant aws
Page 10: wakateweb vagrant aws
Page 11: wakateweb vagrant aws

これだけです

Page 12: wakateweb vagrant aws

内容としてはREADMEのみですが、

これを見つけるにも色々経緯があったので その点をお話したいと思います。

Page 13: wakateweb vagrant aws

見つけた時の経緯

Page 14: wakateweb vagrant aws

見つけた時の経緯• AMI起動時にEBSのサイズの指定を行えないか探していた。

• 指定できない場合はawscliを使用するか、

EBSのサイズ毎のAMIを作るしかないと考えていた。

Page 15: wakateweb vagrant aws

どうしてもvagrant-aws内で

やりたかったので思いついたことは

Page 16: wakateweb vagrant aws

_人人人人人人人人人人人人人_

> 機能がなければ作ればいい!! <

‾Y^Y^Y^Y^Y^Y^Y^Y^Y^Y‾

Page 17: wakateweb vagrant aws

とりあえず、ソースを読みました

Page 18: wakateweb vagrant aws
Page 19: wakateweb vagrant aws

見たことない設定があるんですけど・・・ (しかも探しているやつっぽい)

Page 20: wakateweb vagrant aws

とりあえず、ググりました

Page 21: wakateweb vagrant aws

こんなものやhttps://github.com/mitchellh/vagrant-aws/issues/119

Page 22: wakateweb vagrant aws

こんなものまで見つかりましたhttp://docs.aws.amazon.com/AWSCloudFormation/latest/

UserGuide/aws-properties-ec2-blockdev-mapping.html

Page 23: wakateweb vagrant aws

そして、無事にEBSの

ボリュームサイズの変更ができるようになりました

Page 24: wakateweb vagrant aws

実装サンプル

Page 25: wakateweb vagrant aws

その他

Page 26: wakateweb vagrant aws

vagrant-awsを本番運用で使用するのは?

Page 27: wakateweb vagrant aws

オススメできません

Page 28: wakateweb vagrant aws

オススメできない理由

• vagrant-awsだけでは要件を満たせない場合があったりして、結局、awscli等を使うことになるため。

Page 29: wakateweb vagrant aws

例えば、EIPを割り当てたい場合

(awscli)# 付与するEIPを定義EIP=“xxx.xxx.xxx.xxx”# インスタンスのIDを取得INSTANCE_ID=`cat .vagrant/machines/default/aws/id | sed “s/$//g"`# EIPの付与 aws associate-address --instance-id ${INSTANCE_ID} —public-ip ${EIP}

Page 30: wakateweb vagrant aws

こういった場合はawscli等で最初から取り組んでおいた方が

いいと思います。

Page 31: wakateweb vagrant aws

vagrant-awsのオススメの使用方法

Page 32: wakateweb vagrant aws

ヌーラボのインフラ運用最前線 ~イミュータブルを目指して

http://nulab-inc.com/ja/blog/nulab/nulab-immutable-infrastructure_1/

Page 33: wakateweb vagrant aws

オススメの使用方法

vagrant-aws :インスタンス起動

       : プロビジョニング

vagrant-serverspec :テスト

vagrant-ami :AMI作成

Page 34: wakateweb vagrant aws

それぞれを組み合わせることにより、

テスト済みのAMIの作成が可能

Page 35: wakateweb vagrant aws

先程のvagrant-awsでの

EIPの割り当てについて

Page 36: wakateweb vagrant aws

_人人人人人人人人人人人人人_

> 機能がなければ作ればいい!! <

‾Y^Y^Y^Y^Y^Y^Y^Y^Y^Y‾

Page 37: wakateweb vagrant aws

作りました

Page 38: wakateweb vagrant aws

Vagrantfile

# 変更前(自ら指定したIPアドレスに設定できなかった)aws.elastic_ip = true!# 変更後(IPアドレスの指定ができる!)aws.elastic_ip = ‘xxx.xxx.xxx.xxx’

Page 39: wakateweb vagrant aws

プルリ投げましたhttps://github.com/mitchellh/vagrant-aws/pull/248

Page 40: wakateweb vagrant aws

あとマージされるのを待つのみ!

Page 41: wakateweb vagrant aws

Tips

インスタンスが起動している場合、「.vagrant/

machines/default/aws/id」には

awsのインスタンスIDが入っているので

「cat .vagrant/machines/default/aws/id」にて

簡単にインスタンスIDの取得が可能

Page 42: wakateweb vagrant aws

どういうことか?

Page 43: wakateweb vagrant aws

Vagrantfile

# 変更前(自ら指定したIPアドレスに設定できなかった)echo ‘[起動済AWSのインスタンスID]’ >.vagrant/machines/default/aws/id!# インスタンスへのSSH接続が可能vagrant ssh# インスタンスの終了が可能vagrant destroy

Page 44: wakateweb vagrant aws

※動作保証外