Lambda এবং Step Functions এর সাথে Fault Tolerance

Step Functions এবং Lambda - এডাব্লিউএস ল্যাম্বডা (AWS Lambda) - Web Development

235

Fault tolerance বা ত্রুটি সহনশীলতা এমন একটি ধারণা যা একটি সিস্টেমকে ত্রুটির ক্ষেত্রে সঠিকভাবে কাজ চালিয়ে যেতে সক্ষম করে, এমনকি যখন কিছু অংশে ত্রুটি ঘটে। AWS Lambda এবং Step Functions ব্যবহারের মাধ্যমে Fault Tolerance অর্জন করা সম্ভব। Lambda ফাংশন এবং Step Functions এর সঠিক কনফিগারেশন এবং টুল ব্যবহার করে আপনার অ্যাপ্লিকেশন আরও বেশি নির্ভরযোগ্য এবং দৃঢ় করা যেতে পারে।

এখানে আলোচনা করা হবে AWS Lambda এবং Step Functions এর মাধ্যমে Fault Tolerance কিভাবে অর্জন করা যায় এবং কী কী টেকনিক ব্যবহার করা যেতে পারে।


১. AWS Lambda এর Fault Tolerance

Lambda ফাংশন একটি ফাংশনাল ইউনিট হিসেবে কাজ করে, এবং এর সাথে ফাল্ট টলারেন্স কনফিগার করা গুরুত্বপূর্ণ, যাতে কোনো ত্রুটি ঘটলে আপনার অ্যাপ্লিকেশন সঠিকভাবে কাজ চালিয়ে যেতে পারে।

১.১. Automatic Retries (অটোমেটিক রিটারাই)

AWS Lambda ফাংশন সাধারণত অটোমেটিক রিটারাই ফিচার সমর্থন করে, যখন Lambda কোনো ত্রুটি অথবা ব্যতিক্রম (exception) পায়। এটি বিশেষভাবে অ্যাসিঙ্ক্রোনাস কলগুলোর জন্য কার্যকরী। যখন Lambda ফাংশন একটি ত্রুটি পায়, তখন Lambda নিজেই কাজটি পুনরায় চালানোর চেষ্টা করে।

  • Retry Interval: Lambda ফাংশনের রিটারাই কনফিগারেশন AWS এর ব্যবস্থাপনায় এবং সাধারণত এটি একটি নির্দিষ্ট সময়ের পরে রিটারাইয়ের চেষ্টা করে।

১.২. Dead Letter Queue (DLQ)

যখন একটি Lambda ফাংশন অনেকবার রিটারাই করার পরও সফল হয় না, তখন Lambda সেই কাজটি Dead Letter Queue (DLQ) তে পাঠিয়ে দেয়। এই DLQ আপনার SQS কিউ হতে পারে যা আপনি Lambda ফাংশনের সাথে কনফিগার করেছেন।

  • Dead Letter Queue Setup: আপনি যদি Lambda ফাংশন কনফিগার করেন যে যদি কোনো কাজ সফলভাবে শেষ না হয়, তাহলে তা DLQ-তে চলে যাবে, সেখানে আপনি ডেটা পুনরায় প্রসেস করতে পারবেন বা এর পরবর্তী সমস্যা সমাধান করতে পারবেন।

১.৩. Event Source Mapping

AWS Lambda এর Event Source Mapping ফিচার, যেমন SQS বা DynamoDB Streams এর মাধ্যমে Lambda ফাংশনের সাথে কানেক্টেড বিভিন্ন ইভেন্টের জন্য কাজ করে। এতে, সিস্টেমে কোনো ত্রুটি ঘটলে, ইভেন্টগুলো সঠিকভাবে ট্রিগার করতে সহায়তা করে এবং সিস্টেমটি ধারাবাহিকভাবে কাজ করে।

  • Event Source Retry Logic: Lambda ফাংশন যখন SQS বা DynamoDB Streams থেকে ইভেন্ট গ্রহণ করে, তখন এটি নিজে নিজে পুনরায় কাজ শুরু করতে পারে, যতবার না ফাংশন সফলভাবে রান হয়।

২. Step Functions এর Fault Tolerance

AWS Step Functions এর মাধ্যমে আপনি একাধিক Lambda ফাংশন এবং অন্যান্য AWS সেবাগুলিকে একত্রে কাজ করতে নির্দেশ দিতে পারেন। Step Functions এর ফিচারগুলির মাধ্যমে Fault Tolerance আরও শক্তিশালী করা যায়, বিশেষত যখন একাধিক স্টেট মেশিন ব্যবহৃত হয়।

২.১. Retry এবং Catch Mechanism

Step Functions এ Retry এবং Catch মেকানিজম ব্যবহার করে আপনি নির্দিষ্ট পরিস্থিতিতে ফাংশনগুলোর পুনরায় চেষ্টা বা ত্রুটির হ্যান্ডলিং কনফিগার করতে পারেন।

  • Retry: Step Functions একটি ফাংশন বা স্টেট যখন ত্রুটির সম্মুখীন হয়, তখন সেটিকে পুনরায় চেষ্টা করার জন্য কনফিগার করা যায়। আপনি রিটারাই পলিসি কনফিগার করতে পারেন যেমন: নির্দিষ্ট সংখ্যা পর্যন্ত পুনরায় চেষ্টা করা, চেষ্টা করার সময়ের মধ্যে বিলম্ব ইত্যাদি।

    {
      "StartAt": "TaskState",
      "States": {
        "TaskState": {
          "Type": "Task",
          "Resource": "arn:aws:lambda:region:account-id:function:function-name",
          "Retry": [
            {
              "ErrorEquals": ["States.ALL"],
              "IntervalSeconds": 2,
              "MaxAttempts": 3,
              "BackoffRate": 2
            }
          ],
          "End": true
        }
      }
    }
    

    উপরের উদাহরণে, Step Functions TaskState এর জন্য তিনবার রিটারাইয়ের চেষ্টা করবে এবং প্রতি রিটারাইয়ের জন্য দুই সেকেন্ড বিলম্ব থাকবে।

২.২. Catching Errors (ত্রুটি ধরার পদ্ধতি)

Catch মেকানিজম ব্যবহার করে Step Functions কোনো নির্দিষ্ট ত্রুটি বা ব্যতিক্রম ধরা হলে একটি অন্য স্টেটে চলে যেতে পারে। এটি আপনার স্টেট মেশিনে ত্রুটির পরবর্তী ধাপ ঠিকভাবে পরিচালনা করতে সহায়তা করে।

  • Catch Example:

    {
      "StartAt": "TaskState",
      "States": {
        "TaskState": {
          "Type": "Task",
          "Resource": "arn:aws:lambda:region:account-id:function:function-name",
          "Catch": [
            {
              "ErrorEquals": ["States.TaskFailed"],
              "Next": "FailState"
            }
          ],
          "End": true
        },
        "FailState": {
          "Type": "Fail",
          "Cause": "Task failed"
        }
      }
    }
    

    এই উদাহরণে, যদি TaskState তে কোনো ত্রুটি হয়, তাহলে FailState এ চলে যাবে এবং সেখানে ত্রুটির কারণ উল্লেখ করা হবে।

২.৩. Timeout এবং Recovery

Step Functions এ আপনি প্রতিটি স্টেটের জন্য Timeout সেট করতে পারেন, যাতে একটি ফাংশন যদি নির্দিষ্ট সময়ের মধ্যে রেসপন্স না দেয় তবে তা একটি ত্রুটি হিসেবে গণ্য হবে। এই সময়সীমা পার হলে Step Functions স্বয়ংক্রিয়ভাবে ত্রুটি শনাক্ত করবে এবং Recovery পদ্ধতি অনুসরণ করবে।

  • Timeout Example:

    {
      "StartAt": "TaskState",
      "States": {
        "TaskState": {
          "Type": "Task",
          "Resource": "arn:aws:lambda:region:account-id:function:function-name",
          "TimeoutSeconds": 30,
          "End": true
        }
      }
    }
    

    এখানে, TaskState ৩০ সেকেন্ডের মধ্যে সম্পন্ন না হলে তা ত্রুটি হিসেবে গণ্য হবে এবং Step Functions এর মাধ্যমে নির্ধারিত Recovery স্টেট সক্রিয় হবে।


৩. Lambda এবং Step Functions এর মধ্যে Fault Tolerance ইন্টিগ্রেশন

যখন Lambda ফাংশন এবং Step Functions একসাথে কাজ করে, তখন দুটি ফিচার একত্রে ত্রুটি সহনশীলতা প্রদান করতে পারে। আপনি Step Functions এর Retry এবং Catch পদ্ধতি ব্যবহার করে Lambda ফাংশনকে আরও স্থিতিস্থাপক এবং নির্ভরযোগ্য করে তুলতে পারেন।

  • Multiple Retries: Lambda ফাংশনগুলো Step Functions স্টেট মেশিনের অংশ হিসেবে একাধিক রিটারাই কনফিগার করতে পারে, যাতে কোনও ত্রুটি ঘটলে সেটি পুনরায় চেষ্টা করে।
  • Parallel Execution: Step Functions এর Parallel স্টেট ব্যবহার করে একাধিক Lambda ফাংশন একসাথে চলতে পারে, এবং যদি কোনো একটি Lambda ফাংশনে সমস্যা হয়, তবে অন্য ফাংশনগুলো চলতে থাকবে।

সারাংশ

AWS Lambda এবং Step Functions এর মাধ্যমে Fault Tolerance অর্জন করা সম্ভব। Lambda তে Automatic Retries, Dead Letter Queues (DLQ), এবং Event Source Mapping এর মাধ্যমে ত্রুটি সহনশীলতা নিশ্চিত করা যায়। Step Functions এ Retry, Catch, এবং Timeout পলিসির মাধ্যমে আপনি একাধিক Lambda ফাংশনের সাথে ত্রুটি সহনশীলতা প্রয়োগ করতে পারেন। এর মাধ্যমে আপনার অ্যাপ্লিকেশন দীর্ঘসময় পর্যন্ত নিরবচ্ছিন্নভাবে কাজ করতে সক্ষম হয়, এমনকি কোনো ত্রুটি বা ব্যতিক্রম ঘটলেও।

Content added By
Promotion

Are you sure to start over?

Loading...