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
7.9k
37
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
DevOps + AWS #jawsug
Naoya Ito
August 02, 2013
More Decks by Naoya Ito
See All by Naoya Ito
アルゴリズムは何を圧縮しているのか ─ Haskell から育った「圧縮代数」というメンタルモデル
naoya
16
3.9k
Haskell を武器にして挑む競技プログラミング ─ 操作的思考から意味モデル思考へ
naoya
13
4.5k
Haskell でアルゴリズムを抽象化する / 関数型言語で競技プログラミング
naoya
21
7.9k
Functional TypeScript
naoya
19
6.8k
TypeScript 関数型スタイルでバックエンド開発のリアル
naoya
77
38k
シェルの履歴とイクンリメンタル検索を使う
naoya
16
6.8k
20230227-engineer-type-talk.pdf
naoya
91
87k
関数型プログラミングと型システムのメンタルモデル
naoya
63
110k
TypeScript による GraphQL バックエンド開発
naoya
29
37k
Other Decks in Technology
See All in Technology
[ChatGPT Work LT]事務作業が苦手な人のための バックオフィスの「半」自動化
chimaki_iot
0
280
システム思考で問題に対処する
yussak
0
240
認知負荷をGemini で溶かす — GKE 基盤「Orbit」における AI エージェントの実践
sansantech
PRO
1
290
モダンフロントエンド 開発研修
recruitengineers
PRO
4
600
20260608_Codexの可能性_ノンプログラマー向け_大城追記
doradora09
PRO
0
790
取引先から届く 「セキュリティチェックシート」の読み解き方
kamadamakoto
0
140
Eight Engineering Unit 紹介資料
sansan33
PRO
3
8.2k
Contract One Engineering Unit 紹介資料
sansan33
PRO
0
19k
【CEDEC2026】次世代デジタルカードゲームのサーバー設計と運用 〜『Shadowverse: Worlds Beyond』の舞台裏~
cygames
PRO
1
1.2k
Model Studio CLI × Token Plan
maigo999
0
140
え?フロントエンドエンジニアの ワイがインフラも!?
puku0x
1
510
AIエージェントを前提としたプラットフォーム エンジニアリング:GKEで作るAgent-Ready Golden Path
legalontechnologies
PRO
2
220
Featured
See All Featured
Un-Boring Meetings
codingconduct
0
380
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
170
Are puppies a ranking factor?
jonoalderson
1
3.8k
Automating Front-end Workflow
addyosmani
1369
210k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.4k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
990
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
520
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
240
Designing for Timeless Needs
cassininazir
1
440
Building Applications with DynamoDB
mza
96
7.2k
Building an army of robots
kneath
306
46k
Mobile First: as difficult as doing things right
swwweet
225
10k
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