আপনি কি অ্যামাজন এর বাইরে অ্যামাজন ইলাস্টিয়াচে রেডিসের সাথে সংযোগ স্থাপন করতে পারেন?


90

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

বর্তমানে আমার স্থানীয় সেট আপ থেকে চেষ্টা করার সময়:

redis-cli -h my-node-endpoint -p 6379

আমি কিছু সময়ের পরে কেবল একটি টাইমআউট পাই।

উত্তর:


75

না, আপনি 'ট্রিকস' যেমন কোনও টানেলের আশ্রয় ছাড়াই পারবেন না যা পরীক্ষার জন্য ঠিক আছে তবে যুক্ত লেটেন্সি / ওভারহেডের সাহায্যে সুপার-ফাস্ট ক্যাশে ব্যবহারের কোনও সত্যিকারের সুবিধা হারাবে।

... কোনও ভিপিসির অভ্যন্তরে বা বাইরে একটি অ্যামাজন এলাস্টি ক্যাশে ক্লাস্টারকে কখনও ইন্টারনেট থেকে অ্যাক্সেসের অনুমতি দেওয়া হয় না

এখান থেকে: http://aws.amazon.com/elasticache/faqs/#Can_I_access_Amadon_ElatiCache_from_outside_AWS

সম্পাদনা 2018: উপরের এই উত্তরটি যখন লিখিত হয়েছিল তখন সঠিক ছিল, তবে এখন এই পৃষ্ঠার প্রায় 1/2 দিকের দিকনির্দেশ ব্যবহার করে বাইরে থেকে রেডিস ক্যাশে অ্যাক্সেস করার জন্য কিছু কনফিগারেশনের মাধ্যমে সম্ভব হয়েছে: https://docs.aws.amazon.com/AmamaonElastiCache /latest/red-ug/accessing-elasticache.html#access-from-outside-aws


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

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


94

এসএসএইচ পোর্ট ফরওয়ার্ডিংয়ের কৌশলটি করা উচিত। আপনার ক্লায়েন্টের কাছ থেকে এটি চালানোর চেষ্টা করুন।

ssh -f -N -L 6379:<your redis node endpoint>:6379 <your EC2 node that you use to connect to redis>

তারপরে আপনার ক্লায়েন্টের কাছ থেকে

redis-cli -h 127.0.0.1 -p 6379

এটা আমার জন্য কাজ করে.

দয়া করে নোট করুন যে redis জন্য ডিফল্ট পোর্ট হয় 6379না 6739। এটি নিশ্চিত করুন যে আপনি যে ইসি 2 নোডের সুরক্ষা গোষ্ঠীটি ব্যবহার করছেন তা আপনার ক্যাশে সুরক্ষা গোষ্ঠীতে আপনার রেডিস উদাহরণের সাথে সংযোগ স্থাপনের অনুমতি দেওয়ার অনুমতি দিয়েছে allow

এছাড়াও, এডাব্লুএস এখন এখানে আপনার ক্লাস্টার আরও তথ্য অ্যাক্সেস সমর্থন করে


পোর্টটি নির্দেশ করার জন্য ধন্যবাদ, কেবল একটি টাইপো। সুতরাং, আপনি কি বলছেন যে ইসি 2 এর মাধ্যমে এসএসএইচ টানেলিংটি অ্যামাজনের বাইরে ইলাস্টিকের নোডের একমাত্র উপায়? ধন্যবাদ,
লুজ ডুরোস

এটি ঠিক ঠিক ঠিক যেমন @ জেজেব্রেনান অন্য উত্তরে উল্লেখ করেছেন।
রিকো

কীভাবে আমরা ssh পোর্ট ফরওয়ার্ডিং বাতিল করতে পারি ...?
মুথুকুমার কে

আপনি ssh প্রক্রিয়াটি মেরে ফেলতে পারেন। লিনাক্সে: kill -9 <pid>
রিকো

27

এই উত্তরগুলি পুরানো।

আপনি এই পদক্ষেপগুলি অনুসরণ করে AWS এর বাইরে ইলাস্টিক-ক্যাশে অ্যাক্সেস করতে পারেন:

  1. আপনার ক্যাশে ক্লাস্টারের মতো একই ভিপিসিতে নাট উদাহরণ তৈরি করুন তবে একটি পাবলিক সাবনেটে।
  2. ক্যাশে ক্লাস্টার এবং NAT উদাহরণের জন্য সুরক্ষা গোষ্ঠী বিধি তৈরি করুন।
  3. নিয়মগুলি বৈধতা দিন।
  4. NAT উদাহরণে একটি iptables নিয়ম যুক্ত করুন।
  5. নিশ্চিত করুন যে বিশ্বস্ত ক্লায়েন্ট ক্লাস্টারে সংযোগ করতে সক্ষম।
  6. Iptables কনফিগারেশন সংরক্ষণ করুন।

আরও বিশদ বিবরণের জন্য অ্যাবস গাইড দেখুন:

https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/accessing-elasticache.html#access-from-outside-aws


আমি কোনও NAT উদাহরণ চাই না, আমি এটি এক মিনিটের জন্য পরীক্ষা করতে চাই। রিকোর উত্তর হুবহু আমি যা চেয়েছিলাম
পিসিস

6

এত পুরানো প্রশ্ন নয়, আমি নিজেই একই সমস্যার দিকে ছুটে এসে সমাধান করেছি:

কখনও কখনও, বিকাশের কারণে আপনাকে বাইরে থেকে অ্যাক্সেস করতে হবে (কেবল একটি সাধারণ বাগ-ফিক্সের জন্য বহু-স্থাপনা এড়াতে?)

আমাজন একটি নতুন গাইড প্রকাশ করেছে যা ইসি 2 বাইরের বিশ্বের প্রক্সি হিসাবে ব্যবহার করে:

https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/accessing-elasticache.html#access-from-outside-aws

শুভকামনা!


4
রেফারেন্সের জন্য অ্যামাজনের অ্যাপ্রোচ পদ্ধতির একটি NAT উদাহরণ।
রাসেলপিয়ের্স

এফওয়াইআই, ডক্স থেকে: "এই পদ্ধতিটি কেবল পরীক্ষার জন্য এবং উন্নয়নের জন্য ব্যবহার করা উচিত production এটি উত্পাদন ব্যবহারের জন্য প্রস্তাবিত নয়"
জেসনজোনসুতাহ

4
হ্যাঁ, এটি সত্য @ জেসনজোনসুতাহ: আমি আমার উত্তরেও এটি উল্লেখ করেছি। উত্পাদনের জন্য একটি খুব খারাপ ধারণা তবে উন্নয়নের জন্য দুর্দান্ত।
শাই এলকায়াম

4

আমরা একটি সংরক্ষিত প্রক্সি সার্ভার হিসাবে HAProxy ব্যবহার করছি।

AWS এর বাইরে আপনার সিস্টেম ---> ইন্টারনেট -> পাবলিক আইপি সহ HAProxy -> আমাজন রেডিস (ইলাস্টিকাকে)

লক্ষ্য করুন যে এটি করার আরও একটি ভাল কারণ আছে (সেই সময়ে)

আমরা যেমন নোড.জেএস ক্লায়েন্ট ব্যবহার করি যা অ্যামাজন ডিএনএসকে ব্যর্থ করে দেয় না, ক্লায়েন্ট ড্রাইভারগুলি আবার ডিএনএস সন্ধান করতে সমর্থন করে না। যদি রেডিস ব্যর্থ হয় তবে ক্লায়েন্ট ড্রাইভার পুরানো মাস্টারের সাথে সংযোগ স্থাপন করবে, যা ব্যর্থ হওয়ার পরে স্লেভ।

HAProxy ব্যবহার করে, এটি সেই সমস্যার সমাধান করেছে।

এখন সর্বশেষতম আইরিডিস ড্রাইভার ব্যবহার করে এটি অ্যামাজন ডিএনএস ফেলওভার সমর্থন করে।


4
নোড.জেএস এর জন্য আপডেট করুন, এখন আইরিডিস সমর্থন ডিএনএস ব্যর্থ হয়েছে। আপনি যদি ডিএনএস হোস্ট-নেম ব্যবহার করেন তবে এটি HAProxy ছাড়াই স্বয়ংক্রিয়ভাবে ব্যর্থ হতে পারে।
টেড্ডিচান

4

বিটিডাব্লু যদি কেউ উইন্ডোজ ইসি 2 সমাধান চায় তবে ডস প্রম্পটে এগুলি ব্যবহার করে দেখুন (উইন্ডোজ ইসি 2 মেশিনে):

পোর্ট-ফরওয়ার্ডিং যুক্ত করতে

সি: \ ব্যবহারকারী \ প্রশাসক>netsh interface portproxy add v4tov4 listenport=6379 listenaddress=10.xxx.64.xxx connectport=6379 connectaddress=xxx.xxxxxx.ng.0001.use1.cache.amazonaws.com

পোর্ট-ফরোয়ার্ড করা পোর্টগুলি তালিকাভুক্ত করতে

সি: \ ব্যবহারকারী \ প্রশাসক>netsh interface portproxy show all

আইপিভি 4 এ শুনুন: আইপিভি 4 এ সংযুক্ত করুন:

ঠিকানা পোর্ট ঠিকানা পোর্ট


10.xxx.128.xxx 6379 xxx.xxxxx.ng.0001.use1.cache.amazonaws.com 6379

পোর্ট-ফরওয়ার্ডিং অপসারণ করতে

সি: \ ব্যবহারকারী \ প্রশাসক>netsh interface portproxy delete v4tov4 listenport=6379 listenaddress=10.xxx.128.xxx


3

এটি একটি শক্ত নোড স্ক্রিপ্ট যা আপনার জন্য সমস্ত নোংরা কাজ করবে। পরীক্ষিত এবং যাচাই করে কাজ করেছে।

https://www.npmjs.com/package/uzys-elasticache- ভাগ্য

কীভাবে ব্যবহার করবেন: ইউজিস-ইলাস্টিকচে-টানেল [বিকল্পসমূহ] [কমান্ড]

আদেশগুলি:

start [filename]  start tunneling with configuration file (default: config.json)
stop              stop tunneling
status            show tunneling status

বিকল্পসমূহ:

-h, --help     output usage information
-V, --version  output the version number

ব্যবহারের উদাহরণ

  • শুরু - uzys-elasticache- সুড়ঙ্গ শুরু ./config.json
  • স্টপ - উজিস-ইলাস্টিক্যাচ-টানেল স্টপ
  • স্থিতি - উজিস-ইলাস্টিকচে-টানেলের স্থিতি

1

কোনও ভিপিসি উদাহরণ থেকে ক্লাসিক-ক্লাস্টারে সরাসরি অ্যাক্সেস করা সম্ভব নয়। কর্মক্ষেত্রে ক্লাসিক উদাহরণগুলিতে NAT কনফিগার করা হবে।

NAT এর জন্য একটি সহজ টিসিপি প্রক্সি থাকা দরকার

YourIP=1.2.3.4
YourPort=80
TargetIP=2.3.4.5
TargetPort=22

iptables -t nat -A PREROUTING --dst $YourIP -p tcp --dport $YourPort -j DNAT \
--to-destination $TargetIP:$TargetPort
iptables -t nat -A POSTROUTING -p tcp --dst $TargetIP --dport $TargetPort -j SNAT \
--to-source $YourIP
iptables -t nat -A OUTPUT --dst $YourIP -p tcp --dport $YourPort -j DNAT \
--to-destination $TargetIP:$TargetPort

আপনি নীচে উল্লিখিত পোস্টেও একই উত্তর দিয়েছেন, যার আলাদা প্রয়োজন রয়েছে। এটি প্রদত্ত দৃশ্যেও কীভাবে কাজ করতে পারে ?? stackoverflow.com/questions/38066908/...
abby37

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