AWS architectural help එකක් ඕන.

gembaknb

Active member
  • Oct 13, 2014
    899
    50
    28
    AWS architectural help එකක් ඕන.
    AWS serveless lambda use කරන්නෙ. Mainම concern එක තමයි traffic එක. Around 100,000 req/sec වගේ traffic එකක් handle කරන්න ඕන. EC2 වලට load balancers දාන්න පුලුවන්, auto scale දාලා cpu එක වැඩි කරගන්නත් පුලුවන්.
    ඒත් lambda වල limit එකක් තියෙනවනේ concurrent 2000 කියලා. ඒක වැඩි කරගන්න විදියක් තියෙනවද? එහෙම නැත්තං, ඒකට දෙන්න පුලුවන solution එකක්වත්?
     

    Ted Mosby

    Well-known member
  • Aug 29, 2021
    594
    1,604
    93
    මට හිතෙනවා උබේ use case එකට lambda හරියන්නේ නැ කියලා.
    1M RPS කියන්නේ සැහෙන්න ලොකු load එකක්. ඔය level එකේදී Prebuild solutions ගොඩක් වෙලාවට හරි යන්නේ නැ. අනිවා සැහෙන්න config, customize කරන්න වෙනවා.
    උබට ගොඩක් වෙලාවට AWS එකත් එක්ක කතා කරන්න වෙයි.
    (ඇත්තටම 1M RPS එනවා නම් )
     

    gembaknb

    Active member
  • Oct 13, 2014
    899
    50
    28
    මට හිතෙනවා උබේ use case එකට lambda හරියන්නේ නැ කියලා.
    1M RPS කියන්නේ සැහෙන්න ලොකු load එකක්. ඔය level එකේදී Prebuild solutions ගොඩක් වෙලාවට හරි යන්නේ නැ. අනිවා සැහෙන්න config, customize කරන්න වෙනවා.
    උබට ගොඩක් වෙලාවට AWS එකත් එක්ක කතා කරන්න වෙයි.
    (ඇත්තටම 1M RPS එනවා නම් )
    ප්‍රසිද්ද channel එකක් එක්ක marketing video එකක් කරනවා. ඒකෙන් ලොකු hype එකක් එන්න පුලුවන්. ඒක cater කරගන්න ඕන. මොන වගේ solution එකක්ද යන්න පුලුවන්?
     

    Ted Mosby

    Well-known member
  • Aug 29, 2021
    594
    1,604
    93
    ප්‍රසිද්ද channel එකක් එක්ක marketing video එකක් කරනවා. ඒකෙන් ලොකු hype එකක් එන්න පුලුවන්. ඒක cater කරගන්න ඕන. මොන වගේ solution එකක්ද යන්න පුලුවන්?
    පොඩි idea එකක් දියන් channel එකේ subs කියක් වගේ තියෙනවද කියලා සහ lambda එකේ කරන්නේ මොන වගේ වැඩක් ද කියලා
     

    CustomerSupport

    Well-known member
  • Mar 21, 2016
    2,421
    1,543
    113
    100,000 RPS enne na ban oya client loku talk dunnata.
    Oya use case ekata Cloud Functions/Lambda hariyanne na. Regular EC2 server ekak dala auto-scale karaganna. Naththam load balancer eka auto-scale dala EC2 servers spin karaganna one widihata.
     

    Ted Mosby

    Well-known member
  • Aug 29, 2021
    594
    1,604
    93
    100,000 RPS enne na ban oya client loku talk dunnata.
    Oya use case ekata Cloud Functions/Lambda hariyanne na. Regular EC2 server ekak dala auto-scale karaganna. Naththam load balancer eka auto-scale dala EC2 servers spin karaganna one widihata.
    ඕකම තමයි මාත් කියන්න හැදුවේ. ලංකාවේ ඉන්න ලොකුම youtuber කරත් උපරිම 1000 - 1500 RPS තමයි. video එක out උන ගමන්.
     

    gembaknb

    Active member
  • Oct 13, 2014
    899
    50
    28
    පොඩි idea එකක් දියන් channel එකේ subs කියක් වගේ තියෙනවද කියලා සහ lambda එකේ කරන්නේ මොන වගේ වැඩක් ද කියලා
    Chanux, wasthi වගේ කරන්නෙ. මතකනෙ එක පාරක් wasthi app එකක් කරල traffic වැඩි වෙලා කෙල උනා. ඒක නැති වෙන්න ඒ එක traffic එක cater කරගන්න ඕන

    100,000 RPS enne na ban oya client loku talk dunnata.
    Oya use case ekata Cloud Functions/Lambda hariyanne na. Regular EC2 server ekak dala auto-scale karaganna. Naththam load balancer eka auto-scale dala EC2 servers spin karaganna one widihata.
    ඔක්කොම scalable යන්න බැලුවේ. Lambda වල අපිට req කරල හරි පොඩි ගානක් වැඩි කරගන්න පුලුවන් නෙ. අනික DB එක, dynamo වගේ යන්න බැලුවෙ req ගාන වැඩි වෙන නිසා. Normal RDS එකකින් handle කරන්න අමාරු වෙයිද දන්නෑනෙ. ඒ වගේ දේවල් නිසා cloudම යන්න බැලුවෙ. System එකනම් පොඩි එකක්. Normally එහෙම දේකට ec2+load balancer යනවන්ම් කොහොමද ඒක වෙන්නෙ? Figures එහෙම?
    ------ Post added on Feb 3, 2022 at 6:59 AM

    ඕකම තමයි මාත් කියන්න හැදුවේ. ලංකාවේ ඉන්න ලොකුම youtuber කරත් උපරිම 1000 - 1500 RPS තමයි. video එක out උන ගමන්.
    ඒ වගේ ගාණක්නම් lambda වලින් අවුලක්ම නෑනෙ ඉතිං. කොහොමත් lambda 1000 concurrent support කරනවා. මට පොඩ්ඩක් ඒක concurrent, RPS calculate කරන විදියත් පොඩි sup එකක් දෙන්න පුලුවන්නම් හොඳයිම්
    ------ Post added on Feb 3, 2022 at 7:01 AM
     

    හෙළයෙක්

    Well-known member
  • Apr 26, 2014
    49,124
    99,691
    113
    උබට හැමදාටම ඕක හැන්ඩ්ල් කරන්නද ඕනි නැත්තන් දවස් කීපයකට විතරක්ද? බජට් එක කොහොමද කීයක් වගේ වියදම් කරන්න පුලුවන්ද?

    per second ඔය ගාණ එනව කියන්නෙ අඩුම usersla ඔය ගාණ වගේ 5~10 ගුණයක්වත් පැයක් ඇතුලත ඇක්ටිව් ඉන්න ඕනි උබ හදන්නෙ ලයිව් ප්ලේ කරන ගේම් එකක් නෙවෙයි නන්. ඇත්තටම එහෙම වෙන්න පුලුවන්ද කියලත් බලන්න.
     
    Last edited:

    gembaknb

    Active member
  • Oct 13, 2014
    899
    50
    28
    උබට හැමදාටම ඕක හැන්ඩ්ල් කරන්නද ඕනි නැත්තන් දවස් කීපයකට විතරක්ද? බජට් එක කොහොමද කීයක් වගේ වියදම් කරන්න පුලුවන්ද?

    per second ඔය ගාණ එනව කියන්නෙ අඩුම usersla ඔය ගාණ වගේ 5~10 ගුණයක්වත් පැයක් ඇතුලත ඇක්ටිව් ඉන්න ඕනි උබ හදන්නෙ ලයිව් ප්ලේ කරන ගේම් එකක් නෙවෙයි නන්. ඇත්තටම එහෙම වෙන්න පුලුවන්ද කියලත් බලන්න.
    උපරිම සති 2-3ක් තියේවි hype එකක්. ඒ දවස් ටික තමයි අල්ලගන්න ඕන. බජට් එකනම් උන්ට ලොකු කේස් එකක් නෑ. 1M වගේ උනත් ok. උන්ට traffic එක hande කරගන්න තමයි ඕන

    Elastic load balancer + EC2 thama karanna wenne. Lambda function use karala karanna giyoth cost ekath wadi wei.
    Pricing කොහොම set වෙයිද?
    ------ Post added on Feb 3, 2022 at 7:30 AM
     

    raaajit

    Well-known member
  • Nov 4, 2007
    766
    899
    93
    hama ekatama serveless hariyanne naaa , oya EC2 yanvanan ekatha venama option thiyenava , spot instance , reserved instance vagey , cost eka balance kranna
     
    • Like
    Reactions: gembaknb

    Ted Mosby

    Well-known member
  • Aug 29, 2021
    594
    1,604
    93
    මෙහෙමයි
    දැන් ඔය video එක දාන channel එකේ views එන විදිය එක්ක idea එකක් ගන්න පුළුවන් avg concurrent users ලා කීයක් විතර ඉඳි ද කියලා.
    ඊට පස්සේ API design එකෙන් සහ already existing data වලින් බලාගන්න පුළුවන් per user කොච්චර rps එකක් තියෙනවා ද සහ එච්චර rps එකකට lambda එක කීපාරක් invoke වෙනවද කියලා.
    Lambda එකේ avg execution time එකත් බලන්නම්. නිකන් 200ms වගේ නම් තියෙන්නේ ඒ කියන්නේ lambda 1000 ට වඩා පුළුවන්.
    2000ms වගේ යනවා නම් 1000 rps තුත් බෑ නේ.

    ඔය ටිකෙන් බලලා lambda හරියන්නේ නැත්නම් ec2 වලට මාරු වෙන්න.
    Code එකේ factory pattern use කරලා තියෙනවා නම් මේ වගේ වෙලාවට ලේසි
     
    • Like
    Reactions: gembaknb

    හෙළයෙක්

    Well-known member
  • Apr 26, 2014
    49,124
    99,691
    113
    උපරිම සති 2-3ක් තියේවි hype එකක්. ඒ දවස් ටික තමයි අල්ලගන්න ඕන. බජට් එකනම් උන්ට ලොකු කේස් එකක් නෑ. 1M වගේ උනත් ok. උන්ට traffic එක hande කරගන්න තමයි ඕන
    එහෙනන් වැඩිය වද වෙන්නෙ නැතුව ec2 වලට යන්න. long term හරි ඕක දිගට දිගට කරන්න ඕනි නන් Kubernetes වලට docker stack එකක් ලියා ගන්න. එහෙම කරනව නන් DB eka scale වෙන්න ‍යූස් කරන්න.
     
    • Like
    Reactions: gembaknb

    gembaknb

    Active member
  • Oct 13, 2014
    899
    50
    28
    එහෙනන් වැඩිය වද වෙන්නෙ නැතුව ec2 වලට යන්න. long term හරි ඕක දිගට දිගට කරන්න ඕනි නන් Kubernetes වලට docker stack එකක් ලියා ගන්න. එහෙම කරනව නන් DB eka scale වෙන්න ‍යූස් කරන්න.
    EC2 වලට load balancers දාන එකද හොඳ? හැබැයි CPU වැඩි වෙනවා වගේ දෙයක්නෙ වෙන්නෙ. Ec2 performance වැඩි උනා කියලා network traffic handle වෙනවද? Serverless වලදිනම් ඒත් auto scale වෙනවනේ. DB එකේ ලොකු processing නෑ. Login වලට cognito use කරනවා. DB එකේ ඇත්තටම තියෙන්නෙ user status එකයි, payment details ටිකයි විතරයි. උපරිම collection 3-4 තියේවි. DB එකට එන req ගාණ වැඩි නිසා DynamoDB use කරන්න හිතාගෙන ඉන්නෙ.
     

    හෙනයා

    Well-known member
  • May 23, 2014
    16,841
    17,005
    113
    Kottawa
    1M da? 100,000 da? 🤔

    EC2 with auto scaling groups ගියොත් ඔය ගානට ලොකු කොස්ට් එකක් එයි නේ.. අනික ඔය වගේ ලෝඩ් එකක් හැන්ඩල් කරන්න NLB එකක්වත් දාන්න වෙනවා..

    lambda concurrency quota නම් ටිකට් දාල වැඩි කරගන්න පුලුවන්.. හරි විස්තර එක්ක උන්ට කියන්න මෙච්චරක් ඕනෙ මේ දවස් ටිකට කියලා..

    ලැම්ඩා වලින් ගොඩ දාගන්න පුලුවන් වෙයි හොදටම optimized කරල ඩිසයින් කරොත්.. ඒ කිව්වෙ පුලුවන් හැම තැනම වගේ async කරගන්න...

    පුලුවන් තරම් ලැම්ඩා execution time එක අඩු කරගන්න.. invokes වැඩි කරගන්න.. execution time අඩු වෙනව කියන්නෙ concurrency අඩු වෙනව..

    ex: එක වගේ ටාස්ක් 2ක් එකම ලැම්ඩා invocation එකේ කරන්නෙ නැතුව එකම ලැම්ඩා එක දෙපාරක් invoke කරලා guard condition එකකින් වැඩේ කරන්න...

    SQS වලට ඔබද්දි delay seconds දාලා ඔබන්න

    prod යන්න කලින් අනිවා ලෝඩ් ටෙස්ට් එකක් කරලා බලන්න..
     

    gembaknb

    Active member
  • Oct 13, 2014
    899
    50
    28
    මෙහෙමයි
    දැන් ඔය video එක දාන channel එකේ views එන විදිය එක්ක idea එකක් ගන්න පුළුවන් avg concurrent users ලා කීයක් විතර ඉඳි ද කියලා.
    ඊට පස්සේ API design එකෙන් සහ already existing data වලින් බලාගන්න පුළුවන් per user කොච්චර rps එකක් තියෙනවා ද සහ එච්චර rps එකකට lambda එක කීපාරක් invoke වෙනවද කියලා.
    Lambda එකේ avg execution time එකත් බලන්නම්. නිකන් 200ms වගේ නම් තියෙන්නේ ඒ කියන්නේ lambda 1000 ට වඩා පුළුවන්.
    2000ms වගේ යනවා නම් 1000 rps තුත් බෑ නේ.

    ඔය ටිකෙන් බලලා lambda හරියන්නේ නැත්නම් ec2 වලට මාරු වෙන්න.
    Code එකේ factory pattern use කරලා තියෙනවා නම් මේ වගේ වෙලාවට ලේසි
    Channel එකේ normally videos වලට 2-4M views යනවා. ඒත් ඉතිං එක පාරටම නෙවෙයි තමයි. දවසක් ඇතුලත 4M ආවත්, lambda exec times එහෙම අල්ලලා, 1000-1500 RPS වලින් handle කරගන්න පුලුවන් නේද? DynamoDB auto scaling නිසාත්, serverless වලදි auto load balancers දාල servers auto scale වෙන නිසා ඒක ගැන ලොකුවට හිතන්න ඕන නෑනෙ. API gateway එකෙනුත් ලොකු RPS එකක් තියෙනවනේ. දවසකට 4M views වලින්, එන හැමෝම site එකට log උනත්, දවසකට usersල 4M cater කරගන්න පුලුවන් වෙයි නෙ?

    1M da? 100,000 da? 🤔

    EC2 with auto scaling groups ගියොත් ඔය ගානට ලොකු කොස්ට් එකක් එයි නේ.. අනික ඔය වගේ ලෝඩ් එකක් හැන්ඩල් කරන්න NLB එකක්වත් දාන්න වෙනවා..

    lambda concurrency quota නම් ටිකට් දාල වැඩි කරගන්න පුලුවන්.. හරි විස්තර එක්ක උන්ට කියන්න මෙච්චරක් ඕනෙ මේ දවස් ටිකට කියලා..

    ලැම්ඩා වලින් ගොඩ දාගන්න පුලුවන් වෙයි හොදටම optimized කරල ඩිසයින් කරොත්.. ඒ කිව්වෙ පුලුවන් හැම තැනම වගේ async කරගන්න...

    පුලුවන් තරම් ලැම්ඩා execution time එක අඩු කරගන්න.. invokes වැඩි කරගන්න.. execution time අඩු වෙනව කියන්නෙ concurrency අඩු වෙනව..

    ex: එක වගේ ටාස්ක් 2ක් එකම ලැම්ඩා invocation එකේ කරන්නෙ නැතුව එකම ලැම්ඩා එක දෙපාරක් invoke කරලා guard condition එකකින් වැඩේ කරන්න...

    SQS වලට ඔබද්දි delay seconds දාලා ඔබන්න

    prod යන්න කලින් අනිවා ලෝඩ් ටෙස්ට් එකක් කරලා බලන්න..
    ඔව් මේක තමයි අවුල. EC2+ ELB වලට ගියොත් ලොකු දේවල් බලන්න ඕන. NLB දාන්නත් ඕන. Architecture එක ගැන ගොඩක් concern වෙන්න ඕනනෙ. Serverledd Lambda ගියාම ඒක auto scale වෙල handle වෙනවනේ. Lambda optimization විතරයිනෙ ලොකුවට බලන්න ඕන. Avergae අපි හිතුවොත් දවසකට usersල 4M log වෙනවා කියලා, ඒක cater කරගන්න lambda එකෙන් පුලුවන්ද?
    ------ Post added on Feb 3, 2022 at 10:15 AM
     

    හෙනයා

    Well-known member
  • May 23, 2014
    16,841
    17,005
    113
    Kottawa
    ඔව් මේක තමයි අවුල. EC2+ ELB වලට ගියොත් ලොකු දේවල් බලන්න ඕන. NLB දාන්නත් ඕන. Architecture එක ගැන ගොඩක් concern වෙන්න ඕනනෙ. Serverledd Lambda ගියාම ඒක auto scale වෙල handle වෙනවනේ. Lambda optimization විතරයිනෙ ලොකුවට බලන්න ඕන. Avergae අපි හිතුවොත් දවසකට usersල 4M log වෙනවා කියලා, ඒක cater කරගන්න lambda එකෙන් පුලුවන්ද?

    cognito use karanne kohomada? amplify sdk eka through da?
     

    හෙළයෙක්

    Well-known member
  • Apr 26, 2014
    49,124
    99,691
    113
    EC2 වලට load balancers දාන එකද හොඳ? හැබැයි CPU වැඩි වෙනවා වගේ දෙයක්නෙ වෙන්නෙ. Ec2 performance වැඩි උනා කියලා network traffic handle වෙනවද? Serverless වලදිනම් ඒත් auto scale වෙනවනේ. DB එකේ ලොකු processing නෑ. Login වලට cognito use කරනවා. DB එකේ ඇත්තටම තියෙන්නෙ user status එකයි, payment details ටිකයි විතරයි. උපරිම collection 3-4 තියේවි. DB එකට එන req ගාණ වැඩි නිසා DynamoDB use කරන්න හිතාගෙන ඉන්නෙ.
    ඔය ටාස්ක් එකට කස්ටම් කරල යනව නන් හොදයි කියල මට හිතෙන්නෙ නන් Kubernetes + docker. DynamoDB අවුලක් නෑ.

    load balance එකෙන් ප්‍රොසෙස් කරන්නෙ නෑ රික්වෙස්ට් ඒව පාස් කරන එකනෙ කරන්නෙ. එතකොට ට්‍රැෆික් එක එතන හැන්ඩ්ල් කරනව. මල්ටිපල් EC2 කනෙක්ට් කරල තිබ්බම එයා බැලන්ස් එක බලල මාරු කරනවනෙ process කරන්න. සල්ලි අවුලක් නැත්තන් මම කිව්වෙ ඇප් එක හදල EC2 instance එකක් දාල auto scale group එකකට දාල ඒකටම load balance සෙට් කරන්න කියල.

    Docker use කරොත් වෙන්නෙත් ඒකම තමා ඒත් ඒක අරිට වඩා efficient ව්දියට වෙනව සහ පස්සෙත් යූස් කරන්න පුලුවන්. lambda ගන්න එකේ අවාසිය තමා ඔයාට ඕක දිගටම මේන්ටේන් කරගෙන තියාගන්න වෙනව ඒ අකවුන්ට් වලම. සෙටින්ග්ස් එහෙම වෙනස් උනා කියල ප්‍රොජෙක්ට් එකක් වගේ ලේසි නෑ මැනේජ් කරන්න. උන්ගෙ කොස්ට් එහෙම වැඩියි. අනික පස්සෙ තව requirment ආවොත් අමාරුයි වෙනස් කරගන්න ගියාම.