প্রতিটি ইসি 2 উদাহরণে একাধিক অ্যাপ্লিকেশন সহ কীভাবে ELB স্বাস্থ্য চেক সেট আপ করবেন?


11

এডাব্লুএসে আমরা একাধিক অ্যাপ্লিকেশন হোস্ট করে ভারসাম্য ইসি 2 উদাহরণ লোড করতে ELB ব্যবহার করতে চাই। আদর্শভাবে আমরা আবেদনের জন্য স্বাস্থ্য পরীক্ষা করতে চাই।

তবে, এডাব্লুএস ইলাস্টিক লোড ব্যালান্সাররা কেবল আপনাকে স্বাস্থ্য পরীক্ষার জন্য একটি স্থানে পিং লাগাতে দেয়।

ELB- র সাথে স্বাস্থ্য পরীক্ষাগুলি কার্যকর করার সর্বোত্তম উপায় কী হতে পারে যা প্রতিটি ইসি 2 উদাহরণে মোতায়েন করা একাধিক অ্যাপ্লিকেশনগুলির অবস্থা বিবেচনা করে?


4
একটি উপায় হ'ল উভয় অ্যাপ্লিকেশনের চেকের ভিত্তিতে কোনও স্ক্রিপ্টকে একটি স্ট্যাটাস ফিরিয়ে দিয়ে নিজের স্বাস্থ্য চেক প্রয়োগ করা।
নাথান সি

1
ইএলবি একটি পরিচালিত পরিষেবা service নিজস্ব স্বাস্থ্য পরীক্ষা করে দ্বিতীয় আবেদনের জন্য আরেকটি ইএলবি তৈরি করুন। বেশিরভাগ ব্যয় অনুরোধ অনুসারে, সুতরাং 2 ইএলবি পরিচালনা করতে আপনার প্রায় একই খরচ হবে।
গাই

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

@ গুয় আসলে, ELB- ঘন্টাগুলিতে অনুরোধ নির্বিশেষে চার্জ নেওয়া হয়, যা মাসে 20 ডলার (অঞ্চলের উপর নির্ভর করে) হয়, তাই বেশিরভাগ ব্যয় কেবলমাত্র আপনি প্রতি মাসে 2.5 TB এর বেশি ডেটা পরিবেশন করলে অনুরোধ অনুযায়ী হয় ( $ 0.008 / গিগাবাইটে)
জোসিপ রডিন

উত্তর:


10

এটি সমাধানের দুটি উপায় এখানে;

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

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

সম্পাদনা করুন: দয়া করে নোট করুন এটি একটি পুরানো উত্তর এবং ELB এ ALB নয় নির্দিষ্ট not ALB স্থানীয়ভাবে একটি হোস্টের পৃথক লক্ষ্যগুলি সমর্থন করে।


7

প্রতি অ্যাপ্লিকেশনটিতে একটি ইএলবি ব্যবহার করা এখানে যাওয়ার উপায়।

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

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

এখানে একটি কার্যকারী উদাহরণ কনফিগারেশন যা কোনও এনগিনেক্স serverনির্দেশিকায় যুক্ত হতে পারে । এটি ভারী ভারসাম্যযুক্ত প্রতিটি ইসি 2 ইনস্টলসে ইনস্টল করা হবে।

    # This goes in the `server` block noted by 'default_server', often /etc/nginx/sites-enabled/default

    # All AWS Health Checks from the ELBs arrive at the default server.
    # Forward these requests on the appropriate configuration on this host.
    location /health-check/ {
      rewrite ^/health-check/(?<domain>[a-zA-Z0-9\.]+) /api/v1/status break;
      # Lie about incoming protocol, to avoid the backend issuing a 301 redirect from insecure->secure,
      #  which would not be considered successful.
      proxy_set_header X-Forwarded-Proto 'https';
      proxy_set_header "Host" $domain;
      proxy_pass http://127.0.0.1;
    }

"ফার্স্ট-অ্যাপ্লিকেশন ডট কম" এর জন্য ইএলবির "স্বাস্থ্য পরীক্ষা" সেটিং-এ আপনি "এইচটিটিপি" এবং পোর্ট 80 নির্বাচন করবেন এবং এর মতো একটি পথ প্রবেশ করিয়েছিলেন:

/health-check/first-application.com

উপরের Nginx কনফিগারেশনটি হোস্টে চলার সাথে সাথে অনুরোধটি ডিফল্ট ডোমেনে এবং প্রক্সিটি https://first-application.com/api/v1/status এর জন্য একই হোস্টের Nginx কনফিগারেশন থেকে প্রতিক্রিয়া প্রাপ্ত হবে would

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


3
ধন্যবাদ. এটি যদিও কৌশলটি করেছে বলে মনে হয়েছিল। আমি এটির সাথে একাধিক লোড ব্যালেন্স থাকার প্রয়োজন এড়াতে চাইছিলাম।
ট্যুরডাউন্ডার

6

11 আগস্ট 2016 এ, অ্যামাজন অ্যাপ্লিকেশন লোড ব্যালান্সারগুলি প্রবর্তন করেছিল । এগুলি আপনাকে একাধিক লক্ষ্য গোষ্ঠী নির্দিষ্ট করতে দেয়, প্রতিটি তার নিজস্ব ধরণের স্বাস্থ্য পরীক্ষা করে। সুতরাং এটি এখন একটি একক লোড ব্যালেন্সার ব্যবহার করে সম্ভব!

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