DevOps
[ DevOps ] - AWS 기반 대규모 아키텍트 설계 - (개발) RabbitMQ Setup 및 이벤트 구독 테스트
이번에는 이저에 Django에서 했던 과정을 똑같이 Flask에 옮겨서 간단히 테스팅해보도록 하는 시간을 가져보도록 하겠습니다. /boss/consumer.py from pika import URLParameters, BlockingConnection # 파라미터 설정 params = URLParameters('amqps://vjmczupx:MOf1ZIEhCOj58rh-oSQd0Mrg_BpiVfUD@dingo.rmq.cloudamqp.com/vjmczupx') # 커넥션 ( 인스턴스에 접근 하는 것 ) connection = BlockingConnection(params) # 통로 ( 채널 )을 뚫어주는 것 channel = connection.channel() # 나는 order로 보낸 메세지만 받겠다..
[ DevOps ] - AWS 기반 대규모 아키텍트 설계 - (개발) RabbitMQ설치 및 설정 & Setup및 이벤트 발행 테스트
우선 RabbitMQ설정을 하기 위해 이를 설정하기 쉽게 도와주는 CloudAMQP에 가입하고 인스턴스 하나를 만들도록 하겠습니다. 여기서 지역은 ap-northeast-2로 바꾸어주어 하나 생성했습니다. 실습 이제 본격적으로 RabbitMQ의 pika를 이용해서 publisher와consumer를 만들어서 브로커를 통해서 이들간의 메세지 전달을 간단히 테스팅해보는 시간을 가져보도록 하겠습니다. RabbitMQ는 AMQP(Advanced Message Queuing Protocol)을 구현되었습니다. AMQP는 queue, exchange, binding이라는 세가지 개념으로 구성됩니다. - queue는 메세지를 보관하고 소비자가 메시지를 선택하기를 기다립니다. - exchange는 게시자가 새 메시지를..
[ DevOps ] - AWS 기반 대규모 아키텍트 설계 - (개발) 도메인 서비스 구현 - Flask, Model + Migrate
바로 이전에 등록한 docker-compose.yml을 실행시켜보도록 하겠습니다. 그러면 8001번 포트와 컨테이너의 5001번 포트와 연결시켜 주었기 때문에 아래와 같이 8001번 포트에서 Flask로 접속이 잘 됩니다. 이제 본격적으로 Flask에 Model을 만들고 migrate까지 해 보겠습니다. 이전에 flask_migrate, flask_script를 사용하는 과정에서 Flask 2.x.x을 사용하면 컨테이너에서 경로문제가 생기므로 일단 deprecated된 Flask 1.1.2버전을 사용하여 해결하도록 하겠습니다. 그리고 이를 하기 위해서 jinja2 2.1.3과 itsdangerous 2.0.1을 명시적으로 requirements.txt에 작성하고 reinstall을 해주었습니다. ( 1...
[ DevOps ] - AWS 기반 대규모 아키텍트 설계 - (개발) 도메인 서비스 구현 - Flask, Docker
이번에는 Flask로 독립적인 서비스를 하나 더 만들어 보겠습니다. Flask는 Django보다 더 쉽지만, 나중에 번거로운 작업을 해야할 때가 많습니다. 각자의 장단점이 뚜렷하게 있는 것이죠 이제 본격적으로 기본적인 Flask틀을 짜고 Dockerfile, docker-compose.yml파일까지 작성해서 기본 페이지를 만들어 보도록 하겠습니다. /requirements.txt Flask == 2.1.0 Flask-SQLAlchemy == 2.5.1 SQLAlchemy == 1.3.20 Flask-Migrate == 2.5.3 Flask-Script == 2.0.6 Flask-Cors == 3.0.9 requests == 2.25.0 mysqlclient == 2.0.1 pika == 1.1.0 jin..