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
AWSのAPIをカジュアルに
Search
Naoya Ito
June 28, 2014
Technology
14k
13
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
AWSのAPIをカジュアルに
#jawsug #cloudgirl の資料です
Naoya Ito
June 28, 2014
More Decks by Naoya Ito
See All by Naoya Ito
アルゴリズムは何を圧縮しているのか ─ Haskell から育った「圧縮代数」というメンタルモデル
naoya
16
3.9k
Haskell を武器にして挑む競技プログラミング ─ 操作的思考から意味モデル思考へ
naoya
13
4.6k
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
Service Connect 上のサービスに ECS Service の外側から到達できなかった話
ota1022
1
240
QAエンジニア起点で進める、SmartHRにおける信頼性向上について
kaomi_wombat
1
140
MIRU 2026 チュートリアル
keisuke198619
0
910
【CEDEC2026】『Relink』を拡張せよ - 『GRANBLUE FANTASY: Relink - Endless Ragnarok』の開発速度と品質を守るCI運用
cygames
PRO
0
160
Bits Agent Builder の⼊⾨と活⽤事例
nulabinc
PRO
0
140
Software Supply Chain Attackからクラウド環境を守るためにできること
lhazy
2
260
名刺メーカーDevグループ 紹介資料
sansan33
PRO
0
1.2k
ボトムアップ文化が強い組織で セキュリティをどう根付かせていくかの現在進行形の話 / Making Security Stick in a Bottom-Up Organization
yamaguchitk333
0
220
DatadogのBits Chatが開発組織にもたらしたもの / What Bits Chat Has Brought Us
sms_tech
1
260
TypeScript入門 2026
recruitengineers
PRO
3
570
AIペネトレーションテスト・ セキュリティ検証「AgenticSec」紹介資料
laysakura
2
9k
ガバメント AI 源内を地方自治体は活用できるのか可能性と課題、期待について
takeda_h
1
400
Featured
See All Featured
The Language of Interfaces
destraynor
162
27k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.5k
Amusing Abliteration
ianozsvald
1
240
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
460
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
630
The Cult of Friendly URLs
andyhume
79
7k
Designing for humans not robots
tammielis
254
26k
Speed Design
sergeychernyshev
33
2k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
520
Making the Leap to Tech Lead
cromwellryan
135
10k
BBQ
matthewcrist
89
10k
Transcript
"84ͷ"1*ΛΧδϡΞϧʹ /BPZB*UP ,"*;&/QMBUGPSN*OD ୈճ+"846(Ϋϥυঁࢠձ
ࠓͷ • "1*Λ͓͠Ζ͓͘͏ • ͦͷྫΛ͍͔ͭ͘
"84ͱ͍͑"1* • "84͕طଘͷαʔόʔΠϯϑϥͱҧ͏ͱ͜Ζ – "1*ɺϓϩάϥϚϒϧ • ϓϩάϥϚϒϧͳΠϯϑϥ – *OGSBTUSVDUVSFBT$PEF –
ŋŋŋͱ͍͏͍͍͚ͲɺࠓͬͱΧδϡΞϧʹɺݸਓ༻్ Ͱ"84Λ͓͠Ζ͓͘͏ɺͱ͍͏ େنΠϯϑϥʙɺͱ͔͡Ό ͳͯ͘ৗͷͪΐͬͱͨ͠ಓ ۩ʹ"84Λɺ"1*Λ͏·͘ ͬͯ
,BJ[FO[P (ZB[PΈ͍ͨͳ6* ͰࡱӨͨ͠εΫγϣΛ 4ʹ্͛Δ
σϞ
͜Μͳ͜ͱʹΘΕͯ·͢ 2JJUB5FBN )JQ$IBU (JU)VC
,BJ[FO[Pͷத • ेߦͷSVCZεΫϦϓτ • 049ͷTDSFFODBQUVSFίϚϯυ • "844%,GPS3VCZ – "NB[PO4 • X4UBUJD8FC)PTUJOH
$ screencapture –i /tmp/capture.png TDSFFODBQUVSFίϚϯυ
"844%,GPS3VCZ s3 = AWS::S3.new( :access_key_id
=> ENV['AWS_ACCESS_KEY'], :secret_access_key => ENV['AWS_SECRET_ACCESS_KEY'], :s3_endpoint => 's3-‐ap-‐northeast-‐1.amazonaws.com' ) bucket = s3.buckets['kaizenzo.kaizenplatform.in'] bucket.objects['images/12345.png'].write( :file => '/tmp/capture.png', :content_type => 'image/png' ) "1*ͱ͔4%,ͱ͍͏ͱͦ͠ ͏ʹฉ͑͜Δ͚Ͳɺ࣮ࡍ؆୯ɻ HFNJOTUBMMBXTTELͯ͠͏
ͬͯΔ͜ͱ • 4UBUJD8FC)PTUJOHΛ༗ޮʹͨ͠CVDLFU Λ4ʹ༻ҙ • 3VCZεΫϦϓτͰҎԼΛΔ – TDSFFODBQUVSFίϚϯυΛ࣮ߦ • TZTUFNTDSFFODBQUVSFrJUNQDBQUVSFQOH
• ՃͰTJQTίϚϯυͰϓϩϑΝΠϧΛআͨ͠Γ – औͬͨϑΝΠϧΛ"1*Ͱ4ʹΞοϓϩʔυ
εΫϦϓτͷ#VOEMFԽ • 3VCZεΫϦϓτΛBQQʹ͢Δ • ී௨ͷΞϓϦΈ͍ͨʹ࣮ߦͰ͖Δ • IUUQXXXHMBNFOWTFQU[FOOFUWJFX͜ͷลࢀߟ Kaizenzo.app/
Contents/ Info.plist MacOS/ Resources/ kaizenzo.rb appIcon.icns ܾΊΒΕͨσΟϨΫτϦ ϨΠΞτͰϑΝΠϧΛ ஔ͍ͯɺ*OGPQMJTU 9.- Λॻ͚ͩ͘
ͪͳΈʹࣗઐ༻ͷ͋Δ • ແବʹ$MPVE'SPOUڬΜͰΔ • CMPHʹը૾షΓ͍ͨͱ͖ɺ5XJUUFSʹྲྀ͍ͨ࣌͠ͱ͔ ʹͬͯΔ
.JEEMFNBO
ྫ͑ J04ΞϓϦͷࠂϖʔδɻ .JEEMFNBOͰͰ͖ͯΔ
.JEEMFNBOͬͯ • αΠτΞηϯϒϥ – ੩తαΠτ੍࡞ͨΊͷϑϨʔϜϫʔΫ – ੩తαΠτΛ8FCΞϓϦέʔγϣϯͷΑ͏ʹ࡞ΕΔ • $44ϓϦϓϩηοα
4BTT$PNQBTT • ςϯϓϨʔτΤϯδϯ &3#ɺTMJN • ΞηοτύΠϓϥΠϯ • -JWF3FMPBE
NJEEMFNBOJOJUͰα ΠτͷͻͳܗΛੜ TMJNͱ͔TBTTͱ͔ DP⒎FFTDSJQUͱ͔ .BSLEPXOͱ͔ͰαΠτΛ ࡞ΕΔ
NJEEMFNBOTFSWFSͰಈ࡞֬ ೝ༻ͷ)551αʔόʔ͕ىಈɻ -JWF3FMPBE࿈ܞ͋ΔΑ
NJEEMFNBOCVJMEͰΞηο τ͔ΒՌΛ·ͱΊͯϏϧ υ
NJEEMFNBOTZOD 4UBUJD8FC)PTUJOHͱΈ߹ΘͤΔͱ٢ ίϚϯυͻͱͭͰ "NB[PO4ʹ .JEEMFNBOͰ࡞ͬͨαΠ τΛసૹ
σϞ
activate :sync do |sync| sync.fog_provider = 'AWS'
sync.fog_directory = 'cloudgirl.bloghackers.net' sync.fog_region = 'ap-‐northeast-‐1' sync.aws_access_key_id = ENV['AWS_ACCESS_KEY_ID'] sync.aws_secret_access_key = ENV['AWS_SECRET_ACCESS_KEY'] sync.existing_remote_files = 'keep' sync.gzip_compression = false sync.after_build = false end Fog.credentials = { :path_style => true } # Work around NJEEMFNBOTZODͷઃఆ
NJEEMFNBOCMPH -‐-‐-‐ title: ࠓΫϥυঁࢠձͰ͢ -‐-‐-‐ -‐
Hello, JAWS -‐ ͜ΜʹͪɺՄѪ͍ݘͰ͢Ͷ -‐ Markdown Ͱॻ͘ΜͰ͢Α NJEEMFNBOTZODͱΈ߹Θͤͯ 4Ͱެ։͢ΔCMPH͕࡞Ε·͢ ςΩετΛॻ͍ͯ NJEEMFNBOCVJMEͰCMPH هࣄʹͳΔ
None
6OJYతͳখಓ۩Λ࡞Δ
σϞ
ͬͯΔ͜ͱ • FDMJTU – &$ΠϯελϯεใΛ"1*ͰҾ͍ͯ͘Δ – ϩʔΧϧʹ݁ՌΛΩϟογϡ͠ͱ͘ • QFSDPM
$ ec2list | percol | cut -‐f 4 | xargs
-‐o -‐n 1 ssh ύΠϓͰͭͳ͛Δ ࡞ͬͨͷ&$Πϯελ ϯεͷҰཡΛग़ྗ͢Δͱ ͜ FDMJTU ͚ͩ
"1*ʹΑΔ&$Ұཡͷऔಘ ec2 = AWS::EC2.new( :access_key_id
=> ENV['AWS_ACCESS_KEY_ID'], :secret_access_key => ENV['AWS_SECRET_ACCESS_KEY'], :region => ENV['AWS_REGION'] || "us-‐west-‐1" ) AWS.memoize do instances = ec2.instances.map do |i| puts [i.status, i.tags[:Name], i.tags[:Role]].join("\t") end end
5*14"84NFNPJ[F AWS.memoize do instances = ec2.instances.map do |i|
... end end "1*ίʔϧ͕ଟ͔͔͗ͯ࣌ؒ͢Δͱ͖ NFNPJ[FͰ͖ͳ͍͔ࢼͯ͠ΈΑ͏ "84NFNPJ[F͕"1*ͷ ԠΛྑ͍ײ͡ʹΩϟο γϡͯ͘͠Εͯɺߴʹ
·ͱΊ • "84ͷ"1*Λ͓͠Ζ͓͘͏ • ࢥͬͯΔΑΓͣͬͱ؆୯ • "84ΛʮΠϯϑϥʯͰͳ͘ʮϓϩάϥϜͷ ෦ʯͰ͋Δͱଊ͑ͯΈΔͱྑ͍͔
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠