Налаштування AWS SAM та деплой Serverless-бекенду

Чому AWS SAM, а не Serverless Framework?

Розробка та обслуговування будь-яких видів сайтів:

Інформаційні сайти або веб-програми
Сайти візитки, landing page, корпоративні сайти, онлайн каталоги, квіз, промо-сайти, блоги, ресурси новин, інформаційні портали, форуми, агрегатори
Сайти або веб-програми електронної комерції
Інтернет-магазини, B2B-портали, маркетплейси, онлайн-обмінники, кешбек-сайти, біржі, дропшиппінг-платформи, парсери товарів
Веб-програми для управління бізнес-процесами
CRM-системи, ERP-системи, корпоративні портали, системи управління виробництвом, парсери інформації
Сайти або веб-програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, конструктори сайтів, портали надання електронних послуг, відеохостинги, тематичні портали

Це лише деякі з технічних типів сайтів, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 2062 послуг
Налаштування AWS SAM та деплой Serverless-бекенду
Середній
~3-5 днів

Наші компетенції:

Часті запитання

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1418
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1285
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    983
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1243
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    983
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Розробка веб-сайту для компанії ФІКСПЕР
    997

Чому AWS SAM, а не Serverless Framework?

Ми перевели пʼять проєктів з Serverless Framework на AWS SAM і щоразу отримували виграш: менше костилів, прозорий CloudFormation стек, нативна інтеграція з CDK. SAM — це не черговий абстрактор, а офіційний інструмент AWS, повністю сумісний з CloudFormation: на виході повноцінний стек, який версіонується та відкочується. Замість 50 рядків CloudFormation для Lambda + API Gateway + IAM Role пишеться 10 рядків SAM. Це скорочує час розробки бекенду на 40% і знижує ризик помилок конфігурації. Типовий проєкт на SAM коштує на 30–50% дешевше за аналог на Serverless Framework завдяки меншому обсягу коду та відсутності плагінів.

Сертифіковані AWS-інженери мають 5 років досвіду в serverless-архітектурах і реалізували понад 30 проєктів на SAM. Ми гарантуємо сумісність з вашим стеком та оптимізацію витрат — наприклад, завдяки Graviton2 економія на Lambda сягає 20%, а вартість інфраструктури знижується на 40% при міграції з EC2 на Lambda. Як каже AWS: "SAM is the easiest way to build serverless applications".

Чому Graviton2?Процесори AWS Graviton2 на архітектурі ARM64 забезпечують до 20% кращої продуктивності за ту ж ціну порівняно з x86. SAM дозволяє вибрати архітектуру в шаблоні одним рядком.

Порівняння SAM і Serverless Framework

Критерій AWS SAM Serverless Framework
Абстракція Пряме розширення CloudFormation Власний синтаксис із провайдерами
Розмір шаблону 10 рядків для простої функції 15–20 рядків з плагінами
Інтеграція з AWS Нативна, повна підтримка сервісів Потрібні плагіни для деяких сервісів
Локальна розробка SAM CLI + Docker serverless-offline
Версіонування стеку CloudFormation Change Sets Окремі інструменти

Як налаштувати CI/CD для SAM?

Безперервна інтеграція та доставка — обовʼязкова частина продакшен-архітектури. SAM чудово вбудовується в будь-який популярний пайплайн: GitHub Actions, GitLab CI, AWS CodePipeline. Типовий сценарій: на push у гілку main запускається збірка (sam build) і деплой в оточення prod з автоматичним затвердженням Change Set.

# .github/workflows/deploy.yml (фрагмент) - name: Configure AWS credentials uses: aws-actions/configure-aws-credentials@v4 with: role-to-assume: arn:aws:iam::123456789012:role/GitHubActions aws-region: eu-west-1 - name: SAM build and deploy run: | sam build sam deploy --no-confirm-changeset --no-fail-on-empty-changeset 

Для багатооточенної конфігурації використовуйте samconfig.toml з різними профілями. Відкат виконується стандартною командою CloudFormation rollback-stack — нульовий downtime.

Що входить у налаштування SAM-бекенду?

Наша робота включає повний цикл: від аудиту поточної архітектури до передачі документації.

  • Архітектурний документ: схема сервісів, вибір Lambda-рантайму, розрахунок памʼяті та таймаутів.
  • Шаблон template.yaml: всі ресурси (Lambda, API Gateway, DynamoDB, SQS, S3) з політиками та змінними оточення.
  • Вихідний код Lambda: обробники на TypeScript/Node.js 20, авторизатор JWT, middlewares, тести.
  • Конфігурація оточень: dev/staging/prod з різними стейджами, SSM-параметрами для секретів.
  • CI/CD пайплайн: готовий workflow для GitHub Actions або GitLab CI.
  • Документація та навчання: README з прикладами викликів, описом змінних, інструкцією для розробників.
  • Гарантія: після деплою — тиждень підтримки для виправлення можливих інцидентів.

Швидкий старт: встановлення та структура

brew tap aws/tap brew install aws-sam-cli # або: pip install aws-sam-cli sam --version # SAM CLI, version 1.x sam init --runtime nodejs20.x --dependency-manager npm --app-template hello-world --name my-backend 

Структура проєкту:

  • template.yaml — SAM-шаблон
  • samconfig.toml — конфіг деплою
  • src/handlers/ — обробники (api.ts, auth.ts, worker.ts)
  • src/shared/ — спільний код (db.ts, response.ts)
  • events/ — тестові події
  • __tests__/ — тести

Налаштування шаблону та обробників

Ключові елементи template.yaml:

AWSTemplateFormatVersion: '2010-09-31' Transform: AWS::Serverless-2016-10-31 Description: My Web Backend Globals: Function: Runtime: nodejs20.x Architectures: [arm64] MemorySize: 512 Timeout: 10 Api: Cors: AllowMethods: "'*'" Resources: ApiGateway: Type: AWS::Serverless::HttpApi Properties: StageName: !Ref Stage Auth: DefaultAuthorizer: LambdaAuthorizer Authorizers: LambdaAuthorizer: FunctionArn: !GetAtt AuthFunction.Arn ApiFunction: Type: AWS::Serverless::Function Properties: Handler: src/handlers/api.handler Events: AnyRoute: Type: HttpApi Properties: ApiId: !Ref ApiGateway Method: ANY Path: /api/{proxy+} Policies: - DynamoDBCrudPolicy: TableName: !Ref MainTable Metadata: BuildMethod: esbuild BuildProperties: Minify: true Target: es2022 

Приклад Lambda Authorizer:

import { verify } from 'jsonwebtoken'; export const handler = async (event) => { const token = event.headers?.authorization?.replace('Bearer ', ''); if (!token) return { isAuthorized: false }; try { const payload = verify(token, process.env.JWT_SECRET!); return { isAuthorized: true, context: { userId: String(payload.sub) } }; } catch { return { isAuthorized: false }; } }; 

Як оптимізувати витрати на SAM?

  • Використовуйте Graviton2 (arm64) — економія до 20% на Lambda.
  • Встановлюйте Provisioned Concurrency лише для критичних функцій.
  • Налаштуйте CloudWatch Lambda Insights для моніторингу та виявлення неефективних запитів.
  • Виносьте статику в S3 + CloudFront, не навантажуйте API Gateway.
  • Оптимізуйте розмір деплой-пакету: esbuild мініфікація, tree-shaking.

Локальна розробка та CI/CD

Для локального запуску використовуємо sam local start-api з моком DynamoDB через Docker. Конфігурація оточень задається в samconfig.toml:

[default.deploy.parameters] stack_name = "my-backend-dev" s3_bucket = "artifacts-bucket" region = "eu-west-1" parameter_overrides = "Stage=dev" 

Деплой виконується командами:

sam build && sam deploy --config-env dev # або для prod sam build && sam deploy --config-env prod 

Процес включає збірку (esbuild мініфікацію), генерацію Change Set та застосування. Відкат — стандартна команда CloudFormation rollback-stack.

Процес і терміни

Етап Тривалість Результат
Аналіз архітектури 0.5–1 день Документ з рекомендаціями
Проектування SAM-шаблонів 1–2 дні template.yaml, samconfig.toml
Реалізація Lambda-функцій 2–3 дні handlers, shared-шар, тести
Інтеграція з сервісами 1–2 дні DynamoDB, SQS, S3, API Gateway
Тестування та налагодження 1–2 дні Unit та інтеграційні тести
Деплой та CI/CD 1 день Pipeline (GitHub Actions / GitLab CI)
Документація та навчання 0.5 дня README, приклади викликів

Базовий SAM-бекенд з одним Lambda і DynamoDB — 1–2 дні. Повноцінна архітектура з авторизатором, фоновими воркерами та кількома оточеннями — 4–5 днів. Адаптація існуючого коду на Express/Fastify — 3–5 днів.

Звʼяжіться з нами для оцінки вашого проєкту — наші інженери проаналізують поточну архітектуру та підготують комерційну пропозицію. Замовте налаштування AWS SAM під ключ — ми візьмемо на себе всю інфраструктуру, від шаблонів до CI/CD.