অ্যামাজন ইলাস্টিক লোড ব্যালান্সার (ইএলবি) কীভাবে নির্ণয় করতে হবে তা গুগল করার সময় আমি এই প্রশ্নটি পেয়েছি এবং আমি আমার মতো অন্য কারও পক্ষে এর উত্তর দিতে চাই যার খুব বেশি নির্দেশনা ছাড়াই এই সমস্যায় পড়েছে।
ইএলবি সম্পত্তি
ইএলবিগুলির কিছু আকর্ষণীয় বৈশিষ্ট্য রয়েছে। এই ক্ষেত্রে:
- ইএলবিগুলি 1 বা আরও বেশি নোড দিয়ে তৈরি হয়
- এই নোডগুলি ELB নামের A রেকর্ড হিসাবে প্রকাশিত হয়
- এই নোডগুলি ব্যর্থ হতে পারে, বা বন্ধ হয়ে যেতে পারে, এবং সংযোগগুলি সুক্ষভাবে বন্ধ হবে না
- ইএলবি সমস্যার সমাধান করতে কাউকে পেতে এটির প্রায়শই অ্যামাজন সমর্থন ($$$) এর সাথে একটি ভাল সম্পর্ক প্রয়োজন relationship
দ্রষ্টব্য: অন্য একটি আকর্ষণীয় সম্পত্তি কিন্তু সামান্য কম প্রাসঙ্গিক হ'ল ইএলবিগুলি ট্র্যাফিকের হঠাৎ স্পাইকগুলি পরিচালনা করতে ডিজাইন করা হয়নি। তাদের আকার বাড়ানোর আগে তাদের সাধারণত 15 মিনিটের ভারী ট্র্যাফিকের প্রয়োজন হয় বা সমর্থন টিকিটের মাধ্যমে তারা অনুরোধে প্রাক-উত্তাপিত হতে পারে
সমস্যা সমাধানের ELBs (ম্যানুয়ালি)
আপডেট: এডাব্লুএস ডিএনএসের জন্য রুট 53 ব্যবহার করতে সমস্ত ইএলবি স্থানান্তরিত করেছে। এছাড়াও, সমস্ত ইএলবি-র এখন একটি all.$elb_name
রেকর্ড রয়েছে যা ELB এর জন্য নোডের পুরো তালিকাটি ফেরত দেবে। উদাহরণস্বরূপ, যদি আপনার ELB নাম হয় elb-123456789.us-east-1.elb.amazonaws.com
তবে আপনি এমন কিছু করে নোডের পুরো তালিকা পাবেন dig all.elb-123456789.us-east-1.elb.amazonaws.com
। আইপিভি n নোডের all.ipv6.$elb_name
জন্যও কাজ করে। তদ্ব্যতীত, রুট 53 এখনও ইউডিপি ব্যবহার করে 4KB ডেটা ফেরত দিতে সক্ষম হয়, তাই +tcp
পতাকা ব্যবহার করা প্রয়োজন হতে পারে না।
এটি জানতে পেরে আপনি নিজেরাই কিছুটা সমস্যার সমাধান করতে পারেন। প্রথমে ELB নামটি নোডের তালিকায় সমাধান করুন (একটি রেকর্ড হিসাবে):
$ dig @ns-942.amazon.com +tcp elb-123456789.us-east-1.elb.amazonaws.com ANY
tcp
হিসাবে আপনার ELB একটি একক UDP প্যাকেট উপযোগীতা ভিতরে অনেকগুলি রেকর্ড আছে পারে পতাকা পরামর্শ দেওয়া হয়। আমাকে আরও বলা হয়েছে, তবে ব্যক্তিগতভাবে নিশ্চিত করে বলা হয়নি যে আপনি কোনও জিজ্ঞাসা না করলে অ্যামাজন কেবলমাত্র 6 টি নোড প্রদর্শন করবে ANY
। এই কমান্ডটি চালানো আপনাকে আউটপুট দেবে যা দেখতে এরকম কিছু দেখাচ্ছে (ব্রেভিটির জন্য ছাঁটা):
;; ANSWER SECTION:
elb-123456789.us-east-1.elb.amazonaws.com. 60 IN SOA ns-942.amazon.com. root.amazon.com. 1376719867 3600 900 7776000 60
elb-123456789.us-east-1.elb.amazonaws.com. 600 IN NS ns-942.amazon.com.
elb-123456789.us-east-1.elb.amazonaws.com. 60 IN A 54.243.63.96
elb-123456789.us-east-1.elb.amazonaws.com. 60 IN A 23.21.73.53
এখন, প্রতিটি A
রেকর্ডের জন্য curl
ELB এর সাথে সংযোগ পরীক্ষা করার জন্য উদাহরণস্বরূপ ব্যবহার করুন । অবশ্যই, আপনি নিজের পরীক্ষাগুলি আপনার ব্যাকেন্ডের সাথে সংযুক্ত না করে কেবল ইএলবিতে বিচ্ছিন্ন করতে চান। একটি চূড়ান্ত সম্পত্তি এবং ELBs সম্পর্কে অল্প পরিচিত:
- একটি ELB এর মাধ্যমে প্রেরণ করা যায় এমন অনুরোধ পদ্ধতির (ক্রিয়া) সর্বাধিক আকার 127 টি অক্ষর । যে কোনও বৃহত্তর এবং ELB এইচটিটিপি 405 দিয়ে জবাব দেবে - পদ্ধতি অনুমোদিত নয় ।
এর অর্থ হ'ল আমরা এই আচরণের সুযোগটি কেবলমাত্র ELB সাড়া দিচ্ছে তা পরীক্ষা করার জন্য নিতে পারি:
$ curl -X $(python -c 'print "A" * 128') -i http://ip.of.individual.node
HTTP/1.1 405 METHOD_NOT_ALLOWED
Content-Length: 0
Connection: Close
যদি আপনি দেখতে পান HTTP/1.1 405 METHOD_NOT_ALLOWED
তবে ELB সাফল্যের সাথে সাড়া দিচ্ছে। আপনি কার্লের টাইমআউটগুলিকে মান্য করতে পারে এমন মানগুলিতেও সামঞ্জস্য করতে পারেন।
এল্বপিং ব্যবহার করে সমস্যা সমাধানের ইএলবি
অবশ্যই এটি করা বেশ ক্লান্তিকর হয়ে উঠতে পারে তাই এই এলবপিংকে স্বয়ংক্রিয় করার জন্য একটি সরঞ্জাম তৈরি করেছি । এটি রুবি রত্ন হিসাবে উপলভ্য, সুতরাং আপনার যদি রুবিজেমস থাকে তবে আপনি কেবল এটির মাধ্যমে এটি ইনস্টল করতে পারেন:
$ gem install elbping
এখন আপনি চালাতে পারেন:
$ elbping -c 4 http://elb-123456789.us-east-1.elb.amazonaws.com
Response from 54.243.63.96: code=405 time=210 ms
Response from 23.21.73.53: code=405 time=189 ms
Response from 54.243.63.96: code=405 time=191 ms
Response from 23.21.73.53: code=405 time=188 ms
Response from 54.243.63.96: code=405 time=190 ms
Response from 23.21.73.53: code=405 time=192 ms
Response from 54.243.63.96: code=405 time=187 ms
Response from 23.21.73.53: code=405 time=189 ms
--- 54.243.63.96 statistics ---
4 requests, 4 responses, 0% loss
min/avg/max = 187/163/210 ms
--- 23.21.73.53 statistics ---
4 requests, 4 responses, 0% loss
min/avg/max = 188/189/192 ms
--- total statistics ---
8 requests, 8 responses, 0% loss
min/avg/max = 188/189/192 ms
মনে রাখবেন, যদি আপনি এটি দেখতে পান code=405
তবে এর অর্থ ELB সাড়া দিচ্ছে।
পরবর্তী পদক্ষেপ
আপনি যে কোনও পদ্ধতি নির্বাচন করুন না কেন, আপনার ELB এর নোডগুলি প্রতিক্রিয়া করছে কিনা তা আপনি কমপক্ষে জানতে পারবেন। এই জ্ঞান দিয়ে সজ্জিত, আপনি হয় আপনার স্ট্যাকের অন্যান্য অংশগুলির সমস্যা সমাধানের দিকে মনোনিবেশ করতে পারেন বা AWS এর কাছে বেশ যুক্তিসঙ্গত কেস তৈরি করতে সক্ষম হবেন যে কিছু ভুল।
আশাকরি এটা সাহায্য করবে!
host
ইউটিলিটি চালানো সেই সিস্টেমে একই ঠিকানায় সমাধান হয় যেখানে আমরা সংযোগ করতে পারি এবং সিস্টেমগুলি যেখানে আমরা পারি না