ݺߣ
Submit Search
당근마켓에서 IaC경험
•
1 like
•
1,326 views
용진 조
Follow
AWSKRUG Architecture 세미나 22회차 발표자료 당근마켓의 IaC를 살짝 엿보면서 라이트닝토크를 위한 발표자료입니다.
Read less
Read more
1 of 45
Download now
Download to read offline
More Related Content
당근마켓에서 IaC경험
1.
당근당근마켓에서 IaC경험 Ochestration 플랫폼개발팀 플랫폼개발팀 조용진 jin@daangn.com
2.
당근마켓 플랫폼팀에서 일을 하게
되었다.
3.
플랫폼팀은 모든 구성원들이 서비스
개발에만 집중할 수 있는 환경을 구성하는 일을 한다.
4.
반복되거나 생략할 수
있는 것들을 자동화를 하며, 서비스의 안정성을 높이는 인프라작업을 한다.
5.
그런 당근마켓에서는
7.
달라 이 친구들이랑 달라요.
달라지고 있어요!
8.
응 지표 굳
9.
https://platum.kr/archives/111845?fbclid=IwAR1-kYuqYooHkc59ehatZ58C529EUPzBmVAdTX1GQmIPfM_Z945lErZ618w 응 지표 굳
13.
IaC 말 그대로 인프라를
Code로 옮겨적어 관리하는 것 Infrastructure as Code
14.
사용하고 있는 도구들 Vagrant PackerAnsible Docker Terraform
15.
당근마켓의 IaC 당근마켓 인프라는
95% Code로 관리되고 있음 5%는 AWS Parameter Store 및 CircleCI 환경변수
16.
당근마켓의 IaC EC2의 AMI를
만들어 쓰기도 함 (아직 ElasticSearch같은 Storage만 AMI로 구웠음) 직접 Dockerize하거나 Official Dockerfile을 ECS로 띄우기도 함
17.
Vagrant PackerAnsible || AWS AMI
18.
Dockerfile || AWS ECR
19.
EC2
20.
“운영DB로 테스트하고 싶어요.” “바로
스냅샷 뜨지 말고 bastion Proxy 설정잡아놓은 terraform script한게 있으니 새로 올려서 써요.” “저 ElasticSearch서버 셋팅 어떻게 되어있는지 보고싶어요” “Ami-builder repo.에 보면 ansible과 packer로 provisioning script작성되 어있는데 그거 한번 볼래요?” “혹시 https연결 & htpasswd셋팅 되어있는 nginx Dockerfile있어요?” “dockerhub에 올려놓은게 있는데 그거 써요. 그리고 Htpasswd넣을꺼면 ECR에 올려놓고 쓰도록 해요” “테스트 다 끝났으면 올려놓은 인프라 다 지워놓고 퇴근해요” “넹. (terraform destroy, vagrant destroy, packer ….) ”
21.
“인프라의 재 사용성은
거의 마약 수준임” “스크립트로 인프라의 개요를 파악할 수 있다.” “생성 및 파괴가 깔끔함, 클린 인스톨러에게는 개운함을 선사함”
22.
IaC + CI/CD || 배포전략
23.
Source Code IaC +
CI/CD = 배포전략 Test Build DockerizeInstall v1 v2 v3 v5v4 v6 IDLE상태로 ECR(Private)과 Dockerhub(public)에 존재함
24.
Commit Hash Commit Hash
25.
1. 배포를 할지,
말지 2. 배포를 언제 할지? 3. 배포를 어떤 방식으로 할지? 배포전에 해야할 고민
26.
“오늘 점심 까나리”
27.
https://m.blog.naver.com/muchine98/220262491992 - 너굴님의
마틴파울러 carany release 번역
29.
Load Balancer Target
Group v1 v1 v1v1 v1 v1 v1 v1 Round Robin
30.
Load Balancer Target
Group v1 v1 newv1 v1 v1 v1 v1 Round Robin Edge 12.5% If (Test Good)
31.
Load Balancer Target
Group new new newnew new new new new Round Robin
32.
물론 이 배포
시나리오가 전부 IaC로 만들어진건 또 아님 Slack Bot이 있고, 배포하는 프로그래밍 소스코드가 작성되어있다.
33.
당근마켓의 뉴비된 입장에서는 “우와..
저걸 어떻게 했냐….” 싶던 찰나에
34.
드디어 나에게 일이
떨어졌다.
35.
“@Jin, ElasticSearch Version
올려주세요ĝ
36.
갵ӗ살
37.
???!!갵ӗ살
38.
- 예고편 -
39.
“그래서 데이터 백업은
어떻게 뜨는데?!” “뭐? 형태소 분석기 mecab-kr이 사망했어?” “뭐…. 사전업데이트를 하는데 껏다켜야한다고?” “2.X에서 6.x에서 바뀐게 뭐이리 많은데!!!!” “아니 쒸.. 지금 6.7.2 이미지 다 만들어 놓으니까 인증 기능이 무료로 풀린 6.8이 어제 나왔다고?”
40.
“후.. 그냥 AWS
ElasticSearch 쓸까요….?”
42.
끝
44.
이야기 하고싶은 것(사실
궁금한 것..) 1. ECS에서 Fargate와 EC2 2. ElasticSearch Container로 올리면.. Storage문제는?
45.
이야기 하고싶은 것(사실
궁금한 것..) 3. Terraform을 사용하는데, terraform.state 팀원들 마다 다 다른 상태로 겹침 Terraform관리 전략…. ? Dropbox...?
Download