Name 5 aws services you have used and what's the use cases?
Amazon EC2 (Elastic Compute Cloud):
Use Cases:
Running virtual servers in the cloud.
Hosting web applications.
Running large scale batch processing.
Running backend servers for mobile, gaming, or IoT applications.
Scientific computing, financial modeling, and data processing tasks.
Amazon S3 (Simple Storage Service):
Use Cases:
Storing and retrieving any amount of data, often used for backups and archiving.
Hosting static websites.
Data lake storage for big data analytics.
Content distribution via integration with Amazon CloudFront.
Amazon RDS (Relational Database Service):
Use Cases:
Operating relational databases in the cloud such as MySQL, PostgreSQL, MariaDB, Oracle, or Microsoft SQL Server.
Backend storage for web applications, CRM, ERP, and other software.
Data warehousing and reporting.
AWS Lambda:
Use Cases:
Running backend code in response to events like changes to data within Amazon S3 buckets, updates to DynamoDB tables, HTTP requests via Amazon API Gateway, etc.
Building serverless applications.
Real-time file and data stream processing.
Scheduled tasks, for example, nightly jobs or ETL tasks.
Amazon DynamoDB:
Use Cases:
Providing managed NoSQL database services.
Backend storage for web, mobile, and IoT applications.
Storing session data for web applications.
Caching frequently accessed data.
This is just the tip of the iceberg; AWS provides many more services catering to a vast range of cloud computing needs.
What are the tools used to send logs to the cloud environment?
In AWS, there are several tools and services you can use to send logs to the cloud environment. These services help you centralize and manage logs from various AWS resources and applications. Here are some of the key AWS services and tools used for log management:
Amazon CloudWatch Logs:
Use Case: Collects and stores logs from AWS resources and applications.
Key Features:
Allows you to create log groups and log streams to organize logs.
Supports custom log ingestion from EC2 instances, Lambda functions, and other AWS services.
Provides powerful querying and analysis capabilities using CloudWatch Logs Insights.
Supports log retention policies and automatic log rotation.
You can export logs to Amazon S3, Amazon Kinesis Firehose, or Amazon Elasticsearch Service for further analysis.
AWS CloudTrail:
Use Case: Records API calls made on your AWS account for audit and compliance purposes.
Key Features:
Captures API activity, including management events and data events.
Logs can be delivered to an S3 bucket or CloudWatch Logs for analysis.
Helps with tracking changes, troubleshooting, and security investigations.
Amazon S3:
- Use Case: While not a dedicated log management service, Amazon S3 can be used to store log files, especially when combined with other services like AWS Lambda for log collection and processing.
AWS Lambda:
Use Case: Can be used to run serverless functions for log collection, transformation, and forwarding.
Key Features:
- You can trigger Lambda functions in response to events, including log file changes in S3 or log data streams from other services.
These tools and services can be used individually or in combination to create a comprehensive log management and analysis solution in your AWS environment, depending on your specific requirements and use cases.
What are IAM Roles? How do you create /manage them?
IAM Roles are a set of permissions that grant access to AWS services and resources without using static credentials. Instead of hardcoding AWS access keys, applications or AWS services can assume a role to obtain temporary security credentials.
Creating/Managing IAM Roles using AWS Console:
Go to the AWS Management Console.
Navigate to the IAM dashboard.
In the navigation pane, click on "Roles" and then click "Create role".
Choose the trusted entity type (e.g., AWS service) that will assume the role.
Select the permissions policies you want to attach to the role.
Review and give the role a name and description.
Click "Create role".
To manage a role, simply click on its name in the "Roles" list to edit its permissions, trust relationships, or other settings.
How to upgrade or downgrade a system with zero downtime?
Use Blue-Green Deployment: Set up two environments (Blue and Green). Upgrade/downgrade one (e.g., Green). Once ready, switch traffic to Green.
Implement Rolling Updates: Gradually replace old instances with new ones while others handle the traffic.
Utilize a Load Balancer: Distribute traffic across instances. Upgrade instances one by one.
Ensure thorough testing before making changes live and always have a rollback plan.
What is infrastructure as code and how do you use it?
Infrastructure as Code (IaC): IaC is the practice of defining and managing IT infrastructure using configuration files.
How I Use It: I write configuration files using tools like Terraform or AWS CloudFormation. These files define resources like servers and databases. By running these files through the chosen tool, I can automatically set up, modify, or delete infrastructure, ensuring consistency and repeatability.
What is a load balancer? Give scenarios of each kind of balancer based on your experience.
A load balancer distributes incoming network traffic across multiple servers to ensure no single server is overwhelmed with too much traffic, resulting in improved responsiveness and availability of applications.
Scenarios:
Application Load Balancer (ALB):
- Scenario: Managing HTTP/HTTPS traffic for a web application with multiple microservices. Routes traffic based on content type to specific service.
Network Load Balancer (NLB):
- Scenario: Distributing TCP/UDP traffic for a high-performance application where low latency is crucial, like a multiplayer online game or a stock trading platform.
Classic Load Balancer (CLB):
- Scenario: Balancing both HTTP and TCP traffic for a legacy application where application-layer and network-layer balancing is combined.
Each type of load balancer is suited for specific use cases and offers unique benefits. It's essential to choose the right one based on application requirements.
What is CloudFormation and why is it used for?
CloudFormation is an AWS service that allows you to define and provision AWS infrastructure using templates written in JSON or YAML.
Why It's Used: It ensures consistent and repeatable infrastructure deployments, automates provisioning, and manages the entire lifecycle of resources.
Difference between AWS CloudFormation and AWS Elastic Beanstalk?
AWS CloudFormation is a service that automates the deployment and management of infrastructure resources, CloudFormation is focused on infrastructure management, and provides more flexibility and control over the resources being deployed. It allows for custom scripts and the more granular resource configuration.
AWS Elastic Beanstalk is a platform that simplifies the deployment and management of applications by providing a preconfigured platform. It is focused on application management and provides a preconfigured platform that simplifies the deployment and management of applications. It includes a variety of prebuilt components, such as load balancers and databases, which can be quickly and easily configured.
What are the kinds of security attacks that can occur on the cloud? And how can we minimize them?
Kinds of Security Attacks on the Cloud:
Phishing: Deceptive attempts to obtain sensitive information.
DDoS Attacks: Overwhelming services with traffic to cause denial of service.
Man-in-the-Middle: Intercepting and relaying communication between two parties.
API Vulnerabilities: Exploiting weak or misconfigured cloud APIs.
Data Breaches: Unauthorized access to data.
Malware and Ransomware: Malicious software that harms or exploits data.
How to Minimize Them:
Multi-Factor Authentication (MFA): Require multiple forms of verification.
Encryption: Encrypt data at rest and in transit.
Regular Audits: Check for vulnerabilities and misconfigurations.
Intrusion Detection and Prevention: Monitor and block suspicious activities.
Backup Data: Regularly back up data and test recovery procedures.
Educate Staff: Train employees about security best practices and threats.
Can we recover the EC2 instance when we have lost the key?
We can recover an EC2 instance when we have lost the key pair by creating a new key pair, stopping the instance, detaching the root volume, launching a new instance with the new key pair, attaching the root volume to the new instance, starting the new instance, and updating security groups and IP addresses as needed.
There is another way to recover an ec2 instance, if we have lost the key pair, we can create an AMI of the existing instance, and then launch a new instance. We can then select a new key pair by following the instance launch wizard.
What is a gateway?
A gateway is a network component that serves as a bridge or a transition point between different networks. It is used to facilitate communication and data transfer between networks that may have different communication protocols and addressing schemes. Gateways can be used to connect different cloud environments together.
What is the difference between Amazon Rds, Dynamodb, and Redshift?
Amazon RDS, DynamoDB, and Redshift are three different database services offered by Amazon Web Services (AWS) with different use cases and functionalities.
Amazon RDS (Relational Database Service): is a fully managed relational database service that makes it easy to set up, operate, and scale a relational database in the cloud. It supports popular database engines like MySQL, PostgreSQL, Oracle, and SQL Server. With RDS, you don't have to worry about managing the underlying infrastructure, including patching, backups, and replication. Instead, you can focus on building and optimizing your applications.
Amazon DynamoDB: on the other hand, is a fully managed NoSQL database service that provides fast and predictable performance with seamless scalability. It is designed to handle large amounts of unstructured data, such as documents, images, and social media content. DynamoDB is a serverless database, which means that you don't have to manage any servers or infrastructure.
Amazon Redshift: is a fully managed data warehouse service that makes it easy to analyze large amounts of data using SQL and business intelligence tools. It is designed for online analytical processing (OLAP) and supports big data analytics. Redshift is optimized for querying and analyzing large datasets and is based on a columnar storage format. It provides fast query performance and allows you to scale your cluster up or down depending on your needs.
Do you prefer to host a website on S3? What's the reason if your answer is either yes or no?
Hosting a website on S3 may be a good option for simple static websites that don't require server-side scripting or complex functionality. S3 charges based on the amount of storage used and data transferred, which can be significantly cheaper than using a traditional web hosting service.
However, for more advanced websites or applications, other web hosting services may be a better fit. S3 doesn't support server-side scripting, which means you can't use popular web technologies like PHP or ASP.NET. S3 also lacks some features that are typically included in web hosting services, such as domain name registration, email hosting, and database support.