확장 가능하고 가용성이 높은 코드형 인프라 관리형 웹 앱을 AWS에 배포

확장 가능하고 가용성이 높으며 코드형 인프라 관리형 3계층 웹 애플리케이션을 AWS에 배포하는 방법을 알아보십시오.



이 게시물에서는 Crystalnix의 Omaha Server를 예제 웹 애플리케이션으로 사용하지만 AWS에 배포하려는 다른 웹 앱에도 동일하게 적용해야 합니다.

오마하 서버란?

An open-source implementation of Google’s Omaha update protocol, which for example powers Chrome’s automatic update mechanism. Omaha server is used by organizations large and small for products that require sophisticated update logic and advanced usage statistics.
omaha-consulting/omaha-server



기술


  • AWS CloudFormation
  • 아마존 VPC
  • AWS ALB
  • Amazon ElastiCache(redis)
  • Amazon RDS(postgres)
  • AWS S3
  • EC2 시작 유형이 포함된 Amazon ECS
  • 및 도커.

  • 건축물



    다음은 우리가 작업할 높은 수준의 아키텍처 다이어그램입니다.




    시작하고 재미있게 학습해 봅시다!

    1. Github에서 리포지토리 복제



    $ git clone https://github.com/tuladhar/omaha-server-on-aws
    


    툴라다르 / 오마하-서버-온-aws


    AWS에서 확장 가능하고 가용성이 높은 코드형 인프라 관리형 웹 애플리케이션을 배포하는 방법을 알아보세요.





    2. AWS 자격 증명 및 환경 변수 설정



    $ export AWS_PROFILE=REPLACE_ME
    $ export AWS_REGION=us-east-1
    
    $ export ENV_LABEL=omaha
    $ export ENV_TYPE=nonprod
    

    3. 스택 배포: Virtual Private Cloud(VPC)



    그림: 인터넷 및 NAT 게이트웨이가 있는 AZ1 및 AZ2에 프라이빗 및 퍼블릭 서브넷이 있는 VPC

    $ export SECOND_OCTET=254
    
    $ make -C 01_NETWORK/01_VPC create-stack
    

    그림: CloudFormation 스택

    4. 스택 배포: 다중 AZ 공용 로드 밸런서



    그림: 퍼블릭 서브넷 AZ1 및 AZ2에 배포된 공개적으로 연결 가능한 로드 밸런서

    $ make -C 01_NETWORK/02_ALB create-stack
    

    그림: CloudFormation 스택

    5. 스택 배포: 다중 AZ ElastiCache Redis 클러스터



    그림: 다중 AZ ElastiCache Redis 클러스터

    $ make -C 02_DATABASE/01_REDIS create-stack
    

    그림: Redis CloudFormation 스택

    6. 스택 배포: 읽기 복제본이 있는 다중 AZ RDS(postgres)



    그림: 읽기 복제본이 있는 다중 AZ RDS(postgres)

    $ make -C 02_DATABASE/02_RDS create-stack
    

    7. 스택 배포: S3 버킷



    $ make -C 03_S3 create-stack
    

    그림: S3 버킷 CloudFormation 스택

    8. 스택 배포: ECS 클러스터



    그림: EC2 시작 유형으로 ECS 클러스터 배포

    $ make -C 04_COMPUTE/01_ECS/01_CLUSTER create-stack
    

    그림: Cloudformation 스택

    9. 스택 배포: Omaha Server(Django App) 컨테이너를 실행하는 ECS 서비스



    그림: 앱 배포

    $ make -C 04_COMPUTE/01_ECS/02_SERVICE create-stack
    

    그림: CloudFormation 스택

    데모: Omaha 서버 대시보드



    그림: Omaha 서버 대시보드

    결론



    그리고 그게 다야. 즐겁게 읽고 새로운 것을 배웠기를 바랍니다.

    무엇 향후 계획?
  • SSM을 사용하여 RDS 자격 증명을 저장하고 CloudFormation 템플릿에서 하드 코딩을 방지합니다.
  • 상태 비저장 및 상태 저장 리소스에 대한 VPC 서브넷을 분리합니다. .

  • 👏를 누르고 더 멋진 블로그 게시물을 팔로우하는 것을 잊지 마세요.

    좋은 웹페이지 즐겨찾기