আমি কীভাবে অ্যামাজন ইসি 2 তে একটি স্কেলযোগ্য, নির্ভরযোগ্য হ্যাপ্রোক্সি ক্লাস্টার স্থাপন করতে পারি?


25

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

দেখে মনে হচ্ছে হ্যাপ্রোক্সি নোডের সামনে হার্টবিট লেড রাখার উপায় হবে সম্ভবত আইপিভিএস ব্যবহার করা, তবে ইসি 2 ক্লাস্টারের পরিবর্তনের কারণে কনফিগারেশন পরিবর্তনগুলি পরিচালনা করা (ইচ্ছাকৃত পরিবর্তনের মাধ্যমে যেমন সম্প্রসারণ বা অনিচ্ছাকৃত, হারানোর মতো) ইসি 2 নোড) অ-তুচ্ছ মনে হচ্ছে।

সাধারণত সমাধানটি কমপক্ষে দুটি উপলভ্যতা অঞ্চলকে বিস্তৃত করে।

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


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

উত্তর:


14

ঠিক আছে, আমি স্মাগমগের স্তরে ট্র্যাফিকের সাথে আমি কখনই একটি এডাব্লুএস লোড ভারসাম্য সমাধান তৈরি করি নি, তবে কেবল তত্ত্ব এবং এডাব্লুএসের পরিষেবাগুলির কথা চিন্তা করে, বেশ কয়েকটি ধারণা মাথায় আসে।

আসল প্রশ্নটিতে কয়েকটি জিনিস অনুপস্থিত যা লোড ভারসাম্য নকশাকে প্রভাবিত করে:

  1. স্টিকি সেশন নাকি না? স্টিকি সেশনটি ব্যবহার না করাই ভাল very এবং সমস্ত লোড ব্যালেন্সারকে (এলবি) রাউন্ড রবিন (আরআর) বা এলোমেলো ব্যাকএন্ড নির্বাচন নির্বাচন করতে দিন। আরআর বা এলোমেলো ব্যাকএন্ড নির্বাচনগুলি সহজ, স্কেলেবল এবং সমস্ত পরিস্থিতিতে এমনকি লোড বিতরণ সরবরাহ করে।
  2. এসএসএল নাকি? এসএসএল ব্যবহারে থাকুক বা না থাকুক এবং কোন কোন শতাংশের চেয়ে বেশি অনুরোধ, তার সাধারণভাবে লোড ব্যালেন্সিং ডিজাইনে প্রভাব ফেলে। শংসাপত্র হ্যান্ডলিংকে সহজ করার জন্য এবং SSL অ্যাপ্লিকেশন সার্ভারগুলি থেকে এসএসএল সিপিইউ লোড দূরে রাখার জন্য যত তাড়াতাড়ি সম্ভব এসএসএলকে সমাপ্ত করা প্রায়শই ভাল is

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

ঠিক আছে, কয়েকটি ধারণা যা কার্যকর করা উচিত:

1) "এডাব্লুএস উপায়":

  • প্রথম স্তর, একেবারে সামনে, এল 4 (টিসিপি / আইপি) মোডে ELB ব্যবহার করুন।
  • দ্বিতীয় স্তর, আপনার পছন্দের L7 লোড ব্যালেন্সারের (এনগিনেক্স, এইপপ্রক্সি, অ্যাপাচি ইত্যাদি) সাথে ইসি 2 উদাহরণগুলি ব্যবহার করুন।

উপকারিতা / ধারণা: L7 লোড ব্যালান্সারগুলি মোটামুটি সাধারণ ইসি 2 এএমআই এর হতে পারে, সমস্ত একই এএমআই থেকে ক্লোন করা এবং একই কনফিগারেশন ব্যবহার করে। সুতরাং অ্যামাজনের সরঞ্জামগুলি সমস্ত এইচএ প্রয়োজনীয়তাগুলি পরিচালনা করতে পারে: ইএলবি এল 7 লোড ব্যালান্সারদের নিরীক্ষণ করে। যদি কোনও এল 7 এলবি মারা যায় বা প্রতিক্রিয়াবিহীন হয়ে যায়, ELB এবং ক্লাউডওয়াচ একসাথে একটি নতুন দৃষ্টিকোণ উত্সাহিত করবে এবং এটি ELB পুলে আনবে।

2) "মনিটরিংয়ের সাথে ডিএনএস রাউন্ড রবিন:"

  • কয়েকটি আইপি ঠিকানার উপর মোটা দানাযুক্ত লোড বিতরণ পেতে বেসিক ডিএনএস রাউন্ড রবিন ব্যবহার করুন। আসুন আমরা কেবল এটিই বলি যে আপনি আপনার সাইটের জন্য 3 টি আইপি ঠিকানা প্রকাশ করেন।
  • এই 3 আইপি'র প্রতিটি হ'ল একটি এডাব্লুএস ইলাস্টিক আইপি অ্যাড্রেস (ইআইএ), আপনার পছন্দের এল 7 লোড ব্যালেন্সার সহ একটি ইসি 2 উদাহরণে আবদ্ধ।
  • যদি কোনও ইসি 2 এল 7 এলবি মারা যায়, তবে অনুগত ব্যবহারকারী এজেন্ট (ব্রাউজার) এর পরিবর্তে অন্য আইপিগুলির মধ্যে একটি ব্যবহার করা উচিত
  • একটি বাহ্যিক পর্যবেক্ষণ সার্ভার সেট আপ করুন। 3 টি আইপি-র প্রতিটি নিরীক্ষণ করুন। যদি কোনও প্রতিক্রিয়াবিহীন হয়ে যায়, তবে EIP কে অন্য ইসি 2 ইভেন্টে সরিয়ে নিতে AWS এর কমান্ড লাইন সরঞ্জাম এবং কিছু স্ক্রিপ্টিং ব্যবহার করুন।

সুবিধাগুলি / ধারণা: অনুপযুক্ত ব্যবহারকারী এজেন্টদের যদি কোনওর প্রতিক্রিয়াবিহীন হয়ে থাকে তবে স্বয়ংক্রিয়ভাবে অন্য আইপি ঠিকানায় স্যুইচ করা উচিত। সুতরাং, ব্যর্থতার ক্ষেত্রে, আপনার ব্যবহারকারীদের কেবল 1/3 জনকেই প্রভাবিত করা উচিত এবং তাদের ইউএ আর নীরবে অন্য আইপিতে ব্যর্থ হওয়ায় তাদের বেশিরভাগ কিছুই লক্ষ্য করা উচিত নয়। এবং আপনার বাহ্যিক পর্যবেক্ষণ বাক্সটি লক্ষ্য করবে যে একটি EIP প্রতিক্রিয়াহীন এবং কয়েক মিনিটের মধ্যে পরিস্থিতি সংশোধন করবে।

3) এইচএ সার্ভারের জোড়া DNS আরআর:

মূলত এটি এক জোড়া সার্ভারের মধ্যে সাধারণ হার্টবিট সম্পর্কিত ডনের নিজস্ব পরামর্শ, তবে একাধিক আইপি অ্যাড্রেসের জন্য সরলীকৃত।

  • ডিএনএস আরআর ব্যবহার করে পরিষেবাটির জন্য বেশ কয়েকটি আইপি ঠিকানা প্রকাশ করুন। উপরের উদাহরণ অনুসরণ করে, কেবলমাত্র আপনি 3 আইপি প্রকাশের কথা বলুন।
  • এই আইপি এর প্রতিটি ইসি 2 সার্ভারের এক জোড়া যায় , সুতরাং মোট 6 টি ইসি 2 দৃষ্টান্ত।
  • এই প্রতিটি জোড়ই 1 টি আইপি ঠিকানা লাইভ রাখতে সক্রিয় / নিষ্ক্রিয় কনফিগারেশনে AWS সরঞ্জামের সাথে হার্টবিট বা অন্য কোনও এইচএ সমাধান ব্যবহার করে।
  • প্রতিটি ইসি 2 ইভেন্টে আপনার পছন্দের L7 লোড ব্যালেন্সার ইনস্টল করা আছে।

উপকারিতা / ধারণা: এডাব্লুএস'র সম্পূর্ণ ভার্চুয়ালাইজড পরিবেশে এটি L4 পরিষেবাদি এবং ফেইলওভার মোডগুলি সম্পর্কে যুক্তিযুক্তভাবে বলা এত সহজ নয়। মাত্র 1 আইপি ঠিকানা বেঁচে রেখে এক জোড়া অভিন্ন সার্ভারকে সরল করে, এটি সম্পর্কে বিতর্ক করা এবং পরীক্ষা করা সহজ হয়।

উপসংহার: আবার, আমি বাস্তবে প্রযোজনায় এগুলির কোনও চেষ্টা করি নি। আমার অন্ত্রের অনুভূতি থেকে, এল 4 মোডে ইএলবি সহ একটি বিকল্প এবং এল 7 এলবি হিসাবে স্ব-পরিচালিত ইসি 2 দৃষ্টান্তগুলি এডাব্লুএস প্ল্যাটফর্মের স্পিরিটের সাথে সবচেয়ে জড়িত বলে মনে হচ্ছে এবং যেখানে অ্যামাজন সম্ভবত বিনিয়োগ এবং প্রসারিত হওয়ার সম্ভাবনা রয়েছে। এটি সম্ভবত আমার প্রথম পছন্দ হবে।


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

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

@ ডন ম্যাকএকসিল: একটি বিকল্প হ'ল জিএন-সচেতন ডিএনএস রেজোলিউশন যেমন ডাইনডিএনএস ডাইনেট -> ইএলবি + এল 7 এলবি গুলি একটি এজেডের মধ্যে, অন্য একটি এজেডের গরম স্ট্যান্ডবাইতে অন্য ইএলবি + এল 7 রয়েছে। (ভূ-সচেতন হওয়ার সাথে সাথে, ডিনেক্টের কিছু স্বাস্থ্য পরীক্ষাও রয়েছে)) ডাইনডএনএস-এর আপটাইম জন্য দুর্দান্ত ট্র্যাক রেকর্ড রয়েছে, তবে তবুও, ভূ-সচেতন ডিএনএস যোগ করা অন্য এসপিওএফ। মাত্র একটি এডাব্লুএস এজেডের চেয়ে 2 এজেডে ডাইনেক্ট + লোড ব্যালেন্সিংয়ের দীর্ঘমেয়াদী আপটাইম আছে কিনা তা আমার কাছে পরিষ্কার নয়। আমি কী বলতে চাইছি তার একটি সংক্ষিপ্তসার জন্য এটি দেখুন, একাধিক জেড ডাটাবেসগুলি স্যান
এম

@ ডন ম্যাকএকসিল: মাত্র একটি শেষ জিনিস - মনে রাখবেন যে একটি একক ইএলবি উদাহরণ একাধিক এজেডের বিস্তার করতে পারে। এটি ইসি 2 অঞ্চল জুড়ে বিস্তৃত হতে পারে না । তবে যদি একই অঞ্চলের দুটি এজেড-এ কেবল এলএল এলবি'র কাছে এলএলবি ব্যবহারযোগ্যভাবে গ্রহণযোগ্য হয় তবে এটি খুব সহজ হবে ... আপনি লিখেছেন "ইএলবি পুরো একটি জেড খুব ভাল ব্যর্থ হ্যান্ডেল করে না", সম্ভবত আপনি ইতিমধ্যে এর চেয়ে আরও বেশি কিছু জানেন আমি করি.
জেস্পার এম

হ্যাঁ, যদি কোনো ELB ধারন একাধিক AZs ও ব্যর্থতার যেখানে এটি পেতে পারে না কিছু বাছাই হয়েছে কোনো একটি জেড ব্যাক-এন্ডের নোড (তারা ওভারলোড করছি, নিচে, ফিরে 503s যাই হোক না কেন), অন্তিম ব্যবহারকারীদের ঐ ত্রুটিগুলি দেখতে - এটা doesn ' অন্যান্য এজেড-তে পুনরায় রুট করুন। আমি আশা করছি যে এটি পরিকল্পনা করা হয়েছে তবে এটি ইতিমধ্যে একবার আমাদের কামড়েছে।
ডন ম্যাকএকসিল

2

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

পরিবর্তনের প্রচার যতদূর, আমার কাছে দুর্দান্ত উত্তর নেই। পুতুল প্রাথমিক কনফিগারেশন এবং পরিবর্তনগুলি বাস্তবায়নের জন্য দুর্দান্ত, তবে নোডগুলি যুক্ত / অপসারণের জন্য আপনি এর 30 মিনিটের পোলিং ব্যবধানের চেয়ে দ্রুত প্রতিক্রিয়া চান।


1
এটি একটি ভাল সমাধান (এবং একটি ভাল প্রশ্ন!) আপনি একটি ধাক্কা ফ্যাশনে কনফিগারেশন পরিবর্তনগুলি প্রচার করতে অ্যামাজন এসএনএস ব্যবহার করতে পারেন। হ্যাপ্রোক্সি কনফিগারেশন থেকে নোড যুক্ত / অপসারণের জন্য আপনার একটি বিজ্ঞপ্তি সিস্টেমের প্রয়োজন।
রফিক মণিয়ার

ব্যাকএন্ড সার্ভার পরিচালনার জন্য আরেকটি বিকল্প (যেগুলি হ্যাপ্রোক্সি ফরোয়ার্ড করছে) হ'ল প্রতিটি ব্যাকএন্ড সার্ভারকে হরপক্সি, বা একটি কনফিগার সার্ভার, একটি পর্যায়ক্রমিক রেজিস্ট্রেশন (৩০ সেকেন্ড বা তাই) প্রেরণ করা উচিত। যদি একজন মারা যায়, এটি দ্রুত নিবন্ধভুক্ত হয়ে যায় (এবং হ্যাপ্রোক্সিটি যেভাবেই লক্ষ্য করা উচিত); যদি কোনও নতুন আসে তবে এটি স্বয়ংক্রিয়ভাবে ঘূর্ণায়মান হয়ে যায়। এটি স্পষ্টতই নেটফ্লিক্স যা করে।
বেন জেনস

1

আমি নিজে এটি ব্যবহার করি নি তবে ইসি 2 তে এই ধরণের সমস্যাগুলি পরিচালনা করতে পুতুল ব্যবহার করার কথা আমি অনেক লোককে দেখেছি


হ্যাঁ, ইসি 2 এর পুতুল একটি ক্লাস্টার পরিচালনা বেশ সোজা করে তোলে। কেবল একটি মাইক্রো উদাহরণ তৈরি করুন এবং এটি আপনার কুকুরছানা হিসাবে ব্যবহার করুন।
টম ও'কনোর

1
আমরা আমাদের ডেটাসেন্টারে পুতুল ব্যবহার করি, তবে ইসি 2 তে এখনও চেষ্টা করি নি। পুতুল ইসি-সচেতন কোনওরকম, যেমন এটি ইক্য 2-বর্ণনা-উদাহরণ বা কোনও কিছু ব্যবহার করে নোডগুলি খুঁজে পেতে পারে এবং স্বয়ংক্রিয়ভাবে সেই আউটপুটটির উপর ভিত্তি করে কনফিগার / পুনরায় কনফিগার করতে পারে? এবং হঠাৎ দূরে চলে যাওয়া পুতুলমাস্টারকে কীভাবে পরিচালনা করবেন?
ডন ম্যাকস্কিল

কেন হঠাৎ করে চলে যাবে?
টম ও'কনোর

এটি ইসি-সচেতন নয়, তবে আপনি এটি সেট আপ করতে পারেন সুতরাং নতুন নোডগুলি যখন আপনি শুরু করবেন তখন সাইন ইন করার জন্য চিহ্নিত করা হবে এবং সেগুলি বর্ণনা করার জন্য একটি বাহ্যিক নোড স্ক্রিপ্ট ব্যবহার করুন। আমি সিম্পিডিবি (বহিরাগত নোড) এবং এসকিউএস (নতুন নোডের জন্য অনুরোধ স্বাক্ষরের সারি) দিয়ে এটি করার জন্য কিছু অজগর লিখেছি; একজন উবুন্টু দেব এস 3 ব্যবহার করে স্ক্রিপ্ট লিখেছেন: উবুন্টুমাথিয়াজ.ওয়ার্ডপ্রেস
বেন

যদি পুতুলমাস্টার হঠাৎ করে চলে যায় তবে এটি কেবল ম্যানিফেস্টটি চালায় না, অর্থাত্ তারা যেখানেই থাকুক না কেন নোডগুলি ছেড়ে দেয়
বেন জেনস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.