EC2 - AWS Practitioner Notes

في المقال ده هنشوف مع بعض شوية من الـ Notes المهمة في الـ AWS Practitioner خصوصًا مع الـ EC2 Instances
EC2 - AWS Practitioner Notes
EC2 - AWS Practitioner Notes

في هذه الصفحة

المقدمة

في المقال ده هنشوف مع بعض شوية من الـ Notes المهمة في الـ AWS Practitioner خصوصًا مع الـ EC2 Instances


Region

AWS Regions
  • منطقة جغرافية بيكون جواها Availability Zones اللى بيكون جواها cluster of data centers اللى ب deploy عليها ال applications بتاعتي
  • بتبقي منتشرة فى العالم وكل region منفصلة عن التانية

بختار ال region دي بناءا على الآتي:

  1. الـ Latency

لو عندي مثلا website و ال end user بتاعي اللى هيستخدم ال website من Europe مينفعش اروح استخدم region ف Asia مثلا هيكون فيه Latency عليه وهو بي Access ال website

لو ال end user دة هي Access  ـ latency sensitive applications or services زي ال video gaming or real time videos مثلا مينفعش يكون فيه تاخير عليه

  1. الـ Services

مش كل ال regions فيها نفس ال services ممكن تلاقي service موجودة ف region وف region تانية مش موجودة

  1. الـ Cost

مش كل ال services ليها نفس التكلفة ف كل ال regions .. تكلفة ال services بتختلف من region للتانية

  1. الـ Compliance or Data Sovereignty (سيادة)
  • ممكن دولة يكون ليها قوانين معينة بتشترط بقاء ال data داخل حدود الدولة دي ومينفعش تخرج براها.

Availability Zone (AZ)

Availability Zone (AZ)

عباره عن data centers او اكتر ومنفصلين عن بعضهم physically ..  ومنفصلين وبعاد عن بعض الى حد ما يكفي ان لو حصل كارثة زي مثلا زلزال او قطع تيار كهربي او كدا ال Availability Zones بتاعتي متتاثرش كلها .. اللى تقع التانية تشيل مكانها وهكذا

كل AZ ليها ال power, cooling and networking منفصلة.

ف دة بيضمنلك حاجتين من مميزات ال cloud :

  1. الـ Disaster recovery : ان لو حصل failure ف الservices بتاعتي بقدر ا recover بشكل سريع و automatic عن طريق ان بيكون عندي ال services دي فى data center تاني ف AZ تانية
  2. الـ Fault tolerance : ودي عباره عن ان لو عندي services ف مكان وredundant زيها ف مكان تاني لو حصل مشكلة ف المكان الاولاني ال services اللى ف المكان التاني بتاخد مكانها من غير ما ال end user يحس بحاجة

EC2 Instance (Elastic Compute Cloud)

EC2 Instance (Elastic Compute Cloud)

عبارة عن web service بتقدمها AWS بتمكن ال user من انو يستأجر Virtual servers تُعرف باسم ال Instances

وانا بستأجر Virtual server بكون محدد انا محتاج RAM,CPU,OS and Storage قد اية وبالتالي هنا قسملك ال EC2 Instances ل

بعض Categories تقتدر تختار بينهم علي حسب ال use case بتاعتك :

  1. الـ General Purposes : بيكون فيها ال CPU , Memory And Networking مفيش فيهم حاجة اعلي من التانية وبستخدمها فى حالة ان لو عندك web server او dev environment بعمل فيها testing مثلا او لو عندك small or medium databases .. بيكون اسمها وانت بتختارها T3, T4g , ….
  2. الـ Compute Optimized : بستخدمها لل Applications اللى بتحتاج High performance processing زي ال media transcoding
  3. الـ Memory Optimized : بستخدمها لل Applications اللى بتحتاج High performance ف ال Memory
  4. الـ Storage Optimized : بستخدمها لل Applications اللى بتحتاج High performance ف ال Storage
  5. الـ Accelerated Computing : بستخدمها لو محتاج اعمل machine learning او complex calculations او graphic workloads

تقدروا دلوقتي تشتركوا في النشرة الأسبوعية لاقرأ-تِك بشكل مجاني تمامًا عشان يجيلكوا كل جديد بشكل أسبوعي فيما يخص مواضيع متنوعة وبشروحات بسيطة وسهلة وبجودة عالية 🚀

النشرة هيكون ليها شكل جديد ومختلف عن شكلها القديم وهنحاول انها تكون مميزة ومختلفة وخليط بين المحتوى الأساسي اللي بينزل ومفاجآت تانية كتير 🎉

Eqraatech Newsletter | Eqraatech - اقرأ-تِك | Substack
محتوى تقني متميز في مختلف مجالات هندسة البرمجيات باللغة العربية عن طريق تبسيط المفاهيم البرمجية المعقدة بشكل سلس وباستخدام صور توضيحية مذهلة. Click to read Eqraatech Newsletter, a Substack publication with hundreds of subscribers.

EC2 Payment Plans

💡
ودي مهمة خصوصا فى الامتحان
EC2 Payment Plans
  1. الـ on-demand : بدفع عند الحاجة فقط .. وليكن عندك application عاوز تعمل عليه test ف بتستخدم ال plan دي .. اللى هو ف السريع كدا هـ launch or terminate instance
  2. الـ Reserved : بتحجز instance من سنة ل 3 سنين.. طبعا كل ما عدد السنين زادت كل ما هتوفر اكتر .. ودي بتكون مناسبة لل applications اللى هيا عليها traffic ثابت او ال usage بتاعها مش بيتغير
  3. الـ Spot Instance : يعتبر اقل سعر ف ال plans المتاحة .. في ال plan دي انت بتستخدم ال unused EC2 Instances بسعر مخفض لكن ممكن تخسر ال instances بتاعك ف اي وقت لو سعر ال spot instance تخطي ال max price اللى انت محدده وليكن مثلا انت عاوز طول ما سعر ال instance متخطاش 5$/hr ف تمام هفضل مأجرها انما لو  زاد عن كدا ف مش هاجرها .. ودة طبعا مش مناسب لل critical services
  4. الـ Savings plans : مناسبة لل applications اللى بيكون عليه varying workloads وبتتطلب flexibility فى ال instances types and regions ياعني ممكن تغير ال instance ف وسط المدة بتاعتك ..

جوا ال Savings plans موجود نوعين :

  • الـ Compute Saving plan : ودي فيها تقدر تغير ال instance family .. من T3 to C5 مثلا .. ال instance family هي الحرف
  • الـ EC2 instance Saving plan : ودي اقدر اغير فيها مثلا من C5 to C6 ولكن مقدرش اغير ال family
  1. الـ Dedicated Hosts : ف ال 4 انواع اللى فوق انت كنت بتاخد VM علي server وممكن customer تاني ياخد VM علي نفس ال server وهكذا .. هنا بقا انت بتاخد ال host كله ال server كله علشان لو عندك sensitive data او حاجة ميحصلش اي مشاكل 
  2. الـ Dedicated Instance : زي اللى فات بالظبط ولكن مبيكونش ليك access عال physical hardware

وال Access بتاعك عال Hardware بيشمل الآتي:

  1. بيكون ليك full access عال physical servers زي انك تقدر تحط ال instances بتاعتك علي سيرفرات محددة وتبدل ما بينهم وكمان تعيد توزيع ال resources زي مانت عاوز.
  2. بتكون قادر انك تشوف ال  physical attributes الخاصة بال host زي ال number of sockets, cores, and host ID.

Virtual Private Cloud (VPC)

Virtual Private Cloud (VPC)
Virtual Private Cloud (VPC)
  • اي حاجة خاصة بال network بتبقي جوا ال VPC اللي بيكون جواها subnets,route tables and network gateways
  • بالترتيب : ال Region جواها VPC وال VPC جواها ال AZ وال AZ جواها subnets مختلفة
  • تقدر ت create اكتر من VPC داخل ال region وكل vpc بيكون ليها configuration منفصل عن ال vpc التانية
  • وانت بت launch instance بتحدد هتحطها ف انهي VPC وف انهي subnet
  • ال internet gateway : البوابة اللى من خلالها بتطلع عال internet

Security Group

أكنو Virtual Firewall بيكون على ال EC2 instances بتاعتك وبي control ال inbound and outbound traffic من خلال rules انت بتحددها بتخليك تتحكم ف ال protocols,ports and source/destination ip وهكذا

هتلاقي ان by default كل ال outbound traffic are allowed ياعني تقدر تكلم اي حد بره

هتلاقي ان by default كل ال inbound traffic are denied وف الحالة دي بتحدد ازاي هتتعامل مع ال inbound roles من خلال ال rules اللى بتحطها وليكن مثلا:

  1. حاطط rules بتسمح ب http traffic اللى جاي علي port 80
  2. حاطط rules بتسمح ب https traffic اللى جاي علي port 443
  3. حاطط rules بتسمح ب ssh traffic اللى جاي علي port 22 من ip معين فقط وفى الغالب بيكون root user ip

ممكن ت define اكتر من Security Group ل 1 instance

ال Security Group بتشتغل على ال EC2 instance level مش على ال subnet level , اللي بيشتغل على ال subnet هو ال network access control list


Network Interface

عبارة عن hardware component or software interface بت allow ال device زي ال (computer or server ) انو ي connect بال internet

بتسهل التواصل بين الاجهزة عن طريق الانترنت عن طريق transmitting and receiving data packages

ف AWS ال Network interface بيكون ليها :

  1. الـ IP Addresses: وممكن تتضمن Primary و Private IPv4 Address و أكتر من Secondary IPv4 Addresses
  2. الـ MAC Address: كل ENI بيكون عنده MAC Address مميز وخاص بيه وهي اختصار Media Access Control .
  3. الـ Security Groups: ممكن تربط الـ Security Groups بالـ ENIs عشان تتحكم في الـ Inbound والـ Outbound Traffic
  4. الـ Elastic IP: ممكن تـ Attach Elastic IP Address للـ ENI عشان تحصل على Static و Public Facing IP Addressing
  5. الـ Attachment: ممكن الـ ENIs تكون Attached أو Detached من الـ Instances وده بيسمحلك بتحقيق الـ Flexibility والمرونة في الـ Network Configurations

Elastic Network Interface (ENI)

Elastic Network Interface (ENI)
  • عبارة عن interface virtual بتكريتها وتعملها attach لل instance بتاعتك
  • انت اول مبت launch ال EC2 Instance بتاعتك بتاخد private ip جوا ال subntet اللى انت حدتت انها تكون فيها
  • جوا ال EC2 Instance هتلاقي option من خلاله تقدر تحدد هل هتدي ال EC2 Instance public ip ولا لا
  • ال ENI زي مقولنا بيتعملها attach عال EC2 Instance ف بتكون جزا من ال EC2 Instance دي .. ف ساعتها ال EC2 Instance هيكون ليها 2 ip ال primary اللى هو ال private  وال secondary بتاع ال ENI
  • تقدر ت move ال ENI من ال EC2 الاولي للتانية عادي

EC2 Placement Group

EC2 Placement Group
  1. الـ Cluster : اول نوع من ال EC2 placement group ودة بنستخدمه لما يكون عندي مثلا application مستخدم كذا EC2 ومحتاج انهم يتكلمو مع بعض ب latency قليلة جدا وكفاءة network عالية ف ال cluster type هو الاختيار الامثل فى الحالة دي.

وخلي بالك انهم زي مانت شايف كدا بيكونو ف 1 AZ

  1. الـ Spread : لو ف ال cluster حصل مشكلة ف ال AZ ووقعت كدا كل ال EC2 طارت و ال application بتاعك وقف .. ف فى الحالة دي ممكن تستخدم ال Spread ودة بيضمنلك ان ال EC2 بتوعك ف اماكن منفصلة ف AZ منفصلة بحيث لو فيه حاجة منهم وقعت التانيين ياخدو مكانها وهكذا وال Application مينضرش. ياعني من الاخر محتاج high availability.

مشكلتها ان اخرك 7 EC2 ف كل AZ

  1. الـ Partition : ال AZ بيكون جواها ال partitions اللى بيكون جواها ال racks اللى بيكون جواها instances .. ومفيش partition بيshare نفس ال rack او نفس ال hardware مع partition تاني

زي spread لو partition وقع التانيين بيكونو شغالين ف the risk of failure هنا قليل.

هنا ممكن تحط 7 Partition جوا ال AZ .. وجوا كل partition بتحط عدد EC2 علي حسب ال Resources بتاعتك.


Lab1 Create : Region, VPC, AZ and EC2

From Search Bar >> VPC >> Actions >> Default VPc

  • هنـ Create Default VPC لان ميزتها ان هيا بتـ configure automatic ال subnet , routing table
Create Default VPC
  • بعد ما بتـ create ال default VPC بتلاقي ان فيها CIDR عباره عن ال network الكبيرة اللى بتقدر تقسمها لاكتر من subnet وكل subnet بتبقي جزأ من AZ مختلفة .. هنا زي مانت شايف 6 subnets وكل subnet جزأ من AZ مختلفة.
  • ال 6 subnets جزأ من ال routing table اللى عنده default route بيبعتك عال internet gateway 
Routing Table
  • لو دخلت علي subnets من ال left list هتلاقي ال 6 subnets بتوعك وهتلاقي ان كل واحدة منهم جزأ من ال CIDR
Subnets
  • لو دخلت علي subnets من ال left list هتلاقي ال6 subnets بتوعك وهتلاقي ان كل واحدة منهم جزأ من ال CIDR
  • يبقي كدا كل ال AZ بال subnets اللى جواها بتكون مشتركة ف routing table عنده default route بيبعت عال internet gateway

From Search Bar >> EC2 Instance >> Launch EC2 

  1. Name : Web-Server
  2. OS : Amazon Linux
  3. Instance Type : T3 mirco as example
  4. Key Pair :
  • Name : key123
  • Type : RSA
  • Format: .ppl
  • Create And Download: .ppk
  1. Network Settings :
  • VPC : هتختار ال VPC ال Default أو واحد تاني
  • Subntet : هتختار ال subnet وزي ما قولنا كل subntet جزا من AZ مختلفة
  • Auto Assign Public IP : هتختار enable او disable وف حالة disable يبقي ال EC2 دي مش هتقدر تكلم حد عالانترنت زي مشرحنا قبل كدا.
  • Security Group : هتـ create واحد جديد او تختار existing one .. وزي مقولنا عباره عن rules بتـ control ال inbound , outbound traffic عال instance بتاعتي
  1. Storage Configuration : (بعدين)
  2. Advanced Details : choose the placement group (الباقي بعدين)
  3. User Data :
  • من خلالها تقدر ت launch ال EC2 Instance دي ب script علشان متفضلش كل مرة تعمل نفس الخطوات.
  • اقدر مثلا ب bash script اسطب LEMP stack بمجرد ما هحط ال script فيها وهكذا
  1. Number of Instances
  2. Launch and see it’s details.

  • دلوقتي بعد ما خلصت هتلاقي عندك فال details حاجة اسمها Public IPV4 DNS لو دخلت عليه هيدخلك عال website اللى انت عاملها deploy عال instance دي .. دة تم من خلال ال script ف نقطة رقم 8
  • تقدر تـ ssh عال EC2 عادي بقا من خلال ال Public IPV او من خلال putty configuration app ب ال IP , key اللى عملنالو download فوق بصيغة ppk.
  • أو ت ssh عادي وف الحالة دي هتحتاج ال key يكون بصيغة pem.

اشترك الآن بنشرة اقرأ-تِك الأسبوعية

لا تدع أي شيء يفوتك. واحصل على أحدث المقالات المميزة مباشرة إلى بريدك الإلكتروني وبشكل مجاني!