ক্লাউডফ্রন্টের সাথে নীল / সবুজ মোতায়েন


17

আমি ক্লাউডফ্রন্টের সাথে নীল / সবুজ মোতায়েন করার উপায় খুঁজছি ।

একটি ক্লাউডফ্রন্ট বিতরণ থেকে অন্যটিতে যাওয়ার জন্য কারও কাছে কি ভাল সমাধান আছে বা প্রত্যেকেই কেবল তাদের বিতরণটি তৈরি করে এবং এরপরে আর কখনও স্পর্শ করে না?

আমার ক্লাউডফ্রন্ট বিতরণ স্থির সামগ্রী (জাভাস্ক্রিপ্ট, ইত্যাদি) এর জন্য একটি এস 3 উত্স এবং একটি কাস্টম উত্সকে একটি এডাব্লুএস ইএলবিতে নির্দেশ করে।

ক্লাউডফ্রন্টে কোনও পরিবর্তন নেই

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

দুটি ক্লাউডফ্রন্ট বিতরণ

প্রথম বিকল্পটি আমি চেষ্টা করেছিলাম দুটি পৃথক ক্লাউডফ্রন্ট ওয়েব বিতরণ ছিল , একটি আমার বর্তমান, বা এ, পরিবেশের জন্য এবং একটি আমার নতুন, বা বি, পরিবেশের জন্য। আমি একটি রুট 53 ওয়েটেড রাউটিং নীতিটি ব্যবহার করার চেষ্টা করেছি যেখানে আমি আমার www.domain.com রাউট 53 রেকর্ডের জন্য দুটি রেকর্ড যুক্ত করেছি, একটি ক্লাউডফ্রন্ট ডিস্ট্রিবিউশন এ 1 এর ওজনযুক্ত এবং অন্যটি 0 এর ওজন সহ ক্লাউডফ্রন্ট ডিস্ট্রিবিউশন বি এর দিকে নির্দেশ করছে The পরিকল্পনাটি হ'ল আমি ওজন পরিবর্তন করব যখন আমি বিতরণ এ থেকে বিতরণ বিতে যেতে চাই তবে যাইহোক, একবারে কেবলমাত্র একটি ক্লাউডফ্রন্ট বিতরণে www.domain.com বিকল্প ডোমেন নাম (সিএনএম) নিবন্ধিত থাকতে পারে বা আপনি নিম্নলিখিত ত্রুটিটি পেতে পারেন:

com.amazonaws.services.cloudfront.model.CNAMEAlreadyExistsException: One or more of the CNAMEs you provided are already associated with a different resource. (Service: AmazonCloudFront; Status Code: 409; Error Code: CNAMEAlreadyExists; Request ID: ef84a5f0-44e7-11e5-9315-0ba167bb108a)

একটি ক্লাউডফ্রন্ট বিতরণ

দ্বিতীয় বিকল্পটি একটি ক্লাউডফ্রন্ট ওয়েব বিতরণ রাখা। আমার S3 এবং কাস্টম উত্সগুলি আমার A এবং B উভয় পরিবেশের দিকে নির্দেশ করছে এবং তারপরে আমি যখন একটি পরিবেশ থেকে অন্য পরিবেশে যেতে চাই তখন অন্য উত্সের দিকে ইঙ্গিত করার জন্য ক্লাউডফ্রন্ট ক্যাশে আচরণটি আপডেট করি । এটি অত্যন্ত অগোছালো কারণ এই আপডেটগুলি 15-60 মিনিট সময় নেয়, আপডেটের অগ্রগতির কোনও দৃশ্যমানতা নেই এবং আপনার পরিবর্তনের প্রকৃতির উপর নির্ভর করে আপনাকে একটি ক্লাউডফ্রন্ট অবৈধকরণ অনুসরণ করতে হবে যাতে আপনি ক্যাশেড সামগ্রী সরবরাহ করছেন না depending নতুন সামগ্রী সহ পুরানো পরিবেশ থেকে।

আপনার উপদেশের জন্য ধন্যবাদ!


আপনি কি কোনও সমাধান খুঁজে পেয়েছেন? আমাদের প্রকল্পে এবং আমরা এখন এটি করার মতো পদ্ধতিতে আমাদের একই সমস্যা রয়েছে - আমরা আমাদের প্রকল্পে ম্যানুয়ালি ক্লাউডফ্রন্টের এন্ডপয়েন্টটি পরিবর্তন করি।
Dmytriy Voloshyn

1
দুর্ভাগ্যক্রমে না - আমি মনে করি না যে এখানে ভাল আছে। সর্বোত্তম অনুশীলন হ'ল একটি ক্লাউডফ্রন্ট বিতরণ, এস 3 বালতিতে যে কোনও সামগ্রী সংস্করণ করা এবং গতিশীল সামগ্রীতে নির্দেশিত উত্সগুলির জন্য রুট 53 ওয়েটেড ডিএনএস রেকর্ড ব্যবহার করা। তারপরে আপনি গতিশীল সামগ্রী পরিবর্তন করতে কেবল রুট 53 আপডেট করুন এবং আপনার ক্লাউডফ্রন্টের স্পর্শ করার দরকার নেই। আমরা দেব এবং কিএর জন্য পৃথক ক্লাউডফ্রন্ট বিতরণ বজায় রাখি। উদাহরণস্বরূপ: স্ট্যাকওভারফ্লো.com
পিটার এম

উত্তর:


9

দুটি ক্লাউডফ্রন্ট বিতরণ

যেহেতু এডাব্লুএস একই এডাব্লুএস অ্যাকাউন্টে ওয়াইল্ডকার্ড বিকল্প সিএনএম এর মধ্যে ওভারল্যাপের অনুমতি দেয়, আপনি নিম্নোক্ত পদ্ধতিতে দুটি ক্লাউডফ্রন্ট বিতরণের মধ্যে স্যুইচ করতে পারেন:

  • প্রোড ডিস্ট্রিবিউশন 1 এর জন্য www.domain.com কে বিকল্প CNAME হিসাবে ব্যবহার করুন
  • প্রোড ডিস্ট্রিবিউশন 2 এর জন্য * .domain.com বিকল্প বিকল্প হিসাবে ব্যবহার করুন
  • আপনার সিএনএম ডিএনএস www.domain.com কে বিতরণ 1 বা ডিস্ট্রিবিউশন 2 (* .ক্লাউডফ্রন্ট.নেট) এর দিকে নির্দেশ করুন।
  • আপনি যে কোনও বিষয়বস্তু থেকে আর পরিবেশন করতে চান না এমন বিতরণ থেকে বিকল্প সিএনএম সরান।

তবে দুটি ভিন্ন ডিস্ট্রিবিউশন ডিএনএস (*। ক্লাউডফ্রন্ট.এন.এফ) একই প্রান্ত নোডগুলিতে ইঙ্গিত করতে পারে, যার অর্থ আপনার কন্টেন্টটি যেভাবে পরিবেশন করা হয়েছে তা হল ক্লাউডফ্রন্ট.এনএফ সিএনএমকে এটি পরিবেশন করা এজ নোডের সাথে এবং তারপরে মিলিয়ে হোস্ট-নেম। এই ক্ষেত্রে, যদি আপনার উভয় বিতরণগুলি একই প্রান্ত নোডগুলি ব্যবহার করে থাকে (তবে এটির সাথে উদাহরণস্বরূপ এটি পরীক্ষা করা যেতে পারে dig) কাটাটি পরিষ্কার হবে না।

উদাহরণস্বরূপ, উভয় বিতরণ যদি এক বা একাধিক প্রান্তের নোড ভাগ করে দেয় তবে Alt CNAME www.domain.com এর সাথে ডিস্ট্রিবিউশন 1 সমস্ত প্রান্ত নোডগুলিতে সিএনএম ডিস্ট্রিবিউশন 1 কনফিগারেশন থেকে অপসারণ না হওয়া অবধি আরও জেনেরিক * .domain.com এর সাথে বিতরণ 2 এর চেয়ে বেশি অগ্রাধিকার গ্রহণ করবে । সুতরাং একটি অনুরোধ থেকে পুনরুদ্ধার করা সংস্করণটি संक्रमणের সময়কালে অন্যের থেকে আলাদা হতে পারে।


ক্লাউডফ্রন্টের প্রসারিত পরিবর্তনের সময় বৃদ্ধির কারণে, এটি সত্যই আপনার একমাত্র বিকল্প।
ক্লাউডওয়াকার

ধন্যবাদ - এটি একটি অত্যন্ত আকর্ষণীয় উত্তর। আমি এইভাবে এটি করার কথা ভাবি নি। আমি এটিকে সঠিক হিসাবে চিহ্নিত করতে চলেছি কারণ এটি এক বিতরণ থেকে অন্য বিতরণে কেটে যায় তবে যাইহোক, আমার প্রসারিত সময় এবং ভুল সংক্রমণের সময় ভুল বিষয়বস্তু পরিবেশন করার ঝুঁকি এড়ানো উচিত, তাই আমি আমার ক্ষেত্রে এটি ব্যবহার করতে পারি না । আমি @ ক্লাউডওয়াকারের সাথে একমত যে অন্য কোনও বিকল্প নেই।
পিটার এম

3

এখানে খেলায় কিছুটা দেরি হয়েছে, তবে অন্য কারও জন্য এটি খুঁজছেন। আমি বিশ্বাস করি ল্যাম্বদা @ এজ ব্যবহার করে এটি করা যেতে পারে। এ / বি পরীক্ষার মতো। https://docs.aws.amazon.com/lambda/latest/dg/lambda-edge.html । আপনি যখন কোনও ইউআরএল অনুরোধ করেন তখন আপনি ট্রিগারযুক্ত ল্যাম্বডা ফাংশনটি প্রয়োগ করতে পারেন। বিভিন্ন উত্স বা url উপসর্গ থেকে নীল / সবুজ সামগ্রী পরিবেশন করতে বেছে নিন Choose একটি কুকি মান নির্ধারণ করবে যে কোন স্থাপনা পরিবেশন করা হবে। প্রথম অনুরোধ উপস্থিত হলে (কোনও কুকি নেই) কুকি এলোমেলোভাবে সেট করুন 95% নীল 5% সবুজ বলুন।


1

হিপ থেকে শুটিং, মেঘের সম্মুখভাগের বিতরণে উত্সটি পরিবর্তন করতে কতক্ষণ সময় লাগে? 1) ELB এর পিছনে নতুন কোড মোতায়েন করুন, এটি উষ্ণ করুন 2) পুরানো উত্স অপসারণ করার সময় আপনার মেঘের সম্মুখ বিতরণে এই এলএলটিকে একটি নতুন উত্স হিসাবে যুক্ত করুন 3) একবার কাটওভার, পুরাতন ELB এর পিছনে পুরানো কোডটি ছিন্ন করুন।

ক্লাউডফ্রন্ট আপডেটগুলি বা ডিএনএস আপডেটের সাথে যুক্ত বিলম্ব থেকে দূরে সরে যেতে আপনি নিজের ইএলবির পিছনে অটস্কেল গোষ্ঠীটি অদলবদল করতে পারেন। 1) নতুন এএসজিতে নতুন কোড মোতায়েন করুন, এটি গরম করুন 2) আপনার বিদ্যমান ইএলবি এই নতুন এএসজি দিয়ে নিবন্ধ করুন 3) আপনার ইএলবি থেকে পুরানো এএসজি ডি-রেজিস্ট্রেশন করুন 4) একবার কাটওভার হয়ে গেলে, পুরানো এএসজি ছিঁড়ে ফেলুন।


0

আমি এই বিষয়েও গবেষণা করে চলেছি এবং একটি পরিশ্রম করেছি (নীচে দেখুন)।

পটভূমি:

ক্লাউডফ্রন্টের বিতরণ কনফিগারেশনের সিএমএল আপনার পুরো অ্যাকাউন্টে অনন্য হতে হবে। সুতরাং ডিএনএসের মাধ্যমে নীল / সবুজকে বিভিন্ন বিতরণে নিয়ন্ত্রণ করা কার্যকর হবে না। চারপাশে একটি হ্যাক ঘূর্ণায়মান রয়েছে যা ওয়াইল্ড কার্ড ব্যবহার করবে তবে এটি কোনও গ্যারান্টি দেয় না যে সঠিক ফাইলগুলি পরিবেশন করা হয়েছে। ডিএনএস এবং ক্লাউডফ্রন্টের মাধ্যমে নীল / সবুজ রঙ নিয়ন্ত্রণ করা সম্ভব নয়।

আরও, ক্লাউডফ্রন্টের কোনও কনফিগার পরিবর্তন (সিএনএএম সহ) এর ফলাফলগুলি প্রান্তের সার্ভারগুলিতে প্রচারিত হওয়ার সময় 15-60 মিনিটের জন্য অপেক্ষা করে। এছাড়াও, একটি আদর্শ সেটআপ নয়।

চারপাশে কাজ:

একক পৃষ্ঠা অ্যাপ্লিকেশনটির জন্য, এই কনফিগারেশনটি কৌশলটি করতে পারে:

  • অ্যাপ্লিকেশন URL: app.mydomain.com/app
  • এস 3 কাঠামো:
    • অ্যাপ্লিকেশন / (আপনার লাইভ সাইট)
    • অ্যাপ 2 / (আপনার লাইভ সাইট না)

ফাইলগুলি পরিবেশন করতে আপনার বালতিটি ব্যবহার করতে এখন ক্লাউডফ্রন্টটি কনফিগার করুন। এই মুহুর্তে, এটি সমস্ত আপনার ক্যাশে সেটিংসে নেমে আসে। ক্লাউডফ্রন্ট যেহেতু চিরকালের জন্য নেয় তাই আমাদের S3 অবজেক্টগুলিতে ক্যাশে নিয়ন্ত্রণ নিয়ন্ত্রণ শিরোনাম সেট করে। Index.html এর জন্য, আমরা 5 মিনিট, সমস্ত কিছু, 1 দিন ব্যবহার করি। যখন স্যুইচ করার সময় আসে তখন এস 3 ডিরেক্টরি নামগুলি অদলবদল করুন। 5 মিনিটের মধ্যে, অ্যাপ্লিকেশনটি সমস্ত উদ্দেশ্য এবং উদ্দেশ্যগুলির জন্য লাইভ হবে।

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

সীমাবদ্ধতা

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


0

ইন এই ব্লগে : লেখক কার্যকরী AB ল্যামডা মাধ্যমে পরীক্ষা @ এজ ডেস্কটপ AWS ডকুমেন্টেশনে কোডের বন্ধ কাজ (আপনি তাদের উদাহরণ এখানে দেখতে পারেন https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/lambda- উদাহরণhtml )।

মূলত আপনি যা করেন তা আপনি দুটি একক উত্সকে নির্দেশ করে একটি ক্লাউডফ্রন্ট বিতরণ তৈরি করেন। তারপরে আপনি ট্রাম্পকে যে কোনও মূল (কুকিজের মাধ্যমে) নির্দেশিত করতে ল্যাম্বদা @ এজ ব্যবহার করতে পারেন, এবং অবশ্যই আপনি ল্যাম্বদার মাধ্যমে অন্যান্য জিনিসগুলি প্রয়োগ করতে পারেন যেমন ট্র্যাফিককে ভারী করা বা এটি উল্টানো ইত্যাদি further আরও উত্স এবং যুক্তি যুক্ত করা সহজ It's ।

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