ইসি 2 ইলাস্টিক লোড ব্যালান্সার ডিএনএস এবং রাউটিং সহ সমস্যাগুলি


19

আমরা অ্যামাজন ইসি 2 তে মোটামুটি সোজা সেটআপ চালানোর চেষ্টা করছি - একটি অ্যামাজন ইলাস্টিক লোড ব্যালান্সারের (ELB) পিছনে বেশ কয়েকটি এইচটিটিপি সার্ভার বসে আছে।

আমাদের ডোমেনটি রুট 53 এ পরিচালনা করা হয়েছে এবং ELB এ নির্দেশ করার জন্য আমাদের একটি সিএনএম রেকর্ড রয়েছে।

আমরা কিছু সমস্যা দেখেছি যেখানে কয়েকটি - তবে সমস্ত নয় - অবস্থানগুলি মাঝেমধ্যে লোড ব্যালেন্সারের সাথে সংযোগ করতে অক্ষম; দেখে মনে হচ্ছে এটি ELB এর ডোমেন নামের রেজোলিউশন হতে পারে।

অ্যামাজন সমর্থন আমাদের পরামর্শ দিয়েছে যে লোড ব্যালেন্সারের অন্তর্নিহিত ইলাস্টিক আইপি পরিবর্তন হচ্ছে এবং সমস্যাটি হ'ল কিছু আইএসপি'র ডিএনএস সার্ভার টিটিএলকে সম্মান করে না। আমরা এই ব্যাখ্যায় সন্তুষ্ট নই, কারণ আমরা একটি ইসি 2 উদাহরণ থেকে অ্যামাজনের নিজস্ব ডিএনএস সার্ভারগুলি ব্যবহার করার পাশাপাশি অস্ট্রেলিয়ার স্থানীয় আইএসপি এবং গুগলের ডিএনএস সার্ভার ( 8.8.8.8) এর মাধ্যমে সমস্যাটি প্রতিলিপি করেছি ।

অ্যামাজন এও নিশ্চিত করেছে যে যে সময়টিতে আমরা কয়েকটি অবস্থান থেকে সময় নিরীক্ষণ করেছি, ইএলবি দিয়ে ট্রাফিকগুলি উল্লেখযোগ্যভাবে হ্রাস পেয়েছিল - সুতরাং সমস্যাটি আমাদের শেষ পয়েন্টগুলির সাথে নয়।

মজার বিষয় হল যে ডোমেনটি সংযোগ দিতে পারে না এমন সার্ভারগুলিতে সঠিক আইপি-র সমাধান হয়েছে বলে মনে হচ্ছে - তবে টিসিপি সংযোগ স্থাপনের প্রচেষ্টা ব্যর্থ হয়েছে।

ইএলবির সাথে সংযুক্ত সমস্ত দৃষ্টান্ত সর্বদা স্বাস্থ্যকর। তারা সবাই

কেউ কি জানেন যে আমরা কীভাবে এই সমস্যাটিকে আরও গভীরভাবে নির্ণয় করতে পারি? ইলাস্টিক লোড ব্যালান্সারের সাথে অন্য কেউ এই সমস্যাটি অনুভব করেছেন?

ধন্যবাদ,


আমার আরও একটি নোট হিসাবে যুক্ত করা উচিত - এটি সম্ভবত আপাতদৃষ্টিতে ডিএনএস বা রাউটিংয়ের সাথে সম্পর্কিত হওয়া সত্ত্বেও যতদূর আমরা আমাদের ডোমেনকে সর্বদা সঠিক ইআইপি-র সমাধান করতে পারি - hostইউটিলিটি চালানো সেই সিস্টেমে একই ঠিকানায় সমাধান হয় যেখানে আমরা সংযোগ করতে পারি এবং সিস্টেমগুলি যেখানে আমরা পারি না
Cera

উত্তর:


21

অ্যামাজন ইলাস্টিক লোড ব্যালান্সার (ইএলবি) কীভাবে নির্ণয় করতে হবে তা গুগল করার সময় আমি এই প্রশ্নটি পেয়েছি এবং আমি আমার মতো অন্য কারও পক্ষে এর উত্তর দিতে চাই যার খুব বেশি নির্দেশনা ছাড়াই এই সমস্যায় পড়েছে।

ইএলবি সম্পত্তি

ইএলবিগুলির কিছু আকর্ষণীয় বৈশিষ্ট্য রয়েছে। এই ক্ষেত্রে:

  • ইএলবিগুলি 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রেকর্ডের জন্য curlELB এর সাথে সংযোগ পরীক্ষা করার জন্য উদাহরণস্বরূপ ব্যবহার করুন । অবশ্যই, আপনি নিজের পরীক্ষাগুলি আপনার ব্যাকেন্ডের সাথে সংযুক্ত না করে কেবল ইএলবিতে বিচ্ছিন্ন করতে চান। একটি চূড়ান্ত সম্পত্তি এবং 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 এর কাছে বেশ যুক্তিসঙ্গত কেস তৈরি করতে সক্ষম হবেন যে কিছু ভুল।

আশাকরি এটা সাহায্য করবে!


1
দুর্দান্ত উত্তরের জন্য ধন্যবাদ। আমরা মূলত পরীক্ষার এবং ত্রুটির মধ্য দিয়ে এর বেশিরভাগ সন্ধান করেছি তবে এটি একটি সহজ রেফারেন্স হবে।
Cera

7

ফিক্সটি আসলে সহজ: রুট 53-র Aপরিবর্তে একটি রেকর্ড ব্যবহার করুন CNAME

এডাব্লুএস ম্যানেজমেন্ট কনসোলে, "একটি রেকর্ড" চয়ন করুন এবং তারপরে "আলিয়াস" লেবেলযুক্ত রেডিও বোতামটি "হ্যাঁ" তে সরান। তারপরে ড্রপডাউন মেনু থেকে আপনার ELB নির্বাচন করুন।


1
আমি এই ঠিক করার পিছনে যুক্তি বুঝতে পারি না। ইএলবির পক্ষে অ্যামাজনের ডকুমেন্টেশনগুলি স্পষ্টভাবে বলেছে যে একটি CNAMEরেকর্ড ব্যবহার করা উচিত। কোন Aরেকর্ডের সুবিধা / এখানে কী পরিবর্তন হচ্ছে?
Cera

3
আপনার ডিএনএস যদি রুট 53 ব্যতীত অন্য কোথাও হোস্ট করা থাকে তবে আপনাকে সিআইএম ব্যবহার করতে হবে। তবে রেকর্ড অ্যালাইজিং এমন একটি বৈশিষ্ট্য যা রুট 53 এর সাথে সুনির্দিষ্ট এবং আপনি যে সঠিক সমস্যার মুখোমুখি হচ্ছেন তা সমাধান করার উদ্দেশ্যে। Route53 ডক্স বৃহত্তর গভীরতা এটা ব্যাখ্যা।
জামেব

@ জামেব আপনি কি সেই ডকুমেন্টেশনের টুকরো একটি লিঙ্ক সরবরাহ করতে পারেন?
পর্যন্ত

1
এটিকে রেকর্ডের বিপরীতে একে "আলিয়াস টার্গেট" বলা হয়। docs.aws.amazon.com/Route53/latest/DeveloperGuide/…
জনি07

0

এই AWS বিকাশকারী ফোরামে আপনি চেষ্টা করতে পারেন এমন কিছু সম্ভাব্য সমাধান রয়েছে। https://forums.aws.amazon.com/message.jspa?messageID=387552

উদাহরণ স্বরূপ:

সম্ভাব্য ফিক্স # 1

আমরা ইএলবিতে চলে আসার সময় আমাদের একই সমস্যা হয়েছিল, আমরা আমাদের ইএলবির নাম একক চরিত্রে হ্রাস করে এটি সমাধান করেছি। এমনকি ELB এর জন্য একটি দুটি চর নাম নেটওয়ার্ক समाधान ডিএনএস রেজোলিউশনগুলির সাথে এলোমেলো সমস্যা তৈরি করেছে।

আপনার ইএলবির ডিএনএস নামটি এমন হতে হবে -> এক্স <<9chars> usপূর্ব-পূর্ব-1.elb.amazonaws.com

সম্ভাব্য ফিক্স # 2

আমি আসল পোস্টার। সমস্ত প্রতিক্রিয়া জন্য ধন্যবাদ। টিটিএলকে খুব উঁচু করে সেট করার মাধ্যমে আমরা ডিএনএস সমস্যাগুলির সাথে যে ফ্রিকোয়েন্সি পেয়েছি তা হ্রাস করতে সক্ষম হয়েছি (যাতে তারা নেটওয়ার্কবিহীন সমাধান সার্ভারগুলির দ্বারা ক্যাশে হবে)। তবে, আমরা এখনও পর্যাপ্ত সমস্যা পেয়েছি যেখানে আমরা কেবলমাত্র নেটওয়ার্ক সলিউশনের সাথে আর থাকতে পারি না। আমরা পরিষেবাটিতে ভাল প্রতিবেদনের উপর ভিত্তি করে আল্ট্রাডএনএসে যাওয়ার কথা ভেবেছিলাম, তবে এটি রুট 53 এর মতো দেখাচ্ছিল (যা কভারগুলির নীচে আল্ট্রাডএনএস ব্যবহার করে, এটি প্রদর্শিত হবে) আমাদের জন্য সস্তা হবে। 53 রুটে স্যুইচ করার পরে, আমাদের আর ডিএনএস সমস্যা নেই এবং আমাদের ইএলবি নামগুলিও সুন্দর এবং দীর্ঘ হতে পারে।

এই পোস্টে চেষ্টা করার জন্য অন্যান্য জিনিস ছিল তবে সেগুলি সেরা লিড বলে মনে হচ্ছে।


পরামর্শের জন্য ধন্যবাদ। দুর্ভাগ্যক্রমে মনে হয় যে সমস্যাটি ELB- র জন্য হোস্টনামের DNS রেজোলিউশনে নিখুঁতভাবে নিহিত রয়েছে, এটি আমাদের রেকর্ডের জন্য নয় যা এর সাথে সম্পর্কিত হয়। আমাদের রেকর্ডটি সর্বদা ELB এর হোস্টনামটি সঠিকভাবে সমাধান করে ol
Cera

@ জাইমিবের সমাধান সমস্যার সমাধান করেছে?
slm

যদি আমি আপনাকে সঠিকভাবে বুঝতে পারি তবে সমস্যাটি হ'ল আপনার কাছে সিএমএল / এআইএম রেকর্ড রয়েছে যা একটি সিএনএম / এআইএম রেকর্ড ELB র সাথে সমাধান করে এবং আপনার অংশটি ঠিকঠাক সমাধান করছে, কোনও পারফরম্যান্স সমস্যা নেই, তবে আপনি একবার এলএল এর ডিএনএস এ পৌঁছে পারফরম্যান্স সমস্যার রেকর্ড করেছেন আপ প্রদর্শন?
slm

@ এসএলএম - সম্ভাব্য ফিক্স # 1 সাহায্য করবে না। আমি পোস্ট থেকে এটি অপসারণ সুপারিশ করব।
উরসুস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.