$30 off During Our Annual Pro Sale. View Details »

Amazon ECS デプロイツール ecspresso 開発5年の歩み

Amazon ECS デプロイツール ecspresso 開発5年の歩み

AWS Dev Day Tokyo 2023

FUJIWARA Shunichiro

June 22, 2023
Tweet

More Decks by FUJIWARA Shunichiro

Other Decks in Technology

Transcript

  1. Amazon ECSσϓϩΠπʔϧ
    ecspresso ։ൃ5೥ͷาΈ
    ໘ന๏ਓΧϠοΫ ౻ݪढ़Ұ࿠ (@fujiwara)
    AWS Dev Day 2023 Tokyo
    2023.06.22

    View Slide

  2. @fujiwara SREνʔϜ
    ISUCON 1,2,5,11
    !
    ༏উ4ճ
    ISUCON 3,8,12,13 ӡӦ(ग़୊)4ճ
    github.com/kayac/ecspresso
    Amazon ECS σϓϩΠπʔϧ
    github.com/fujiwara/lambroll
    AWS Lambda σϓϩΠπʔϧ

    View Slide

  3. ecspresso ͱ͸
    github.com/kayac/ecspresso
    ൃԻ͸ʮΤεϓϨοιʯ

    Amazon Elastic Container Service (Amazon ECS)
    ͷͨΊͷσϓϩΠπʔϧ
    ʮλεΫఆٛʯͱʮαʔϏεʯΛϑΝΠϧͰ؅ཧ͢Δ
    Go࣮૷ γϯάϧόΠφϦͰಈ࡞͢ΔCLI
    λεΫఆٛͱαʔϏεҎ֎͸(جຊతʹ)؅ཧ͠ͳ͍

    View Slide

  4. λεΫఆٛɺαʔϏεͷઃఆ͸AWS Command Line Interface
    (AWS CLI)ޓ׵ͷJSONϑΝΠϧ
    ϑΝΠϧ͸ςϯϓϨʔτͱͯ͠ѻΘΕΔ
    ྫ: σϓϩΠ͝ͱʹՄมͷΠϝʔδλάΛ؀ڥม਺Ͱࢦఆ
    // ඞਢͷ؀ڥม਺
    "image": "debian:{{ must_env `IMAGE_TAG` }}"
    // ઃఆ͞Εͯͳ͍৔߹ͷσϑΥϧτ஋Λࢦఆ
    "image": "nginx:{{ env `IMAGE_TAG` `latest` }}"

    View Slide

  5. AWS CloudFormation, AWS Cloud Development Kit (CDK),
    Terraformͱ࿈ܞՄೳ
    ґଘ͢ΔϦιʔεͷIDΛϋʔυίʔυͤͣʹղܾ
    # ઃఆϑΝΠϧ ecspresso.yml
    plugins:
    - name: tfstate
    config:
    url: s3://my-bucket/terraform.tfstate
    // αʔϏεఆٛϑΝΠϧ
    "securityGroups": [
    "{{ tfstate `aws_security_group.default.id` }}"
    ],

    View Slide

  6. ӡ༻ʹศརͳαϒίϚϯυ͕ͨ͘͞Μ
    run: ୯ମλεΫΛ࣮ߦ (RunTask)
    status: αʔϏεͷঢ়ଶΛදࣔ
    scale: αʔϏεͷλεΫ਺Λมߋ
    refresh: αʔϏεͷλεΫΛશͯೖΕ׵͑
    diff: σϓϩΠલʹมߋࠩ෼Λදࣔ
    verify: σϓϩΠલʹ࢖༻͢Δ֎෦ϦιʔεΛ֬ೝ
    exec: Amazon ECS ExecͰλεΫʹ઀ଓ
    (·ͩ·ͩ͋Γ·͢)

    View Slide

  7. GitHub

    500+ 1
    1 https://star-history.com/#kayac/ecspresso&Date

    View Slide

  8. ecspressoΛ͝ར༻ͷօ༷ 2
    ϒοΫ΢ΥʔΧʔ, ϕΨίʔϙϨʔγϣϯ, LayerX
    ϑΝϯϑΝʔϨ, ίωώτ, εϚʔτϥ΢ϯυ, ͸ͯͳ
    CARTA HOLDINGS, ΧϯϜ, Classi, ϑΥʔΠοτ
    PR TIMES, ArkEdge Space, τϥετόϯΫ, λΠϛʔ
    Retty, MICIN, ηʔϑΟʔ, AmebaϚϯΨ, BASE
    ϚωʔϑΥϫʔυ, STORES, Kakedas, mediba
    Nature, Connected Base, (ΧϠοΫ)
    2 ॱෆಉɺܝࡌڐՄΛಘͨ΋ͷͷΈ

    View Slide

  9. AWS Summit Tokyo 2023
    ʮχϯςϯυʔΞΧ΢ϯτ
    ϦϊϕʔγϣϯϓϩδΣΫτʯͷൃද3
    www.itmedia.co.jp/news/articles/
    2305/11/news048.html ΑΓҾ༻
    ҰํͰFargateͷઃఆ͸Amazon CDKΛ࢖ͬͯ
    ͍ͳ͍ͱ͍͏ɻίʔυͷઃஔΛࣗಈԽ͢Δπʔϧ
    ͱͷ૬ੑͷ໰୊͕ྑ͘ͳ͍͜ͱ͕ཧ༝ͱ͍͍ɺ
    ୅ΘΓʹΧϠοΫͷΦʔϓϯιʔειϑτ΢ΣΞ
    ʮecspressoʯʢΤεϓϨοιʣΛ׆༻ͨ͠
    ͱ͍ͯ͠Δɻ
    3 https://pages.awscloud.com/rs/112-TZM-766/images/CUS-20AWS-
    Summit-2023Nintendo-Systems_FINAL.pdf

    View Slide

  10. ecspresso MeetUp΍Γ·͢!
    2023.8.8(Ր) 19:00ʙ
    JAWS-UG ίϯςφࢧ෦ओ࠵
    ࢀՃऀ(ݱ஍ɾΦϯϥΠϯ)ืूத
    https://jawsug-container.connpass.com/
    event/285124/

    View Slide

  11. ։ൃͷಈػ
    2017೥ळ Amazon ECSΛ࢖͏ͨΊσϓϩΠํ๏Λݕ౼ͯ͠
    ཧղͨ͜͠ͱʮʰσϓϩΠʱͱ͸ͭ·Γ…ʯ
    1. ৽͍͠λεΫఆٛΛొ࿥͢Δ(RegisterTaskDefinition)
    2. αʔϏε͕࢖͏λεΫఆٛΛมߋ͢Δ(UpdateService)
    ͜Ε͚ͩɻϩʔϧόοΫͷ࢓૊Έ͸(౰࣌͸)ଘࡏ͠ͳ͍4
    4 Deployment circuit breakerͷϦϦʔε͸2021೥

    View Slide

  12. ଞͷπʔϧ΋ௐ΂ͯΈΔ
    • ecs-deploy: λεΫఆٛࣗମͷίʔυ؅ཧ͸Ͱ͖ͳ͍
    github.com/silinternational/ecs-deploy
    • ecs-cli: ϩʔϧόοΫ͕Ͱ͖ͳ͍
    github.com/aws/amazon-ecs-cli
    ϩʔϧόοΫ = 1ͭલͷλεΫఆٛΛαʔϏεʹઃఆ͢Δ
    !
    ʮAPI/CLIΛ਺ճݺͿ͚ͩͳΒࣗ࡞Ͱ͖ΔͷͰ͸…?ʯ
    ʮҰݟ؆୯ͦ͏ͳ΋ͷͰ΋ɺࣗલ࣮૷͸প΁ͷୈҰาʯ

    View Slide

  13. ઃܭࢥ૝(1)
    αʔϏεɺλεΫఆٛͷ؅ཧʹಛԽ
    ʲཧ༝ʳଞͷϦιʔεͱϥΠϑαΠΫϧ
    ͕ҧ͏͜ͱ͕ଟ͍ͨΊ
    • Amazon VPC, ALB, Amazon RDS...
    ௕ظؒ࢖͏ɺมߋ͸සൟͰ͸ͳ͍
    • λεΫఆٛɺαʔϏε
    σϓϩΠ͢Δͨͼʹߋ৽
    ؅ཧ͢Δओମ͕ҧ͏͜ͱ΋ଟ͍
    ୯ҰͷπʔϧͰશͯΛ؅ཧ͢Δͱɺҙਤ
    ͠ͳ͍มߋ΍ࣄނ͕ى͜ΔՄೳੑ͕ߴ͍

    View Slide

  14. ઃܭࢥ૝(2)
    Amazon ECSઐ༻ͷπʔϧͱͯ͠࡞Δ
    ଞͷίϯςφΦʔέετϨʔγϣϯ΍Ϋϥ΢υ͸ߟྀ͠ͳ͍
    ʲϝϦοτʳ
    ந৅౓͕ߴ͘ͳΒͳ͍ͨΊɺཧղ͕༰қ
    ػೳ௥Ճ΁ͷ௥ै͕༰қʹͳΔ(ޙड़)

    View Slide

  15. ʮ伱ؒՈ۩OSSʯͱ͍͏֓೦
    (ࣗ෼͕ݴ͍ͬͯΔ͚ͩͰҰൠ༻ޠͰ͸ͳ͍)
    https://speakerdeck.com/fujiwara3/aws-devday-tokyo-2019

    View Slide

  16. 2017.11.07 ։ൃ։࢝
    2017.11.09 v0.1.0 ࣮༻తͳ࠷ॳͷόʔδϣϯ
    deploy, rollback, statusίϚϯυͷΈ
    ఆٛϑΝΠϧͷςϯϓϨʔτॲཧ͸؀ڥม਺ͷల։ͷΈ
    ͍ΘΏΔMVP(Minimum Viable Product)
    ίʔυ͸411ߦ5
    5 ecspresso v2.2.1Ͱ͸5703ߦ (ͲͪΒ΋ςετΛআ͘)

    View Slide

  17. v0.1.0 ecspresso --help
    usage: ecspresso --config=CONFIG [] [ ...]
    Flags:
    --help Show context-sensitive help (also try --help-long and --help-man).
    --config=CONFIG config file
    Commands:
    help [...]
    Show help.
    deploy []
    deploy service
    status []
    show status of service
    rollback []
    rollback service

    View Slide

  18. v0.1.0
    $ find . -name '*.go' | xargs wc -l
    32 ./service.go
    35 ./config.go
    56 ./cmd/ecspresso/main.go
    288 ./ecspresso.go
    411 ߹ܭ

    View Slide

  19. 2017.11.29 AWS Fargate GA6
    2017.12.07 ecspresso v0.2.2 AWS FargateରԠ
    σϓϩΠπʔϧΛࣗ࡞͢Δ
    → Amazon ECSͷ৽ػೳʹରԠ͢ΔͨΊʹ͸
    ࣗ෼Ͱ࣮૷͢Δඞཁ͕͋Δ
    6 https://aws.amazon.com/jp/blogs/aws/aws-fargate/

    View Slide

  20. View Slide

  21. 2018೥
    2018.03.30 v0.4.0 deleteίϚϯυ࣮૷
    2018.04.05 v0.5.0 runίϚϯυ࣮૷
    @ijin͞Μ͔Βrun taskΛ࣮૷ͨ͠
    Pull Request
    2018.11.15 Secrets Support for
    Amazon ECS7
    2018.11.20 v0.6.5 SecretsରԠ
    7 https://aws.amazon.com/jp/about-aws/whats-new/2018/11/aws-launches-
    secrets-support-for-amazon-elastic-container-servic/

    View Slide

  22. View Slide

  23. 2019೥
    2019.04.10 CircleCIͱecspressoʹΑΔ
    ECS΁ͷσϓϩΠϝϯτύΠϓϥΠϯ8
    ॳΊͯͷଞࣾࣄྫ
    2019.09.11 --no-wait Pull Request
    @Songmu9
    2019.09.12 v0.9.0 waitίϚϯυ࣮૷
    CI/CDͰͷར༻͕૿͖͑ͯͨ
    9 https://github.com/kayac/ecspresso/pull/38
    8 https://devblog.thebase.in/entry/2019/04/10/110000

    View Slide

  24. ʲసػʳ AWS Dev Day Tokyo 2019

    View Slide

  25. 2019.10.08
    AWS Dev Day Tokyo 2019
    ୈ1ճ AWS Fargate
    ͔ΜͨΜσϓϩΠબखݖ10
    @torics ͞Μʹ঺հ͞ΕΔ
    10 https://speakerdeck.com/toricls/the-very-first-aws-fargate-easy-deployment-
    tooling-championship

    View Slide

  26. ʲίϯςφͷσϓϩΠΛ؆୯ʹ͠·ͤΜ͔ʁʳ
    ECSͷσϓϩΠπʔϧͰ͋Δ
    ʮecspressoʯΛ৮ͬͯΈͨ11
    Ϋϥεϝιου͞Μ
    DevelopersIOͷهࣄͰ঺հ͞ΕΔ
    11 https://dev.classmethod.jp/articles/ecsdeployecspresso/

    View Slide

  27. ͦͷޙTwitterͰͷ΍ΓͱΓ12
    ecspressoͷઃఆϑΝΠϧ͸
    खಈͰ࡞੒͢Δඞཁ͕͋ͬͨ(౰࣌)
    ΞʔϦʔΞμϓλʔͷօ༷͕ͦΕͧΕ
    ࢼߦࡨޡ͍ͯͨ͠
    12 https://twitter.com/fujiwara/status/1181552719451963392

    View Slide

  28. ecspresso init ͷൃ໌
    ecspresso͕ಈ࡞͢ΔͨΊʹ͸࠷௿3ͭͷϑΝΠϧ͕ඞཁ͕ͩ…
    • ઃఆϑΝΠϧ: READMEΛݟͯงғؾͰ
    • λεΫఆٛϑΝΠϧ: aws ecs describe-task-definition
    • αʔϏεఆٛϑΝΠϧ: ࣗ෼ͰͳΜͱ͔
    ͜Ε͕໘౗ͩͬͨ
    !
    طଘͷαʔϏεͷ৘ใΛݩʹ࡞ΕΔͷͰ͸?

    View Slide

  29. 2019.10.12 ecspresso v0.11.0 initίϚϯυ࣮૷
    طଘͷΫϥελ໊ɺαʔϏε໊Λࢦఆͯ͠ઃఆϑΝΠϧΛੜ੒
    $ ecspresso init --cluster default --service myapp
    2023/05/31 14:46:00 myapp/default save service definition to ecs-service-def.json
    2023/05/31 14:46:00 myapp/default save task definition to ecs-task-def.json
    2023/05/31 14:46:00 myapp/default save config to ecspresso.yml
    $ tree
    .
    ├── ecs-service-def.json
    ├── ecs-task-def.json
    └── ecspresso.yml

    View Slide

  30. init ҎલʗҎޙ
    Ҏલ: ઃఆϑΝΠϧΛखॻ͖͢Δͱ࢖͑Δ
    → ڧ͍ڵຯ͕͋Δਓ͔͠࢖͑ͳ͍
    Ҏޙ: ECSͰಈ͘αʔϏεΛ͍࣋ͬͯΔਓ͸ͩΕͰ΋
    ίϚϯυҰൃͰ࢖͑Δ
    ެࣜπʔϧ΍ஶ໊OSS: ֶश͢Δಈػ͕ڧ͍(ඞཁੑ͕͋Δ)
    ऑখOSS: ϋʔυϧ͕ߴ͍ͱ୯ʹ࢖ΘΕͳ͍(ಈػ͕ऑ͍)
    ʲڭ܇ʳઃఆϑΝΠϧΛ޷ΜͰॻౕ͖͍ͨ͸͍ͳ͍

    View Slide

  31. View Slide

  32. Dev Day 2019Ҏ߱ GitHub ΋։ൃ΋Ճ଎
    2019.10.16 v0.12.0 CodeDeployʹΑΔBlue/GreenσϓϩΠ
    2020.03.31 v0.14.0 tfstateࢀরػೳ௥Ճ
    2020೥2݄͔ΒίϩφՒ
    ༵ۚ໷ʹҿΈʹߦ͔ͳ͘ͳΔ
    → ՈͰOSS։ൃΛ͢ΔΑ͏ʹ

    View Slide

  33. Amazon ECSͷػೳ௥Ճʹߴ଎ʹ௥ै͍ͯ͘͠
    ͜ͷ͜Ζɺ৽ػೳ͕ଟ͔ͬͨ
    Fargate Spot, Amazon Elastic File System (EFS) mount,
    Fargate Platoform 1.4.0, S3 envfile...
    ৽ػೳϦϦʔεޙɺ͙͢ʹαϙʔτ͠ଓ͚͍ͯ͘
    2020.01.17 Amazon ECS͔ΒAmazon EFSϚ΢ϯτՄೳʹ13
    2020.01.20 ecspresso v0.13.5 EFSϚ΢ϯταϙʔτ
    ͳͥ͜Ε͕Մೳͳͷ͔
    13 https://aws.amazon.com/jp/about-aws/whats-new/2020/01/amazon-ecs-preview-support-for-efs-file-systems-now-available/

    View Slide

  34. ྫ: Amazon EFS mountαϙʔτ͸࣮࣭ࠩ෼1ߦ14
    aws-sdk-goͷόʔδϣϯΞοϓͷΈ
    14 https://github.com/kayac/ecspresso/pull/81

    View Slide

  35. ৽ػೳϦϦʔε
    → Softwares Development Kit (SDK)ߋ৽
    ecspresso͸JSONΛSDKͷߏ଄ମʹಡΈࠐΜͰ࢖༻͢Δ
    → SDKΛόʔδϣϯΞοϓ͢Δ͚ͩͰػೳ௥Ճʹ௥ै
    1. SDKΛόʔδϣϯΞοϓ
    2. (ඞཁʹԠͯ͡)ߏ଄ମͷ஋ΛҠ͠ସ͍͑ͯΔͱ͜ΖΛमਖ਼
    3. ಈ࡞֬ೝ
    4.
    !

    View Slide

  36. ઃܭࢥ૝ ࠶ܝ
    (1) Amazon ECSαʔϏεͱλεΫఆٛͷ؅ཧʹಛԽ
    → มߋ͢ΔՕॴ͕࠷খݶʹͳΔ
    (2) Amazon ECSઐ༻ͷπʔϧͱͯ͠࡞Δ
    → Լखʹந৅Խ͍ͯ͠ͳ͍ͨΊɺSDK͕ఏڙ͢ΔΞοϓσʔτ
    Λͦͷ··ड͚ೖΕΒΕΔ
    มߋʹߴ଎ʹ௥ैͰ͖Δઃܭͩͬͨ(݁Ռ࿦)

    View Slide

  37. View Slide

  38. v1.0
    !
    2020.09.05 v0.99.0 (v1ͷͨΊͷpre-release൛)
    2020.10.20 AWS Dev Day Tokyo
    ୈ2ճ AWS Fargate ͔ΜͨΜσϓϩΠબखݖ15
    2020.10.20 ecspresso v1.0.0
    ͍ͭ·Ͱ΋v0.xͩͬͨͷͰɺ֮ޛΛܾΊͯv1ϦϦʔε
    େ͖ͳඇޓ׵͸ͳ͠
    15 https://speakerdeck.com/toricls/the-easiest-deployment-championship-2020-find-your-winner-for-aws-fargate

    View Slide

  39. όʔδϣχϯάํ਑
    جຊతʹ͸Semantic Versioning
    v{major}.{minor}.{patch}
    • ϝδϟʔόʔδϣϯ͕ಉҰͳΒඇޓ׵͸ೖΕͳ͍ (v1, v2...)
    • όάमਖ਼ʹΑΔڍಈมߋ͸΍ΉΛಘͳ͍৔߹͕͋Δ
    • ػೳ͕૿͑ͨΒϚΠφʔόʔδϣϯΛ্͛Δ (v1.1, v1.2...)
    • όάमਖ਼͸ύονόʔδϣϯͰ (v1.1.1, v1.1.2...)
    • খ͍͞ػೳ௥Ճ͸ύονόʔδϣϯͰೖΔ͜ͱ͕͋Δ

    View Slide

  40. αϙʔτϙϦγʔ
    جຊతʹɺόάमਖ਼ΛؚΊͯ࠷৽൛ͷΈαϙʔτ
    ྫ: v1.1.3 ͷ͋ͱʹόάमਖ਼ͱ৽ػೳ͕௥Ճ͞Εͨ৔߹
    → v1.2.0ʹ྆ํؚΊͯϦϦʔε
    (όάमਖ਼ͷΈͷόʔδϣϯ͸ϦϦʔε͠ͳ͍)
    2όʔδϣϯΛฏߦϝϯςφϯεͰ͖Δ༨༟͕ͳ͍ͨΊ
    ͳΔ΂͘ޓ׵ੑ͸յ͞ͳ͍Α͏ʹؾΛ෇͚·͢
    (ຊ൪ϦϦʔε༻ͷόʔδϣϯ͸ݻఆਪ঑)

    View Slide

  41. υΩϡϝϯτͷ੔උ͕՝୊ʹ
    ࣾ಺֎Ͱར༻͕૿͖͕͑ͯͨɺ࣭໰ʹ౴͑Δͷ͕໘౗…
    υΩϡϝϯτΛॻ͘ͷ΋ਏ͍…(ओʹӳޠ)
    !
    ΞυϕϯτΧϨϯμʔͰ24ຊॻ͍ͨΒॆ࣮͢ΔͷͰ͸?
    2020.12 ecspresso Advent Calendar 202016
    2020.12.11 v1.2.0 verify, renderίϚϯυ௥Ճ
    2020.12.24 ecspresso handbook ൃച
    16 https://adventar.org/calendars/5916

    View Slide

  42. ecspresso Advent Calendar
    2020
    ౰࣌ଘࡏ͍ͯͨ͠αϒίϚϯυ14ݸ
    νϡʔτϦΞϧɺςϯϓϨʔτه๏
    Terraformͱͷ࿈ܞɺઃܭࢥ૝
    ࢖͍ͬͯΔOSSͳͲ
    24هࣄΛzenn.devͰͻͨ͢Βॻ͍ͨ

    View Slide

  43. ecspresso handbook
    https://zenn.dev/fujiwara/books/ecspresso-handbook-v2

    View Slide

  44. ecspresso handbook
    ΞυϕϯτΧϨϯμʔ24هࣄΛ·ͱΊͨ
    ΋ͷΛ zenn.dev Ͱൃച(໿10ສࣈ)
    ༗ྉͰ500ԁʹͯ͠ͲΕ͙Β͍ചΕΔ͔
    ࢼ͔ͨͬͨ͠
    (ݱ࣌఺Ͱ)
    ॳ൛ɺ2022೥຤ϦϦʔεͷv2ରԠ൛`
    ߹ܭ400෦ఔ౓ൢച

    View Slide

  45. 2021
    ػೳ௥Ճ͕ଓ͘ظ
    2021.01.12 v1.3.0 CloudFormation plugin
    2021.03.15 Amazon ECS Exec GA17
    2021.04.10 v1.5.0 tasks, exec ίϚϯυ௥Ճ
    2021.10.29 v1.7.0 ఆٛϑΝΠϧྨʹJsonnetαϙʔτ
    17 https://aws.amazon.com/jp/about-aws/whats-new/2021/03/amazon-ecs-now-allows-you-to-run-commands-in-a-container-
    running-on-amazon-ec2-or-aws-fargate/

    View Slide

  46. ecspresso exec
    Amazon ECS Exec
    (ಈ࡞தͷλεΫʹ઀ଓͯ͠ίϚϯυΛ࣮ߦͰ͖Δ)
    ʹରԠ͢Δ ecspresso exec Λ࣮૷
    (ޙ͔Βࢥ͑͹)͜Ε͸ͪΐͬͱҳ୤ؾຯ
    ઃܭࢥ૝(1) αʔϏεͱλεΫఆٛͷ؅ཧʹಛԽ

    exec͸ಈ࡞தͷλεΫͦͷ΋ͷΛ૬खʹ͢Δػೳ
    σϓϩΠΛ؅ཧ͢Δ = ฏ࣌
    ಈ࡞தͷλεΫʹԿ͔͢Δ = ҟৗ࣌

    View Slide

  47. View Slide

  48. 2022 ͦͯ͠v2΁
    2021-01-19 aws-sdk-go-v2 GA18
    ecspresso͸aws-sdk-goʹґଘ͍ͯ͠Δ
    SDK͕ߋ৽͞Εͳ͍ = ৽ػೳʹ௥ैͰ͖ͳ͍ = ࠔΔ(ࣗ෼͕)
    aws-sdk-go (v1)͸Ͳ͏ͳΔ??
    18 https://aws.amazon.com/jp/about-aws/whats-new/2021/01/aws-sdk-for-go-version-2-now-generally-available/

    View Slide

  49. AWS SDKͷαϙʔτঢ়گ(֓؍)
    ෳ਺ฏߦͰαϙʔτ͞Εଓ͚Δ͔͸ݴޠʹΑͬͯ·ͪ·ͪ19
    JavaScript, Python, Java, Go͸࠷৽2ϝδϟʔόʔδϣϯ
    ͦΕҎ֎ͷݴޠ͸1όʔδϣϯͷΈ
    AWS಺෦Ͱͷར༻͕ଟͦ͏ͳݴޠ͸௕ੜ͖͢Δ܏޲͕͋Γͦ͏
    ϦϦʔεޙ10೥ܦա͢Δͱ΄΅αϙʔτऴྃ(Java͚ͩྫ֎)
    aws-sdk-go(v1)͸2015೥ϦϦʔε
    19 https://docs.aws.amazon.com/sdkref/latest/guide/version-support-matrix.html

    View Slide

  50. AWS SDKϝϯςφϯεϙϦγʔ20
    1. General Availability (GA)
    GAʹͳͬͨSDK͸࠷௿24ϲ݄ؒ͸αϙʔτ
    2. Maintenance Announcement
    SDK͕ϝϯςφϯεϞʔυʹͳΔ6ϲ݄લʹΞφ΢ϯε
    3. Maintenance
    ϝϯςφϯεϞʔυʹೖΔͱॏཁͳόάमਖ਼ͷΈ
    ৽ػೳͷ௥Ճ͸ͳ͠
    → ৽ػೳͷߋ৽(อূ)͸ऴྃΞφ΢ϯε͔Β൒೥ؒ
    20 https://docs.aws.amazon.com/sdkref/latest/guide/maint-policy.html

    View Slide

  51. 2022.01 ecspresso v2Λܾஅ
    ํ਑: جຊతͳޓ׵ੑ͸อͭ(ઃఆϑΝΠϧɺσϓϩΠͷڍಈ)
    aws-sdk-go-v2ʹҠߦ
    createίϚϯυഇࢭ
    → deployίϚϯυ͚ͩͰႈ౳ʹ
    ϩάͷݻఆจࣈ਺ંΓฦ͠ɺ୺຤ͷಉҰߦॻ͖׵͑Λഇࢭ
    → CI/CD؀ڥͰͷར༻͕૿͖͑ͯͨͨΊ
    ͦͷଞ େ͖͘͸ͳ͍͕ඇޓ׵ಈ࡞ʹͳΔ΋ͷΛ͍͔ͭ͘

    View Slide

  52. Roadmap to v2
    2022.01.14 github.com/kayac/ecspresso/issues/374
    طଘͷඇޓ׵ఏҊɺ৽ػೳ௥Ճ͸શͯv2ૹΓ
    (ҳ୤ؾຯͩͬͨ)λεΫͦͷ΋ͷΛ૬खʹ͢Δػೳ͸෼཭
    ϥΠϒϥϦͱͯ͠ݺͼग़ͯ͠࢖͏
    Ͳ͏ͯ͠΋࿪Έ͕ཷ·ͬͨίʔυͷϦϑΝΫλ΋

    View Slide

  53. github.com/fujiwara/ecsta
    ecspresso͔ΒλεΫૢ࡞ػೳΛ੾Γग़ͨ͠πʔϧ(ϥΠϒϥϦ)
    ೚ҙͷλεΫʹexecͳͲͷૢ࡞͕Ͱ͖ͯศར
    describe: λεΫͷ৘ใΛJSONͰදࣔ
    exec: ECS ExecͰλεΫʹ઀ଓ
    list: Ϋϥελ಺ͷλεΫҰཡΛදࣔ
    logs: λεΫ͕CloudWatch Logsʹग़ྗͨ͠ϩάΛදࣔ
    portforward: ECS ExecΛ࢖ͬͨϙʔτϑΥϫʔυ
    stop: λεΫΛఀࢭ
    trace: λεΫ͕ىಈ→ఀࢭ·ͰͷΠϕϯτɺϩάΛ࣌ܥྻදࣔ

    View Slide

  54. View Slide

  55. v2
    !
    2022.08.22 aws-sdk-v2ಋೖ։࢝
    2022.11.11 v1.99.1
    2022.12.14 v2.0.0
    !
    ecspresso handbook v2ରԠ൛ϦϦʔε

    View Slide

  56. ecspresso 5೥ͷาΈΛৼΓฦͬͯ
    ઃܭࢥ૝͸େࣄ
    Amazon ECSઐ༻ɺλεΫఆٛͱαʔϏεͷΈʹߜΔ͜ͱͰ
    ৽ػೳ௥ै͕༰қʹ
    طଘσϓϩΠύΠϓϥΠϯ΁ͷ૊ΈࠐΈ΋༰қʹ
    ࠷ॳͷҰาͷϋʔυϧΛԼ͛Δͷ͸େࣄ
    ઃఆϑΝΠϧΛҰ͔Βॻౕ͖͍ͨ͸͍ͳ͍

    View Slide

  57. ecspresso 5೥ͷาΈΛৼΓฦͬͯ
    ίπίπଓ͚Δͷ΋େࣄ
    ՖۚOSS։ൃ͕श׳Խ→
    !
    ͍ͭͰʹissueΛݟΔ͔ɺͱͳΔ
    ۚમతͳݟฦΓ͸ͪΐͬͱخ͍͠
    GitHub Sponsorsืूத github.com/sponsors/fujiwara
    ZennͷചΓ্͛(࠷ۙ͸1ສԁ/݄ఔ౓)
    (Ͱ΋ͦΕΛ໨తʹ͠ͳ͍ํ͕ྑͦ͞͏)

    View Slide

  58. ecspresso MeetUp΍Γ·͢!
    2023.8.8(Ր) 19:00ʙ
    JAWS-UG ίϯςφࢧ෦ओ࠵
    ࢀՃऀ(ݱ஍ɾΦϯϥΠϯ)ืूத
    https://jawsug-container.connpass.com/
    event/285124/

    View Slide