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
wantedly発表会1
Search
tekonfo
November 24, 2018
120
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
wantedly発表会1
tekonfo
November 24, 2018
Featured
See All Featured
The SEO identity crisis: Don't let AI make you average
varn
0
530
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
330
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
290
The Mindset for Success: Future Career Progression
greggifford
PRO
0
440
Making the Leap to Tech Lead
cromwellryan
135
10k
Optimising Largest Contentful Paint
csswizardry
37
3.9k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.4k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
360
Speed Design
sergeychernyshev
33
2k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.5k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Building Adaptive Systems
keathley
44
3.2k
Transcript
AWS ECS Λͬͯ batchΛಈ͔ͦ͏ʂ גࣜձࣾNOVASTO ۙ౻େᠳ
·ͣࣗݾհ • େࡕେֶجૅֶ෦ࡾճੜ • גࣜձࣾNOVASTOʹjoin • ຊ͕͖
͋ΔݴΘΕͨ͜ͱ ʰ֎෦ͷAPI͔Βσʔλʔऔ͖ͬͯͯɻఆظతʹ࣮ߦ ͍͔ͨ͠ΒόονͰɺαʔόʔawsͰυοΧʔͰί ϯςφ্ཱͪ͛Α͏ɻ࠷ۙaws͕γʔΤϧΞΠͰΠʔ γʔΤεઃఆͰ͖ΔΑ͏ʹͳ͔ͬͨΒͦΕͬͯΈ ͯɻʱ
୯ޠͷҙຯ͕Θ͔Βͳ͍ • όον • υοΧʔ • ΠʔγʔΤε উखʹಈͭ͘ Ծڥʁ ҙຯෆ໌୯ޠ
ࠓͷΰʔϧ 1. ढจΛݴΘΕͨ࣌ͷࣗʢࢀՃऀʣ͕ཧղͰ͖Δ Α͏ʹઆ໌͢Δ 2. batch࣮ߦํ๏
ࠓͷΰʔϧ 1. ढจΛݴΘΕͨ࣌ͷࣗʢࢀՃऀʣ͕ཧղͰ͖Δ Α͏ʹઆ໌͢Δ 2. batch࣮ߦํ๏
ढจͷղઆ 1. Batch 2. Docker 3. Ecs
Batch େྔͷσʔλΛҰׅͰॲཧ͢Δ
Batch ޠݯɿbatch - 1ଋɺ1܈ɺ1ஂ ࣌ؒͰॲཧΛ͍ͨ͠ͷ ʢεϧʔϓοτʣ ͙͢ʹ࣮ߦ͍ͨ͠ͷ ʢԠੑʣ όονॲཧ ΦϯϥΠϯॲཧ
-Docker- ͍ܰԾίϯςφٕज़
-Docker- ϝϦοτ̍ - ܰྔ ʰDocker࣮ઓ׆༻ΨΠυʯp̓ΑΓ ίϯςφͷΈʹΑΓɺԾϚγϯήετOSଘࡏ͠ͳ͍ ىಈఀࢭ͕ඇৗʹૣ͍
-Docker- ϝϦοτ̎ - ΞϓϦͷ࠶ར༻͕༰қ ࡞ͨ͠ڥΛimageͱͯ͠ύοέʔδԽՄೳ ଞऀͷimageDockerHub͔Βར༻Ͱ͖Δ
-Docker- ϝϦοτ̏ - ։ൃڥͷߋ৽ʹڧ͍ (http://www.itmedia.co.jp/enterprise/articles/1701/23/news036.html)
Ecs (Elastic Container Service) Docker Λ AWS্Ͱ؆୯ʹ͏ͨΊͷαʔϏε
Ecs (Elastic Container Service) ΦʔέετϨʔγϣϯ ίϯςφΛͲ͏ӡ༻͢Δ͔ʁ
Ecs (Elastic Container Service) ίϯςφӡ༻શൠΛͤΔ (https://thinkit.co.jp/article/9701)
Ecs (Elastic Container Service) ΦʔέετϨʔγϣϯπʔϧ͕͋Εɺɺɺ ——શͯઃఆ௨Γʹߦͬͯ͘ΕΔ 1. ϓϩϏδϣχϯά 2. ߏεΫϦϓτ
3. ࢹ 4. …
಄ͷґཔΛ༁ ʰεΫϨΠϐϯάͯ͠σʔλऔ͖ͬͯͯɻఆظతʹ࣮ߦ͍͔ͨ͠Βόο νͰɺαʔόʔawsͰυοΧʔͰίϯςφ্ཱͪ͛Α͏ɻ࠷ۙaws ΠʔγʔΤεͰ࣮ߦͷ͕͍͍ͱࢥ͏ɻʱ ఆظతʹ·ͱΊͯσʔλΛॲཧɺ࣮ߦ ίϯςφΛ αʔόʔΛҙࣝͤͣʹཧ͢ΔαʔϏε γϯϓϧͳԾڥ ҰͭͷԾڥ
ࠓͷΰʔϧ 1. ढจΛݴΘΕͨ࣌ͷࣗʢࢀՃऀʣ͕ཧղͰ͖Δ Α͏ʹઆ໌͢Δ 2. batch࣮ߦํ๏
ίϯςφͷϥΠϑαΠΫϧ Docker Engine Docker Engine ίϯςφ Docker Engine ίϯςφ Docker
Engine ίϯςφىಈ ίϯςφফڈ batch࣮ߦ Batch
શମͷΠϝʔδ (https://stackoverflow.com/questions/23735149/what-is-the-difference-between-a-docker-image-and-a-container)
શମͷΠϝʔδ Docker-Compose.yml Batchfile(~~.rb) DockerFile imageͷอଘ Taskͷىಈ imageͷఏڙ
Ecsͷ࣮ߦํ๏
DockerίϯςφΛ࡞ Docker-file FROM ruby:2.5.1 RUN mkdir -p $APP_DIR WORKDIR $APP_DIR
COPY src/Gemfile $APP_DIR RUN gem install bundler & bundle install RUN git clone
[email protected]
:novasto/~~~ WORKDIR /usr/share/batch/ RUN git checkout $branch Dockerfileʹίϯςφ ʹඞཁͳใΛهࡌ
BatchfileΛ ίϯςφʹೖΕΔํ๏ Docker-file FROM ruby:2.5.1 RUN mkdir -p $APP_DIR WORKDIR
$APP_DIR COPY src/Gemfile $APP_DIR RUN gem install bundler & bundle install RUN git clone
[email protected]
:novasto/~~~ WORKDIR /usr/share/batch/ RUN git checkout $branch Git cloneͰϦϙδτϦ͔Β batchϓϩάϥϜΛίϯςφʹ
DockerHubϓογϡ VERSION=1.0 MINOR_VERSION=1 # ϩʔΧϧʹίϯςφΠϝʔδͷ࡞ docker build -t novasto/leaves.batch:$VERSION.$MINOR_VERSION #
VERSIONʹlatestλάՃ docker tag novasto/leaves.batch:$VERSION.$MINOR_VERSION novasto/ leaves.batch:latest # DockerHubʹpush VERSIONࢦఆ docker push novasto/leaves.batch:$VERSION.$MINOR_VERSION
Docker-compose.ymlͷ࡞ Docker-compose.yml version: '3' services: ruby: image: novasto/batch container_name: scraping_batch
tty: true command: ruby /usr/share/batch/app/batch/run.rb env_file: - ./ruby/app.env DockerHub͔Βϓϧ ECSͰ࣮ߦͤ͞ΔίϚϯυͷઃఆ ʢbatch։࢝ʣ
λεΫͷొ # ecs-cli compose --file docker-compose.yml --ecs-params ecs-params.yml --project-name ruby
create --launch-type EC2 # ecs-cli compose --file docker-compose.yml --ecs-params ecs-params.yml --project-name ruby create --launch-type version: 1 task_definition: ecs_network_mode: awsvpc task_execution_role: secretsTaskExecutionRole3 task_size: cpu_limit: 256 mem_limit: 512 services: fluentd: essential: true - sg-0d7a8b34dd3cfee84 ecs-params
λεΫͷ࣮ߦ ecs-cli compose --file ./$VERSION/docker-compose.yml --task-role-arn secretsTaskExecutionRole3 --ecs-params ./$VERSION/ecs-params.yml --project-name
ruby start --launch-type EC2 -c leaves-batch ecs-params
OK!!! ecs-params
Cloud Watch ecs-params ΞϓϦΛϦΞϧλΠϜͰϞχλϦϯά
Cloud WatchΛ༻͍ͯఆظ࣮ߦ ecs-params ݄ ࣌ؒ 1 11 16 24
2 12 1 24
٧·ͬͨͱ͜Ζ̍ ecs-params ECS ಛ༗ͷ୯ޠ͕ଟ͍ • Ϋϥελʔ • λεΫ • λεΫఆٛ
٧·ͬͨͱ͜Ζ̎ ecs-params ECSAWSͷ͕ࣝඞཁ • Subnet • VPC • SecurityGroup •
I AM Role
ײ ecs-params • ·ͩ·ͩػೳͷษڧ͕ඞཁ • ษڧͷίεύྑͦ͞͏ʢଞͰ͏ࣝʣ • ͋·Γίʔυ͕Webʹస͕͍ͬͯͳ͍ • ଞͷιϦϡʔγϣϯͱൺͯͲ͏༏Ε͍ͯΔͷ͔ෆ໌
ऴΘΓ