Какие ключевые сервисы и технологии внутри AWS вы знаете?

«Какие ключевые сервисы и технологии внутри AWS вы знаете?» — вопрос из категории Облачные платформы, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

AWS предлагает обширный портфель сервисов. С точки зрения DevOps я активно работаю со следующими ключевыми группами:

1. Вычислительные ресурсы (Compute):

  • EC2 (Elastic Compute Cloud): Виртуальные серверы. Использую для управления инстансами через Auto Scaling Groups, Launch Templates с AMI.
  • Lambda: Бессерверные функции. Настраиваю триггеры от S3, API Gateway, CloudWatch Events.
  • ECS/EKS (Elastic Container Service/Kubernetes Service): Оркестрация контейнеров. Разворачивал кластеры EKS, настраивал Fargate для serverless-контейнеров.

2. Хранилище (Storage):

  • S3 (Simple Storage Service): Объектное хранилище. Настраивал lifecycle policies, версионирование, статический хостинг и политики доступа (Bucket Policies, CORS).
  • EBS (Elastic Block Store): Блочные тома для EC2. Работал с snapshots для резервного копирования.
  • EFS (Elastic File System): Сетевая файловая система NFS для совместного доступа между инстансами.

3. Сети и доставка контента (Networking & CDN):

  • VPC (Virtual Private Cloud): Фундамент сетевой изоляции. Создавал публичные/приватные подсети, NAT Gateways, VPC Peering, Transit Gateway.
  • ALB/NLB (Application/Network Load Balancer): Маршрутизация трафика. Настраивал target groups, health checks, SSL termination.
  • CloudFront: CDN. Интегрировал с S3 и Lambda@Edge для кастомизации ответов.
  • Route 53: DNS-сервис. Настраивал хостинг зон, различные типы записей (A, CNAME, Alias) и health checks для failover.

4. Управление инфраструктурой как код (IaC) и CI/CD:

  • CloudFormation: Декларативное описание всей инфраструктуры в YAML/JSON. Использую nested stacks, Change Sets.
  • AWS CDK (Cloud Development Kit): Определение инфраструктуры на Python/TypeScript, что затем синтезируется в CloudFormation.
  • CodePipeline, CodeBuild, CodeDeploy: Полный managed CI/CD пайплайн. Настраивал сборку Docker-образов в CodeBuild и деплой на ECS через CodeDeploy.

5. Мониторинг и логирование (Monitoring & Logging):

  • CloudWatch: Метрики, алерты, дашборды. Настраивал алерты на CPUUtilization, статус Health Checks. Использую Logs Insights для анализа логов из VPC Flow Logs, Lambda.
  • CloudTrail: Аудит всех API-вызовов в аккаунте. Включал для соответствия требованиям безопасности.

Пример CloudFormation для создания безопасного VPC с публичной и приватной подсетями:

AWSTemplateFormatVersion: '2010-09-09'
Resources:
  MyVPC:
    Type: AWS::EC2::VPC
    Properties:
      CidrBlock: 10.0.0.0/16
      EnableDnsSupport: true
      EnableDnsHostnames: true
      Tags:
        - Key: Name
          Value: Production-VPC

  PublicSubnet:
    Type: AWS::EC2::Subnet
    Properties:
      VpcId: !Ref MyVPC
      CidrBlock: 10.0.1.0/24
      MapPublicIpOnLaunch: true
      AvailabilityZone: !Select [0, !GetAZs '']

  InternetGateway:
    Type: AWS::EC2::InternetGateway

  VPCGatewayAttachment:
    Type: AWS::EC2::VPCGatewayAttachment
    Properties:
      VpcId: !Ref MyVPC
      InternetGatewayId: !Ref InternetGateway

  PublicRouteTable:
    Type: AWS::EC2::RouteTable
    Properties:
      VpcId: !Ref MyVPC

  PublicRoute:
    Type: AWS::EC2::Route
    Properties:
      RouteTableId: !Ref PublicRouteTable
      DestinationCidrBlock: 0.0.0.0/0
      GatewayId: !Ref InternetGateway

  PublicSubnetRouteTableAssociation:
    Type: AWS::EC2::SubnetRouteTableAssociation
    Properties:
      SubnetId: !Ref PublicSubnet
      RouteTableId: !Ref PublicRouteTable