Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
DevOps + AWS #jawsug
Search
Naoya Ito
August 02, 2013
Technology
38
7.4k
DevOps + AWS #jawsug
Naoya Ito
August 02, 2013
Tweet
Share
More Decks by Naoya Ito
See All by Naoya Ito
TypeScript 関数型スタイルでバックエンド開発のリアル
naoya
57
25k
シェルの履歴とイクンリメンタル検索を使う
naoya
7
2.9k
20230227-engineer-type-talk.pdf
naoya
82
37k
関数型プログラミングと型システムのメンタルモデル
naoya
53
65k
TypeScript による GraphQL バックエンド開発
naoya
27
27k
フロントエンドのパラダイムを参考にバックエンド開発を再考する / TypeScript による GraphQL バックエンド開発
naoya
66
23k
「問題から目を背けず取り組む」 一休の開発チームが6年間で学んだこと
naoya
142
57k
一休の現在と、ここまでの道のり
naoya
89
40k
技術的負債と向き合う
naoya
250
76k
Other Decks in Technology
See All in Technology
#Zenoh 完全に理解した 〜組込み純情篇〜
takasehideki
1
450
2024年版 運用者たちのLLM
nwiizo
3
290
バックログを導入し やっぱやめた話
ota42y
0
170
日経電子版から始まった内製開発の現在地と向き合っている課題/inhouse
nishiuma
0
230
Datadog を使ったプロダクトとクラウドの セキュリティモニタリング
mrtc0
0
450
「名前解決」から振り返るAmazon VPC
yuki_ink
0
320
Dive Deep in Cloud Run: Automatic Base Image update
aoto
PRO
0
900
タイミーのBraze活用 ~PUSH通知を活用したレコメンド~
ozeshun
2
120
RAGHack: Kickoff and RAG 101
pamelafox
0
200
技術力あげたい
hisaichi5518
2
2.8k
リクルート新人研修2024 テキスト生成AI活用
recruitengineers
PRO
10
420
音声AIエージェントの世界とRetell AI入門 / Introduction to the World of Voice AI Agents and Retell AI
rkaga
3
470
Featured
See All Featured
Adopting Sorbet at Scale
ufuk
72
8.9k
Thoughts on Productivity
jonyablonski
65
4.2k
Happy Clients
brianwarren
96
6.6k
Optimising Largest Contentful Paint
csswizardry
28
2.7k
The Pragmatic Product Professional
lauravandoore
30
6.2k
BBQ
matthewcrist
83
9.1k
What’s in a name? Adding method to the madness
productmarketing
PRO
21
3k
Fantastic passwords and where to find them - at NoRuKo
philnash
47
2.7k
WebSockets: Embracing the real-time Web
robhawkes
59
7.3k
We Have a Design System, Now What?
morganepeng
48
7.1k
Six Lessons from altMBA
skipperchong
26
3.3k
Designing on Purpose - Digital PM Summit 2013
jponch
113
6.8k
Transcript
%FW0QT "84 /BPZB*UP
"84.BOBHFNFOU $POTPMF
None
None
切腹
1BDLFS
1BDLFSͰ".* // packer.json { "builders" : [{
"type" : "amazon-‐ebs", "access_key" : "...", "secret_key" : "...", "region" : "ap-‐northeast-‐1", "source_ami" : "ami-‐e5b33ce4", "instance_type" : "t1.micro", "ssh_username" : "ec2-‐user", "ami_name" : "packer-‐example {{.CreateTime}}" }] }
QBDLFSCVJME
1BDLFSͷQSPWJTJPOFST // packer.json { "provisioners": [
{ "inline": [ "sleep 30", "curl -‐L https://www.opscode.com/chef/install.sh | sudo bash" ], "type": "shell" } ] }
7BHSBOU
7BHSBOU͕ϩʔΧϧͷ7.ཱͪ ্͛Δπʔϧͩͱࢥ͍ͬͯΔͦ͜ ͷΞφλ
切腹
% vagrant init % vagrant up
7BHSBOUX&$ # Vagrantfile Vagrant.configure(2) do |config| config.vm.box
= "dummy" config.vm.provider :aws do |aws, override| aws.access_key_id = ENV['AWS_ACCESS_KEY_ID'] aws.secret_access_key = ENV['AWS_SECRET_ACCESS_KEY'] aws.keypair_name = "naoya's keys" aws.instance_type = "t1.micro" aws.region = "ap-‐northeast-‐1" aws.ami = "ami-‐a3af2ba2" aws.security_groups = [ 'webserver' ] aws.tags = { 'Name' => 'vagrant-‐test' } override.ssh.username = "ec2-‐user" override.ssh.private_key_path = "~/.ssh/aws-‐naoyaskeys.pem" end end
% vagrant up -‐-‐provider=aws
WBHSBOUVQ
͍͟ɺϓϩϏδϣχϯά
% knife cookbook create nginx –o cookbooks
Ϩγϐॻ͘ package "nginx" do action :install end
service "nginx" do action [:enable, :start] end
7BHSBOU $IFG package "nginx" do action :install
end service "nginx" do action [:enable, :start] end
WBHSBOUQSPWJTJPO
ͯ͞ɺಈ࡞֬ೝɾɾɾ
None
TFSWFSTQFD
% vagrant ssh-‐config \ -‐-‐host=ec2-‐test >> ~/.ssh/config %
serverspec-‐init
ςετॻ͘ require 'spec_helper' describe package('nginx') do
it { should be_installed } end describe service('nginx') do it { should be_enabled } it { should be_running } end describe port(80) do it { should be_listening } end
SBLFTQFD
͍ͭͰʹ(VBSE ϑΝΠϧॻ͖͑ͨΒࣗಈͰςετ
% vagrant destroy ςετऴΘͬͨ͠
େࣄͳ͜ͱͦͷ̍ ͜͜·Ͱ.BOBHFNFOU $POTPMFҰͳ͠
ͱ͍͏͜ͱŋŋŋʁ
ࣗಈԽ
"84$* h"p://d.hatena.ne.jp/naoya/20130521/1369102714
େࣄͳ͜ͱͦͷ શ෦ίʔυʹͳͬͯΔ
ͱ͍͏͜ͱŋŋŋʁ
(JUIVC
"844PDJBM$PEJOH
·ͱΊ DIFGΔ͚͕ͩ%FW0QTͰ͋Γ·ͤΜ ·ͱ·ͬͯͳ͍
ߟ • "84Ͱં֯ϋʔυͷ੍͕ແ͘ͳͬͨΘ ͚ͩ͠ • ͳΔ͘ιϑτΣΞͰָ͠·͠ΐ͏ • ָ࡞ۀෛՙ͕গͳ͍BOEָ͍͠ • $*4PDJBM$PEJOHͷΑ͏ͳɺΑΓϨ
ΠϠͷߴ͍ӡ༻ϓϩηε·Ͱঢ՚ͤͯ͞ ͳΜ΅
None