Upgrade to Pro — share decks privately, control downloads, hide ads and more …

M1 Macきたことだし、Graviton2のLambdaを試してみた /20220114-jawsugchiba-jawsug-bgnr-lt

M1 Macきたことだし、Graviton2のLambdaを試してみた /20220114-jawsugchiba-jawsug-bgnr-lt

「M1 Macきたことだし、Graviton2のLambdaを試してみた」
2022.01.14 JAWS-UG千葉支部オンライン#14 & JAWS-UG 初心者支部#42 新年LTスペシャル会 でのLT発表資料です。

665aa20c57717b4f34d0635308d272f7?s=128

Kenichiro Wada

January 14, 2022
Tweet

More Decks by Kenichiro Wada

Other Decks in Technology

Transcript

  1. ..BD͖ͨ͜ͱͩ͠ɺ(SBWJUPO ͷ-BNCEBΛࢼͯ͠Έͨ BXT KBXTVH "846TFS(SPVQT BXTDPNNVOJUZ KBXTVHDIJCB KBXTVH@CHOS 2022.01.14 JAWS-UG千葉⽀部オンライン#14

    新年LTスペシャル (初⼼者⽀部コラボ) 和⽥健⼀郎@Keni_W
  2. ࠓ೔࿩͢͜ͱ KBXTVHDIJCB KBXTVH@CHOS • ⾃⼰紹介 • きっかけ • AWS AWS

    Lambdaとは • 検証してみた • アップデート • まとめ ..BD͖ͨ͜ͱͩ͠ɺ(SBWJUPOͷ-BNCEBΛࢼͯ͠Έͨ
  3. ⾃⼰紹介 ⽒名:和⽥ 健⼀郎 所属:アイレット株式会社 エンジニア JAWS-UG 千葉 運営メンバー SORACOM UG

    東京 運営メンバー Twitter: @Keni_W Facebook : kenichiro.wada.3 好きなAWSサービス : AWS Lambda 2021 APN AWS Top Engineers 2020年共著でサーバーレスの本書きました
  4. ͖͔͚ͬ KBXTVHDIJCB KBXTVH@CHOS ..BD͖ͨ͜ͱͩ͠ɺ(SBWJUPOͷ-BNCEBΛࢼͯ͠Έͨ • この話の元ネタは、AWS Lambdaと Serverless Advent Calendar

    2021の23⽇⽬の 記事です。 • https://zenn.dev/keni_w/articles/bb74b3efbf4b7d • 今回も趣味駆動開発の⼀環です。
  5. ͖͔͚ͬ KBXTVHDIJCB KBXTVH@CHOS ..BD͖ͨ͜ͱͩ͠ɺ(SBWJUPOͷ-BNCEBΛࢼͯ͠Έͨ きっかけは以下の通り • データを収集しようと思った • CSVからParquet形式に変更した⽅が良さげ •

    仕事で使ってるPCがApple M1に • Lambda、Graviton2対応してるな • よし、x86_64と⽐較してみよう
  6. "84-BNCEBͱ͸ KBXTVHDIJCB KBXTVH@CHOS ..BD͖ͨ͜ͱͩ͠ɺ(SBWJUPOͷ-BNCEBΛࢼͯ͠Έͨ • AWS Lambdaは現状、FaaS(Function as a Service)

    の代表格とも⾔える AWSのコンピューティングサービス です。 • マネージメントコンソールやAPIを利⽤して、コードの アップロードするだけで、実⾏することができます。 • つまり、開発者はサーバーの構築、管理は⼀切不要で、 コードの実装のみに集中することができます。 • また、リクエストに応じて、⾃動的にスケーリングを ⾏ってくれます。 • リクエスト毎の課⾦となるため、関数が実⾏されない時 には、⼀切料⾦が発⽣しません。そのため、Amazon EC2を利⽤した場合に⽐べて⼤幅に料⾦が下がるケース もあります。 (基礎から学ぶサーバーレス開発 SECTION-004より)
  7. "84-BNCEBͱ͸ KBXTVHDIJCB KBXTVH@CHOS ..BD͖ͨ͜ͱͩ͠ɺ(SBWJUPOͷ-BNCEBΛࢼͯ͠Έͨ サーバーのことを考えずに コードを実⾏する

  8. "84-BNCEBͱ͸ KBXTVHDIJCB KBXTVH@CHOS Graviton2とは • re:invent2019で発表されたArmが開発した Neoverse N1コアをベースに開発した プロセッサ •

    対M5インスタンス対⽐で、整数演算で約44%、 浮動⼩数点演算では 約24%向上している ..BD͖ͨ͜ͱͩ͠ɺ(SBWJUPOͷ-BNCEBΛࢼͯ͠Έͨ
  9. "84-BNCEBͱ͸ KBXTVHDIJCB KBXTVH@CHOS 対応ランタイムバージョン • Node.js : 14.x、12.x • Python

    : 3.9、3.8 • Ruby : 2.7 • Java : 11、8.a12 • .NET Core : 3.1 • Custom Runtime : provided.a12 ..BD͖ͨ͜ͱͩ͠ɺ(SBWJUPOͷ-BNCEBΛࢼͯ͠Έͨ
  10. "84-BNCEBͱ͸ KBXTVHDIJCB KBXTVH@CHOS 料⾦ ※東京リージョンの価格です ..BD͖ͨ͜ͱͩ͠ɺ(SBWJUPOͷ-BNCEBΛࢼͯ͠Έͨ メモリー(MB) x86料⾦(1ms USD) Arm料⾦(1ms

    USD) 128 0.0000000021 0.0000000017 512 0.0000000083 0.0000000067 1,024 0.0000000167 0.0000000133 5,120 0.0000000833 0.0000000667 10,240 0.0000001667 0.0000001333
  11. ݕূͯ͠Έͨ KBXTVHDIJCB KBXTVH@CHOS ..BD͖ͨ͜ͱͩ͠ɺ(SBWJUPOͷ-BNCEBΛࢼͯ͠Έͨ 検証としては以下実施 • とあるオープンデータとそのデータの中⾝を無 理やり巨⼤化させたファイルの2つで検証 • S3にファイルをアップロードして、S3トリガー

    でLambda起動 • Lambda内で、Parquetに変換して、S3に保存 • コールドスタートを除き、全5回処理を実施
  12. ݕূͯ͠Έͨ KBXTVHDIJCB KBXTVH@CHOS ..BD͖ͨ͜ͱͩ͠ɺ(SBWJUPOͷ-BNCEBΛࢼͯ͠Έͨ • Parquet変換で使うPyArrowは、Intel Mac、 Apple M1 Mac上でそれぞれビルドしたものを

    Lambda Layerとしてデプロイして利⽤
  13. ݕূͯ͠Έͨ KBXTVHDIJCB KBXTVH@CHOS ..BD͖ͨ͜ͱͩ͠ɺ(SBWJUPOͷ-BNCEBΛࢼͯ͠Έͨ オリジナルデータ(4.6M)を処理 (Lambdaの設定 : メモリー256M タイムアウト60秒)

  14. ݕূͯ͠Έͨ KBXTVHDIJCB KBXTVH@CHOS ..BD͖ͨ͜ͱͩ͠ɺ(SBWJUPOͷ-BNCEBΛࢼͯ͠Έͨ データを増やしたもの(102M)を処理 (Lambdaの設定 : メモリー1024M タイムアウト300秒)

  15. Ξοϓσʔτ KBXTVHDIJCB KBXTVH@CHOS ..BD͖ͨ͜ͱͩ͠ɺ(SBWJUPOͷ-BNCEBΛࢼͯ͠Έͨ 1⽇遅れでアドベントカレンダー投稿し(⼤汗)し、 Facebookにも貼ったところ、こんなコメントを頂 きましたので、再度検証してみました start = time.time()

    pq.write_table( arrow_table, output_file, compression='snappy’, flavor=['spark’], version='1.0', ) end = time.time() time_diff = end - start print('変換 処理時間:' + str(time_diff * 1000))
  16. Ξοϓσʔτ KBXTVHDIJCB KBXTVH@CHOS ..BD͖ͨ͜ͱͩ͠ɺ(SBWJUPOͷ-BNCEBΛࢼͯ͠Έͨ オリジナルデータ(4.6M)を処理 (Lambdaの設定 : メモリー256M タイムアウト60秒) •

    変換処理 • 全体
  17. Ξοϓσʔτ KBXTVHDIJCB KBXTVH@CHOS ..BD͖ͨ͜ͱͩ͠ɺ(SBWJUPOͷ-BNCEBΛࢼͯ͠Έͨ データを増やしたもの(102M)を処理 (Lambdaの設定 : メモリー1024M タイムアウト300秒) •

    変換処理 • 全体
  18. ·ͱΊ KBXTVHDIJCB KBXTVH@CHOS ..BD͖ͨ͜ͱͩ͠ɺ(SBWJUPOͷ-BNCEBΛࢼͯ͠Έͨ • 概ねArm64の⽅が⾼速らしい。 • 料⾦も安くなるので、使えるなら使っていきた いところ •

    とはいえ、アーキテクチャが違うので、その辺 りで、不具合等が出る可能性があるので、注意 は必要 • 古いランタイムは要バージョンアップ • さらに⾼速なGraviton3もいずれか?
  19. ·ͱΊ KBXTVHDIJCB KBXTVH@CHOS ..BD͖ͨ͜ͱͩ͠ɺ(SBWJUPOͷ-BNCEBΛࢼͯ͠Έͨ この追加検証の内容、記事にする予定でしたが、 x86_64のLambdaが頑張っちゃってくれたので、 x86_64のLambdaで起動したコンテナのスペック で処理速度変わるのか、ちょっと追加で検証して から記事にします

  20. ऴΘΓ KBXTVHDIJCB KBXTVH@CHOS ..BD͖ͨ͜ͱͩ͠ɺ(SBWJUPOͷ-BNCEBΛࢼͯ͠Έͨ ご静聴 ありがとう ございました