Skip to content
@vocaAppServerless

Remember Me

Remember Me

A serverless vocabulary memorization website built on AWS Lambda.

Application Image

Tech Stack

  • Frontend : React
  • Backend: : Node.js, AWS SAM CLI
  • Database : MongoDB
  • CI/CD : GitHub Actions
  • Cloud(AWS) : Lambda, API Gateway, S3, CloudFront, Route53, WAF, Parameter Store, Secrets Manager, Budgets, Chatbot
  • IaC : Terraform(HCP Terraform)
  • Logging : CloudWatch, Logstash, Elasticsearch, Kibana
  • ETC : Git/GitHub, Slack, Notion

Development

⚠️ Note: This repository is currently a demo version and is continuously being updated. Please refer to the Frontend GitHub repository, Backend GitHub repository for the latest updates.

🎬 Implementation Demo Video:

Frontent Dev Environment

React Project Setup and Running Guide

  1. Clone our project repository
git clone https://github.com/vocaAppServerless/frontend.git
  1. Install Dependencies and run Before starting the React project, you need to install the required dependencies. Run the following command:
npm install
  1. Start the Application
npm start

Backend

  1. Clone our project repository
git clone https://github.com/vocaAppServerless/backend.git
  1. Install AWS SAM CLI
  • Windows
    • Download the installer from the AWS SAM CLI Download Page.
    • Run the installer and follow the on-screen instructions.
    • Add the installation path (usually C:\Program Files\Amazon\AWSSAMCLI\bin) to your PATH environment variable if not automatically configured.
  • macOS
    • Install using Homebrew:
    brew install aws/tap/aws-sam-cli
  1. Build and Test API Gateway with Lambda To build the API Gateway and Lambda environment using SAM, run:
sam build --no-cached
sam local start-api --env-vars ./env.json --no-cached

env.json for SAM CLI

{
  "<lambda-name-1>": {
    "ENV_FIRST": "...",
    "ENV_SECOND": "///"
  },
  "<lambda-name-2>": {
    "ENV_FIRST": "...",
    "ENV_SECOND": "///"
  }
}

The added warning ensures users understand that environment variables are crucial for the proper functioning of Lambda functions and must be specified correctly in the env.json file.

Infra

HCP Terraform is integrated with a VCS (Version Control System) to provision and manage AWS resources through code. Using Infrastructure as Code (IaC) principles, all AWS resources are defined and versioned, ensuring consistency, repeatability, and ease of management.

Demo

WAF Rule & Slack Alarm Demo

HCP Terraform Demo

Architecture

Architecture

CI/CD - [Backend]

Backend CI/CD

CI/CD - [Frontend]

Frontend CI/CD

Logging

  • Leveraging CloudWatch Logs Subscription Filters to send log data to the ELK stack.
  • Using the Kibana dashboard, you can monitor logs by log group, status, and more, gaining insights into application performance and issues.

Logging Workflow

Kibana Dashboard

WAF Alarm

WAF Alarm Workflow

WAF Alarm

Budget Alarm

Budget Alarm Workflow

Budget Alarm

Popular repositories Loading

  1. voca_infra voca_infra Public

    voca app infra repository

    HCL 1

  2. frontend frontend Public

    TypeScript

  3. backend backend Public

    JavaScript

  4. lambda-cloudwatch-logs-subscription-filter lambda-cloudwatch-logs-subscription-filter Public

    cloudwatch logs에서 로그를 받아 필터링 후 logstash에 전송

    Python

  5. .github .github Public

Repositories

Showing 5 of 5 repositories

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…