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の「隙間」を埋める隙間家具 OSS 開発 / AWS DevDay Tokyo 2019
Search
FUJIWARA Shunichiro
October 03, 2019
Technology
18k
11
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
AWSの「隙間」を埋める隙間家具 OSS 開発 / AWS DevDay Tokyo 2019
FUJIWARA Shunichiro
October 03, 2019
More Decks by FUJIWARA Shunichiro
See All by FUJIWARA Shunichiro
作るべきものと向き合う - ecspresso 8年間の開発史から学ぶ技術選定 / 技術選定con findy 2026
fujiwara3
9
4.7k
さくらのクラウドでのシークレット管理を考える/tamachi.sre#2
fujiwara3
2
340
Amazon ECS デプロイツール ecspresso の開発を支える「正しい抽象化」の探求 / YAPC::Fukuoka 2025
fujiwara3
13
12k
パフォーマンスチューニングのために普段からできること/Performance Tuning: Daily Practices
fujiwara3
9
6.7k
alecthomas/kong はいいぞ
fujiwara3
7
2.5k
ecspressoの設計思想に至る道 / sekkeinight2025
fujiwara3
12
3.7k
さくらのIaaS基盤のモニタリングとOpenTelemetry/OSC Hokkaido 2025
fujiwara3
3
4.3k
監視のこれまでとこれから/sakura monitoring seminar 2025
fujiwara3
12
5.8k
k6による負荷試験 入門から日常的な実践まで/Re:TechTalk #01
fujiwara3
2
610
Other Decks in Technology
See All in Technology
脆弱性対応、どこで線を引くか
rymiyamoto
1
400
LLMにもCAP定理があるという話
harukasakihara
0
390
いまさら聞けない「仕様駆動開発入門」 〜AI活用時代の開発プロセスを考える〜
findy_eventslides
2
140
ACE-Step-1.5で見る 音楽生成AIのしくみと“破綻だけ直す”Retake機能の開発【zennfes spring 2026 登壇資料】
personabb
1
510
Bucharest Tech Week 2026 - Reinventing testing practices in the AI era
edeandrea
PRO
1
160
「エンジニア進化論」2028年の開発完全自動化、エンジニアはどう進化するか
cyberagentdevelopers
PRO
6
5.3k
エンジニアリング戦略の作り方 / Crafting Engineering Strategy
iwashi86
21
7k
SONiCのLinuxベースを活かしたZabbix監視
sonic
0
180
2026TECHFRESH畢業分享會 - Lightning Talk - E起 See See : 電商推薦讀心術? 數據說了算
line_developers_tw
PRO
0
1.1k
AI駆動開発を通して感じた、 AI時代のデザイナーの役割変化
whisaiyo
3
2.2k
現地で盛り上がった WWDC26 Keynote
zozotech
PRO
1
250
攻撃者視点で考えるDetection Engineering
cryptopeg
3
1.9k
Featured
See All Featured
New Earth Scene 8
popppiees
3
2.3k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
1
200
Automating Front-end Workflow
addyosmani
1370
210k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
600
The Pragmatic Product Professional
lauravandoore
37
7.3k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.8k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
62
44k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
200
Unsuck your backbone
ammeep
672
58k
Utilizing Notion as your number one productivity tool
mfonobong
4
320
Measuring & Analyzing Core Web Vitals
bluesmoon
9
870
Transcript
AWSͷʮ伱ؒʯΛຒΊΔ 伱ؒՈ۩ OSS ։ൃ ౻ݪढ़Ұ @fujiwara
@fujiwara SREνʔϜ github.com/fujiwara sfujiwara.hatenablog.com
Game & Community
Agenda AWSͷʮ伱ؒʯͱ ʮ伱ؒՈ۩ OSSʯͷ࣮ྫͱઃܭࢥ Rin / s32cs / ssmwrap ͳͥ
OSS ͳͷ͔
AWSͷʮ伱ؒʯͱ
AWSͷʮ伱ؒʯͱ ϚωʔδυαʔϏε࠷ॳίΞػೳͰϦϦʔε͞Ε (ཁΛऔΓೖΕͳ͕Β) ঃʑʹػೳ͕૿͍͑ͯ͘
ྫ: RDS for MySQL ͷྺ࢙ 2009-10 ϩʔϯν 2010-05 Multi-AZػೳ 2015-12
ҙλΠϜκʔϯઃఆ 2018-01 CloudWatch Logsʹϩάग़ྗػೳ αʔϏεͷࠜװʹؔΘΔίΞػೳ (ྫ:Multi-AZ) ͘͝ॳظʹ࣮͞ΕΔ͕… ͰԿͱ͔ͳΔػೳ (ྫ:λΠϜκʔϯ) ଞαʔϏεͱͷ࿈ܞศརػೳ (ྫ:Logsग़ྗ) ޙճ͠ʹ͞Ε͕ͪ ← 伱ؒ
ͰԿͱ͔ͳΔػೳޙճ͠ʹͳΓ͕ͪ ྫ͑λΠϜκʔϯΛ JST ʹઃఆ͍ͨ͠߹ ύϥϝʔλάϧʔϓͷ init_connect ͰҎԼͷ SQL Λࢦఆ1 SET
SESSION time_zone = CASE WHEN POSITION('rds' IN CURRENT_USER()) = 1 THEN 'UTC' ELSE 'Asia/Tokyo' END; rds ͔Β࢝·ΔϢʔβʔ(RDS෦Ͱར༻͢Δͷ)Ͱ UTC ͦΕҎ֎ͷϢʔβʔʹ Asia/Tokyo (JST) ʹઃఆ͢Δ Bad Know-how... 1 https://qiita.com/j3tm0t0/items/089ef96ba131df079ca4
ଞͷαʔϏεͱͷ࿈ܞศརػೳ… RDS ͷϩάΛ֎෦ʹྲྀ͔ͨͬͨ͠ github.com/kenjiskywalker/fluent-plugin-rds-slowlog github.com/shinsaka/fluent-plugin-rds-log github.com/acidlemon/rds-throwlog ΈΜͳؤு͍ͬͯͨ CloudWatch Logs ࿈ܞϦϦʔεͰઃఆϙνͰྃ͢ΔΑ͏ʹ
伱͕ؒଟ͍ϚωʔδυαʔϏεΛ͏͔Ͳ͏͔ ϚωʔδυαʔϏεউखʹڧ͘ͳΔ ࣗલӡ༻উखʹڧ͘ͳΒͳ͍ ύονద༻ɺόʔδϣϯΞοϓͳͲͷਓతίετΛेʹ͑ͳ͍ͳΒ ଟগෆศͰ(க໋తͰͳ͍ͳΒ)ϚωʔδυαʔϏεΛબ͠ ޙͷػೳ֦ுΛظͭͭ͠ӡ༻ͷखؒΛݮΒͨ͠΄͏͕Α͍
伱ؒՈ۩Λࣗ࡞͢Δ খ͘͞ɺͦͷϢʔεέʔεͰదͳ൚༻Λ࣋ͬͨͷΛ࡞Δ ຊՈ͕伱ؒΛຒΊͨΒࣺͯΒΕΔཻͰ࡞Δ
ʮ伱ؒՈ۩ OSSʯͷ࣮ྫͱઃܭࢥ
伱ؒͷ࣮ྫ - S3 ͱ Redshift ͷؒ Redshift ʹσʔλΛऔΓ͜Ήʹ S3 ͔Βͷίϐʔ͕ඞਢ
Redshift ʹଓ͠ɺऔΓࠐΉΦϒδΣΫτΛࢦఆͯ͠ COPY ΫΤϦΛൃߦ 2012-11 ʹ Redshift ͕ϩʔϯνͯ͠3 S3͔ΒܧଓతʹऔΓ͜ΉϚωʔδυͳํ๏ଘࡏ͠ͳ͔ͬͨ
伱ؒՈ۩ OSS ͷ࣮ྫ - Rin github.com/fujiwara/Rin S3 Πϕϯτ௨Ͱ SQS ʹૹ৴
SQS ͷϝοηʔδΛݩʹ Redshiftʹ COPY Λൃߦ ͯ͠औΓࠐΈΛߦ͏ Go πʔϧ 2015.05 ʹ։ൃ
ݩʑผͷํ๏Λ༻͍ͯͨ͠ fluent-plugin-redshift Fluentd ͷ output plugin ϝοηʔδͷoutputॲཧͱͯ͠ S3 Ξοϓϩʔυ Redshift
ͷCOPYൃߦ Λಉظతʹ࣮ߦ Fluentd ʹϩάΛૹΔ͚ͩͰ Redshift ·ͰऔΓ͜ ·ΕΔͷͰศརͱࢥͬͯಋೖ
ӡ༻͍ͯͯ͠ͷ S3ͷΞοϓϩʔυͱRedshiftͷऔΓࠐΈ͕ෆՄ Redshift ఆظతʹϝϯςφϯεͰఀࢭ ΫϥελϦαΠζͰఀࢭ ఀࢭ࣌ COPY ͕ࣦഊ͢Δ S3 ͷΞοϓϩʔυͱ
COPY ͕ҰମͷͨΊ ϦτϥΠΞοϓϩʔυ͔ΒΓͳ͓͠ → S3 ʹΰϛ͕ཷ·Δ
Rin ͷઃܭํ S3 ͷΞοϓϩʔυଞʹͤΔ (fluentd) S3, SQS ͷՄ༻ੑେมߴ͍ Redshift ͷμϯλΠϜൺֱతେ͖͍
ϛεϚον෦ΛҰʹॲཧ͠ͳ͍͜ͱͰ ϦτϥΠΛ༰қʹ Redshift ͷ COPY ൃߦʹಛԽ͢Δπʔϧ
Rin ͷઃఆϑΝΠϧ queue_name: my_queue_name # SQS queue name targets: -
s3: region: ap-northeast-1 bucket: my.test.bucket key_prefix: test/foo/ redshift: host: redshift.example.com port: 5439 dbname: test user: test password: xxxxxxxx schema: public table: foo sql_option: "JSON 'auto' GZIP"
ॊೈͳऔΓࠐΈઃఆ targets: - s3: bucket: my.test.bucket key_regexp: test/schema-([a-z0-9]+)/table-([a-z0-9]+)/ redshift: schema:
$1 # ^ͷਖ਼نදݱͰcaptureͨ͠Λల։ table: $2 େͷΞϓϦέʔγϣϯͰऔΓࠐΈςʔϒϧෳʹͳΔ ॊೈʹऔΓ͜ΊΔΑ͏ʹಈతઃఆΛՄೳʹ
։ൃͯ͠5ϲ݄ޙ 伱͕ؒຒ·ͬͨ 2015.10 Kinesis Firehose ൃද
Before / After Fluentd ϩάΛૹ৴ 㱺 Redshift ʹॱ࣍औΓ͜·ΕΔ ߏͦͷ··Ϛωʔδυʹ !
౦ژϦʔδϣϯʹདྷͨͷ 2017.07 (2ޙ)
Rin ͷण໋௵͑ͨͷ͔? ࣮·ͩੜ͖͍ͯ·͢ Fluentd͔ΒͷऔΓࠐΈFirehoseܦ༝ͰΑ͘ͳ͕ͬͨ ผͷϢʔεέʔεͰ͑Δ ELB / ALB ͷϩά͕ S3
ʹஔ͞ΕΔͷΛஞ࣍औΓࠐΈ͢Δͷʹ׆༂த ϢʔεέʔεΛߜͬͨదͳ൚༻ੑ͕ޭ͍ͯ͠Δ
Rin ͷڭ܇ Ͳ͏ߟ͑ͯϚωʔδυʹͳͬͯ΄͍͠ͷͦͷ͏ͪͳΔ (धཁ͕͋Ε…) ෳͷαʔϏεؒ࿈ܞΛҰʹॲཧ͢ΔͱϦτϥΠ͕ෳࡶʹͳΔ ୯ػೳʹಛԽͭͭ͠ɺͦͷυϝΠϯͰͷ൚༻ੑΛ࣋ͨͤΔͱ͍ճͤΔ Ϛωʔδυʹͳͬͨͱ͖ʹ͖Ε͍ʹऔΓ֎ͤΔઃܭ͕େࣄ
伱ؒՈ۩ OSS ͷྫ - s32cs Amazon CloudSearch 2012-04 ϦϦʔε 2019-10
ݱࡏ ϚωʔδυͰσʔλΛܧଓతʹऔΓ͜Ήํ๏ͳ͍ (console/ aws-cli / API / HTTP POST ͷΈ)
github.com/fujiwara/s32cs (S3 to CloudSearch) S3 ͷΠϕϯττϦΨͰىಈ͢Δ Lambda ؔͱ࣮ͯ͠ S3 ʹஔ͞Εͨ
ndjson (Newline Delimited JSON) ΛՃ HTTP POST Ͱ CloudSearch ʹೖ͢Δ
CloudSearch ͷೖॲཧ CloudSearch 5MB ҎԼͷ JSON ྻΛೖ ࡉ͔͍୯ҐͰೖ͢ΔͱύϑΥʔϚϯε͕ྼԽ͢Δ s32cs
= ྻܗࣜͷՃɺׂͱ HTTP POST Λͬͯ͘ΕΔ͚ͩͷπʔϧ {"id": "123", "type": "add", "fields": {"title": "hoge", "message": "Θ͍Θ͍"]}} {"id": "345", "type": "delete"} ↓ [ {"id": "123", "type": "add", "fields": {"title": "hoge", "message": "Θ͍Θ͍"]}}, {"id": "345", "type": "delete"} ]
Firehose → S3 ͷΠϕϯττϦΨ͔Βͳʹ͔͢Δύλʔϯ n͝ͱʹσʔλॲཧ͢ΔόονΛΠϕϯτυϦϒϯʹม͍ͯ͠Δ s32cs Ҏલ cronͰաڈ5ͷσʔλΛDB͔ΒऔಘɺՃɺHTTP POST Ͱೖ͢Δόον
σʔλऔಘɺՃɺೖ͕ҰମͰෆՄ s32cs Ҏޙ ੜΞϓϦέʔγϣϯͰͷϩάૹ৴ 5͝ͱʹσʔλΛ·ͱΊΔͷ Firehose ·ͱ·ͬͨσʔλΛՃͯ͠ೖ͢Δ͚͕ͩࣄ
ຊʹΓ͍ͨ͜ͱ = ॱ࣍ൃੜ͢ΔσʔλΛదͳ୯ҐͰॲཧ͍ͨ͠ ͜ΕΛn͝ͱͷcronͰ࣮ͯ͠͠·͏ͱ… 1ճॲཧ͕ൈ͚Δͱ࣍ճ࣮ߦͰ2ճΛॲཧ͢Δඞཁ͕ → ࠷ޙͷॲཧΛه͓ͯ͘͠ඞཁ͕͋Δ → γϦΞϧॲཧʹͳΔ →
Մ༻ੑύϑΥʔϚϯεͷͨΊͷࢄॲཧ͕ͮ͠Β͍ → ͠nΛॲཧ͠Α͏ͱ͢Δͱ…? εέʔϧ͠ͳ͍ + ࣦഊ͢Δͱۓு͕Δ
Firehose ͰͷετϦʔϜ → S3ΠϕϯττϦΨॲཧ n͝ͱͷcronΛସ ετϦʔϜΛn͝ͱͷchunkͰS3ʹు͖ग़͢ॲཧ = Firehose S3 ʹ
ࢦఆ࣌ؒ (60ʙ900ඵ) ͘͠ࢦఆαΠζ (1ʙ128MB)ͷ ઌʹୡͨ݅͠ͰΦϒδΣΫτ͕ੜ͞ΕΔ ࢄॲཧ͕ՄೳʹͳΔ όονॲཧଆʹঢ়ଶΛ࣋ͭඞཁ͕ͳ͍ ҆৺ͯ͠ΦϯϝϞϦॲཧ͕Ͱ͖Δʂ
ϚωʔδυαʔϏεʹ͍Ζ͍Ζ͋Δ ΫϥυωΠςΟϒ = ΠϯελϯεΛҙࣝ͠ͳͯ͘Α͍(Ͱ͖ͳ͍) SQS, S3, CloudWatch, Labmda, DynamoDB... ΫϥυωΠςΟϒʹ͍ۙ
= Πϯελϯεᐓؾʹݟ͑Δ͕εέʔϧ͕ࣗಈ ELB, CloudSearch... ΫϥυωΠςΟϒʹͳΓ͖Εͳ͍=Πϯελϯε͕ݟ͑εέʔϧ͕ࣗಈͰͳ͍ RDS, ElastiCache... ΫϥυωΠςΟϒͳͷΛ׆༻͍ͯ͘͠ͱεέʔϧ͍͢͠ ΫϥυωΠςΟϒͳࢥߟ๏େࣄ
s32cs ͷڭ܇ n͝ͱͷcronॲཧɺຊʹΓ͍ͨ͜ͱ࣌ؒґଘͰͳ͍͔ʁ దͳ୯ҐͰ੍͞ΕͨσʔλͷΠϕϯτυϦϒϯॲཧָ࣮͕ ؾ݉Ͷͳ͘ΦϯϝϞϦॲཧ͕Ͱ͖Δ ঢ়ଶϚωʔδυαʔϏεʹɺঢ়ଶΛ࣋ͨͳ͍ॲཧ͚ͩॻ͘ͱεέʔϧ͕༰қ
伱ؒՈ۩ OSS ͷྫ - ssmwrap github.com/handlename/ssmwrap SSM Parameter Store ͷΛڥมʹઃఆͯ͠ίϚϯυΛ
exec ͢Δ wrapper ੈͷதʹྨࣅ͍ͬͺ͍͋Δ͕͋͑ͯ… github.com/remind101/ssm-env github.com/okzk/env-injector github.com/jamietsao/aws-ssm-env
ssmwrap $ ssmwrap -path /prod/ -- mycommand ྫ͑ SSM ύϥϝʔλετΞʹ
/prod/DB_PASSWORD, /prod/API_TOKEN ͕ೖ͍ͬͯΔ߹ ڥม DB_PASSWORD, API_TOKEN ʹΛઃఆͯ͠ mycommand Λ࣮ߦ 2018.07 ECS task ʹ SSM ͷΛͨ͢Ίʹ։ൃ
ssmwrap ͷ͍͍ͱ͜Ζ exec ͢Δ(ࢠϓϩηεͱͯ͠ىಈ͠ͳ͍) wrapper ͳͷͰ ίϯςφͷ entrypoint ʹࢦఆͰ͖Δ #
ssmwrap -path /prod/ -- command ͱಉͷىಈॲཧ ENTRYPOINT ["/usr/bin/ssmwrap"] ENV SSMWRAP_PATHS=/prod/ CMD ["--", "mycommand"] ϦτϥΠ͕ࢦఆͰ͖Δ (ྫ -retries=3 or SSMWRAP_RETRIES=3) ύϥϝʔλετΞ͕ΤϥʔΛฦͨ͠߹ɺϦτϥΠͰ͖ͳ͍ͱ
͔͋Β͞·ͳ伱͙ؒ͢ຒ·Δ 2018-11 ECS task ʹ SSM ύϥϝʔλετΞͷΛڥมͱͯ͠ઃఆͰ͖Δ secrets ػೳϦϦʔε !
ssmwrap ͷར༻Ձͳ͘ͳͬͨͷ͔? ECS Ҏ֎Ͱ͑Δ EC2 Ͱಈ࡞͢Δ shell script ͷ shebang
ʹࢦఆͨ͠Γ #!/usr/bin/ssmwrap -path /prod/ -- /bin/sh echo $DB_PASS ... AWS֎ (ྫ͑ CircleCI) Ͱͷ࣮ߦʹಉ༷ʹࠐΊΔ γεςϜ͕ͯ͢ ECS Ͱͳ͍ঢ়ଶͰ·ͩ·ͩར༻Ձ͋Δ
ࢦఆͨ͠ΛϑΝΠϧͱͯ͠ॻ͖ग़͔ͯ͠Β exec ssmwrap -paths="/prod/" \ -file "Name=/prod/ID_RSA_KEY,Path=/root/.ssh/id_rsa,Mode=400" \ -file "Name=/prod/ID_RSA_PUB,Path=/root/.ssh/id_rsa.pub,Mode=644"
\ -- mycommand 伴ͳͲɺڥมͰͳ͘ϑΝΠϧஔ͕લఏͷΞϓϦέʔγϣϯଟ͍
GoͷϥΠϒϥϦͱͯ͑͠Δ ͜Ε͕໌ه͞Ε͍ͯΔྨࣅπʔϧগͳ͍(ͣ) godoc.org/github.com/handlename/ssmwrap#Export ϥΠϒϥϦͱͯ͑͠Δ → Lambda Ͱ͑Δ import "github.com/handlename/ssmwrap" err
:= ssmwrap.Export(ssmwrap.ExportOptions{ Paths: []string{"/prod/"}, Retries: 3, }) // ී௨ʹڥมΛࢀর͢Δ͚ͩ dbpass := os.Getenv("DB_PASS")
Lambda ͰύϥϝʔλετΞͷΛڥมʹ͍ͨ͠(Ͱ͢ΑͶ) ϚωʔδυͰઃఆ͢Δํ๏(·ͩ)ͳ͍͕Ͱ͖ͯવΔ͖ ϚωʔδυͰͰ͖ΔΑ͏ʹͳͬͨ߹ͷίʔυमਖ਼͕ۃগ ssmwrap.Export() Λআڈ͢Δ͚ͩ Lambda ͰύϥϝʔλετΞΛࢀর͢ΔίʔυΛॻ͘ΑΓݟ௨͕͠Α͍
ssmwrap ͷࢥ Ϛωʔδυʹͳͬͨͱ͖ʹऔΓ֎͍͢͠Α͏ͳઃܭ ڥม/ϑΝΠϧʹSSMύϥϝʔλετΞͷΛઃఆ͢Δ͜ͱʹूத͢Δ ECSɿsecrets ͰαϙʔτࡁΈ Lambda: ͦͷ͏ͪͰ͖Δ(͖ͬͱ) ϑΝΠϧʹॻ͖ग़͔ͯͯ͠͠Βίϯςφىಈ →
k8sͰͰ͖Δɺͭ·ΓECS… কདྷϚωʔδυʹͳΓͦ͏ͳ෦ΛΞϓϦέʔγϣϯͷͨॻ͖Ͱղܾ͠ͳ͍ খ͍͞πʔϧ/ϥΠϒϥϦʹΓग़͓ͯ͘͠ औΓ֎͕͠༰қʹͳΔ
ͦͷ͏ͪऔΓ֎͢ͷΛͳͥΘ͟Θ͟࡞Δͷ͔ ΞϓϦέʔγϣϯͰॻ͘ͱີ݁߹͢Δ औΓ֎͍ͨ࣌͠ʹີ݁߹͍ͯ͠Δͱվमͮ͠Β͍ ϥΠϒϥϦͰͳ͍ίʔυԟʑʹͯ͠ผϓϩδΣΫτʹίϐϖ͞ΕΔ ͍͟मਖ਼ΛೖΕΑ͏ͱͯ͠ίϐϖͳͷͰ… վमͮ͠Β͍ΞϓϦέʔγϣϯ → ͦͷ͏ͪ୭৮Γͨ͘ͳ͘ͳΔ վम͍͢͠ΞϓϦέʔγϣϯ →
ίετͰۙԽΛਐΊ͍͢
OSS ͱͯ͠࡞Δ
OSS ͱͯ͠࡞Δ ࣗΒ͔͠Θͳͯ͘ OSS ʹͯ͠͠·͏ ઃܭࢦͱͯ͠ ͜ΕΛ OSS ʹ͢ΔͳΒͲ͏͢Δ͔ Λߟ͑Δͷ༗༻
(ࣄͰ OSS ʹͰ͖ͳͯ͘)
OSS ͱͯ͠࡞Δཧ༝(1) υΩϡϝϯτΛॻ͘ؾʹͳΔ README ͙Β͍ؤுͬͯॻ͘ϞνϕʔγϣϯʹͳΔ ۭͩͱஏ͔͍ͣ͠ͷͰ……
OSS ͱͯ͠࡞Δཧ༝(2) աͳࣾࣄͷࠞೖΛ͙ ʮࣾ/ͦͷϓϩδΣΫτҎ֎ʹҙຯ͕͋Δػೳͳͷ͔?ʯ քΛݟۃΊΔ͜ͱͰকདྷ֎͘͢͠ͳΔ ઃܭ͕͖Ε͍ʹͳΔ
OSS ͱͯ͠࡞Δཧ༝(3) ຐվ൛͕૿৩͢ΔͷΛ͙ ʮGitHubͰόΠφϦఏڙͯ͠ΔͷͰͦΕΛ͍ͬͯͩ͘͞ʯ ʮRubyGems / CPAN / npm /
etc. ͔ΒΠϯετʔϧ͍ͯͩ͘͠͞ʯ ಠཱͨ͠ύοέʔδʹͳͬͯͳ͍ͱίϐϖ͞ΕΔ ίϐϖޙʹվ͞ΕΔͱ৽ػೳόάϑΟοΫεʹैͰ͖ͳ͍
OSS ͱͯ͠࡞Δཧ༝(4) ಉ͡Α͏ͳ伱ؒՈ۩ΛΈΜͳ͕ຖճखॻ͖͢Δͷແବʂʂ ͱ͍͑ϢʔεέʔεʹΑͬͯ࠶࣮͢Δ͜ͱ (ssmwrap)
·ͱΊ AWSͷϚωʔδυαʔϏεʹʮ伱ؒʯ͕͋Δ 伱ؒՈ۩Λ࡞ͬͯΑΓΑ͍ӡ༻Λ ඞཁʹԠͯ͡औΓ֎ͤΔΑ͏ʹઃܭ͢Δ OSS ͱͯ͠࡞Δ͜ͱΛߟ͑Δ͜ͱͰɺΑΓΑ͍ઃܭͱ࣮ʹ ཁͪΌΜͱ͑·͠ΐ͏ʂ
Thank You!