AndreasBlaze Technical Documentation
website·Indexed 31 days ago
https://andreasblaze.github.ioA comprehensive collection of technical guides and notes covering AWS (S3, EC2, Route 53, Lambda, ELB), Kubernetes (EKS, Helm, OOMKilled troubleshooting), Docker architecture and Compose, Linux system administration, networking tools like nmap and cURL, and Terraform debugging.
What's inside AndreasBlaze Knowledge Base
- Docker Compose is a tool for defining and running multi-container Docker applications. It uses a YAML file to configure application services, networks, and volumes, allowing all components to be created and started with a single command.
Overview of Amazon EC2 Core Components
Amazon EC2 is an Infrastructure as a Service (IaaS) solution consisting of the following primary components:
- EC2 Instance: The virtual machine itself.
- EBS Volumes: Virtual disks for data storage.
- ELB (Elastic Load Balancer): Distributes incoming network traffic across multiple instances.
- ASG (Auto Scaling Group): Manages the scaling of instance groups.
Overview of Amazon Relational Database Service (RDS)
Amazon RDS is a managed service for relational databases that use Structured Query Language (SQL). It handles database deployment, patching, backups, and health monitoring, removing the need for manual management on EC2. By default, users cannot connect to RDS instances via SSH. Supported database engines include: Postgres, MySQL, MariaDB, Microsoft SQL Server, IBM DB2, and Aurora (AWS proprietary).Overview of AWS Database Service Types
AWS provides a variety of database and storage services categorized by their data model and use case:
- SQL (RDBMS): RDS, Aurora (ideal for complex joins).
- NoSQL: DynamoDB (JSON), ElastiCache (key/value), Neptune (graphs), DocumentDB (MongoDB compatible), Keyspaces (Cassandra compatible).
- Object Store: S3 (large objects), Glacier (archives/backups).
- Data Warehouse: Redshift (OLAP), Athena, EMR (Analytics/BI).
- Search: OpenSearch (JSON, free text/unstructured search).
- Graphs: Amazon Neptune (relationship mapping).
- Ledger: Amazon Quantum Ledger Database.
- Time series: Amazon Timestream.
Overview of Btrfs, EFS, NFS, and NTFS
Other common file systems and protocols include:
- Btrfs (B-tree File System): Focuses on reliability and scalability. Features include snapshots, multi-device pooling, built-in RAID support, and Copy-on-Write (COW).
- EFS (Elastic File System): A managed, auto-scaling file storage service for AWS EC2 instances. It has higher latency than local systems like Ext4 or XFS.
- NFS (Network File System): A distributed protocol that allows network-based file access as if the files were local; used for sharing files across multiple systems.
- NTFS: The default file system for Windows.
Configure and use DNS A records
An A record (Address record) maps a domain name to an IPv4 address. It is the most fundamental DNS record type.
Key details:
- Root Domain: In configuration files, the
@symbol typically represents the root domain. - TTL (Time to Live): Defines how long a record is cached by resolvers before a new lookup is required. The default TTL for A records is often 14,400 seconds (240 minutes).
- Round Robin Load Balancing: A domain can have multiple A records pointing to different IP addresses to distribute traffic across multiple servers hosting identical content.
| example.com | record type: | value: | TTL | | ----------- | ------------ | --------- | ----- | | @ | A | 192.0.2.1 | 14400 |- Root Domain: In configuration files, the
Understand the role of Site Reliability Engineering (SRE)
SRE focuses on maximizing system reliability, scalability, and efficient incident management. Unlike product development, SRE concentrates on how to build and deploy products while maintaining system availability and performance. Key availability metrics include:
- Response Time: Speed of server response to user requests.
- Page Load Time: Total time for a page to fully load and render in the browser.
- Uptime/Downtime: Percentage of time the site is operational.
- Error Rate: Frequency of errors (e.g., 404, 500).
Understand the Software Development Life Cycle (SDLC) phases
The Software Development Life Cycle (SDLC) consists of several key stages to ensure software quality and project alignment:
- Planning: Establishing expectations, defining general goals, estimating costs, and creating a detailed project schedule.
- Design: Analyzing requirements to determine the best technical solutions, selecting technologies, choosing development tools, and planning integration into existing IT infrastructure.
- Implementation: Writing the actual code by breaking down requirements into smaller, daily coding tasks.
- Testing: Using a combination of automated and manual testing to identify bugs and verify that the software meets customer requirements. This often happens in parallel with implementation.
- Deployment: Moving the final build from a non-production environment (build or test environment) to the production environment. This involves packaging, environment configuration, and installation to ensure zero disruption for end-users.
- Maintenance: Fixing bugs, resolving customer issues, managing software changes, and monitoring system performance, security, and user experience to identify future improvements.
Interact with the Linux Kernel via the Shell
The shell acts as an interface that abstracts the internal functions of the kernel from the user. There are two primary types of shells:
- Command Line Interface (CLI): A text-based interface (typically via a terminal) where users enter specific commands to execute tasks.
- Graphical User Interface (GUI): A visual interface where users trigger processes through graphical elements, and output is displayed in windows.
Conceptual overview of container isolation and layers
Containers achieve isolation and resource management through several Linux kernel features:
- Namespaces: Provide isolation for different system resources, including
pid(process isolation),net(network stack),ipc(inter-process communication), andmount(OS mounting). - Control Groups (cgroups): Enforce resource limits on containers, such as CPU and memory constraints.
- UnionFS: Used to create container blocks.
- Images: Read-Only (RO) templates stored in layers.
- Containers: An instance of an image with an added writable layer.
- Namespaces: Provide isolation for different system resources, including
Manage user identities with Cognito User Pools
Cognito User Pools act as a serverless user database for web and mobile apps. They handle user registration, group management, password resets, email/phone verification, MFA, and federated identities (Facebook, Google, SAML). They can be integrated with API Gateway (via token passing) and Application Load Balancer (via listeners and rules).Connect on-premises data centers to multiple VPCs using AWS Direct Connect
To connect an on-premises data center to multiple VPCs across different regions, use a Direct Connect Gateway. The architecture involves establishing a Direct Connect connection, creating a private Virtual Interface (VIF) to the Direct Connect Gateway, and then linking that gateway to Virtual Private Gateways (VPG) in each target region via additional private Virtual Interfaces.