본문 바로가기

devops34

EC2 Ansible로 환경구성 자동화 Ansible은 왜 사용할까? Ansible은 ssh를 이용하는 프로비저닝 자동화 도구입니다. Ansible은 ssh 접속을 통해 수십대, 수백대의 원격 서버에 접속해서 동일한 프로비저닝 작업을 동시에 수행할 수 있는 훌륭한 도구입니다. Ansible의 대표적인 장점이라면 아래와 같이 꼽을 수 있을 것 같습니다. 에이전트가 필요 없음 yaml 언어로 쉽게 작성할 수 있는 플레이북 python으로 개발됨 Ansible은 원격 서버에 에이전트를 설치하지 않아도 Ansible에서 제공하는 기본 모듈만으로 정말 많은 작업을 수행할 수 있습니다. 그리고 비교적 쉬운 yaml 언어를 사용하기 때문에 Puppet과 같은 다른 도구에 비해 접근성이 매우 높습니다. 또한 python으로 개발되어 있기 때문에 만약 모듈을.. 2022. 12. 9.
MSA 장애 예방을 위한 Circuit Breaker(feat. Spring) 1. Test Source Code 1.1 main application @EnableCircuitBreaker Circuit breaker 사용을 위하여 EnableCircuitBreaker Annotation 추가합니다. @EnableHystrixDashboard HystrixDashboard 사용을 위하여 @EnableHystrixDashboard Annotation 추가합니다. 1.2. Service Circuit breaker 적용하기 위해서 실 서비스 메서드 위에 @HystrixCommand(fallbackMethod = “getFallback”) Annotation 정의하고, Service 장애 시 호출한 fallback 메서드는 getFallback 메서드로 지정합니다. 앞서 정의한 Fal.. 2022. 12. 2.
Circuit Breaker를 이용한 MSA 장애 예방 MSA (Micro Service Architecture) 의 문제점 MSA를 운영 하다 보니 어느 한 서버의 장애가 전체 장애로 확산이 되어 더 큰 문제가 되는 경우를 많이 경험할 수 있습니다. 이를 해결하기 위해 각 마이크로 서비스 간 전파 차단기 역할을 하는 Circuit Breaker에 대해 알아보고자 합니다. Circuit Breaker 의 역할 마이크로 서비스 사이에서 서비스의 상태를 확인 하여 정상일 때 API를 전달하고, 정상이 아님을 감지 했을 때 API 를 전달 하지 않고 쓰레드들이 응답을 기다리지 않도록 다른 메세지로 답을 하여 장애가 전파 되지 않도록 해주는 역할을 합니다. MSA 에서는 일반적으로 다른 서비스를 호출하여 데이터를 검색하며 Downstream 서비스가 다운될 가능성이.. 2022. 12. 2.
[Python 기초] 딕셔너리 1.딕셔너리 만드는 방법 기본 딕셔너리 구조 {Key1:Value1, Key2:Value2, Key3:Value3, ...} 만들어보기 dic = {'name':'Errormin', 'phone':'1011212334', 'birth':'12123'} 위에서 Key는 각각 'name', 'phone', 'birth'이고, 각각의 Key에 해당하는 Value는 'Errormin', '1011212334', '12123'이 된다. 딕셔너리 dic의 정보 keyvalue name Errormin phone 1011212334 birth 12123 출력해보자 dic = {'name':'Errormin', 'phone':'1011212334', 'birth':'12123'} print(dic) //출력 내용 : .. 2022. 7. 20.
github-action과 aws codedeploy를 이용해 ec2에 배포하기 안녕하세요! Administrator팀입니다. 지난 포스트까지 git과 github가 무엇인지, 어떻게 사용하는지에 대해서 알아봤습니다. 오늘은 github-action과 aws codedeploy를 이용해 aws ec2에 배포하는 과정에 대해 알아보겠습니다. Github Actions는 Github 저장소를 기반으로 Github에서 제공하는 Workflow 자동화 도구 입니다. Workflow는 Github Repository에 있는 소스들의 build, test, release, deploy 을 flow에 정의된 순서대로 실행 할 수 있도록 지원합니다. 이 Workflow는 설정된 Runner 위에서 실행이 되며 Github에서 두 종류의 Runner를 제공합니다. Github-hosted Runne.. 2022. 7. 20.
Github의 이해 3 안녕하세요. BTC_조롱이입니다! 오늘도 Github를 이해하는 시간을 가져보겠습니다! 이전까지 commit이 어떻게 동작하고 branch와 어떤 관계가 있는지 알아봤습니다. branch는 여러명의 개발자들이 하나의 commit을 기준으로 별도의 작업을 각각 진행 하기 위해서 만드는 것이고, 이때 어떤 commit으로 부터 작업할 것인지의 기준으로 branch 가 생성 됩니다. 그럼 이제 어떻게 각각의 작업된 branch를 하나로 잘 합칠 수 있는지 알아 보겠습니다. Merge 각각의 작업된 branch를 합치는 기능인 merge에 대해서 알아보겠습니다. git에서 할 수 있는 merge는 크게 두가지가 존재합니다. Fast-forward 이전 github 이해하기-2에서 실습했던 것에서 연속으로 진행해.. 2022. 7. 15.
Github의 이해 2 안녕하세요! BTC_조롱이 입니다. 오늘도 깃허브에 대한 이해를 늘리기 위해 조롱조롱 포스팅을 해볼게요! 처음 github을 접하고 branch를 생성하고 작업을 하고 있을 때는 당연히 현재 작업하고 있는 공간을 복사해서 하나의 새로운 작업 공간으로 만드는 것이라고 생각했었습니다. 하지만 실제 github의 branch는 이렇게 동작하고 있지 않았습니다. 여기서 github branch가 어떻게 생성 되는지 그리고 어떻게 동작 하는지 알아보도록 하겠습니다. Commit을 조금 더 이해하기 이전의 github 이해하기-1에서 commit은 소스 코드의 변경사항을 포함한 전체를 하나의 snapshot으로 만든다는 것을 알았습니다. 우선 테스트 할 디렉토리를 하나 만들고 readme.md파일 하나를 추가해 봅.. 2022. 7. 12.
Github의 이해 1 안녕하세요. BTC_조롱이 입니다! 이번에는 협업을 위해 빠질 수 없는 툴, Github에 대한 포스트입니다. 바로 시작할게요! Github에서 Commit 이란? 우리가 사용하는 Github-Repository에서 어떤 변경 사항을 만들었을 때 이것을 추가하는 것을 add라고 한다면, 이렇게 add된 부분을 하나의 버전으로 만드는 것을 commit 이라고 합니다. Github과 SVN의 차이 10년 전만 해도 개발 전반의 소스 버전 관리는 SVN(SubVersion)을 이용 했었을 것입니다. 하지만, Github이 나오고 요즘의 대부분 오프소스나 사내의 소스 버전 관리는 SVN을 잘 사용하지 않게 되었습니다. 이 두 버전 관리 시스템은 큰 차이가 있는데, 바로 바뀐 것만 저장(delta)하는 것이 아니.. 2022. 7. 1.