Outsider's Dev Story

Stay Hungry. Stay Foolish. Don't Be Satisfied.

[Book] 테라폼 설치에서 운영까지

테라폼 설치에서 운영까지
책 표지 테라폼 설치에서 운영까지 - ⭐⭐⭐
예브게니 브릭만 지음
장경철 역
제이펍

2017년 3월에 나온 Terraform: Up & Running의 번역서이다. 이 원서도 다른 책 대비 꽤 일찍 나온 책으로 기억하는데 내가 아는 선에서는 현재 이 번역서가 국내에서 유일한 테라폼 관련 책이다.

TerraformHashiCorp에서 만든 Infrastructure as Code(IaC) 도구로 다양한 인프라스트럭처의 리소스를 코드로 관리할 수 있게 해주어 상태나 히스토리 파악을 쉽게 할 수 있게 해주는 도구이다. 나는 2016년 정도부터 관심을 가지게 되어 계속 Terraform을 사용하는 중이다.

책 소개에 나온 대로 이 책은 Terraform 입문서이다. 이미 Terraform을 어느 정도 사용할 수 있으면서도 책이 나왔다는 반가움에 읽었지만, 책의 대상 독자는 Terraform이 뭔지 잘 모르거나 이제 막 사용하려고 하는 입문자이고 이미 업무 등 다양하게 읽고 있다고 한다면 대부분은 알고 있는 내용일 것으로 생각한다. 그래서 책 내용도 테라폼이 무엇이고 어디에 써야 하고 어떻게 써야 하는지 기본적인 내용에 집중하고 있다.

사실 Terraform 자체의 사용법은 간단하다고 생각하지만 실제로 AWSGCP 등에서 사용하는 복잡한 인프라스트럭처를 다루기 때문에 여기서 어려움을 많이 겪게 된다. AWS나 GCP를 추상화해주어 사용하기 편하게 해주는 것이 목적의 도구는 아니므로 사용하려면 AWS와 GCP 등 클라우드 서비스에 대한 이해도 상당히 있어야 한다. 당연하게도 이 책은 AWS를 사용해서 예제가 구성되어 있지만, AWS의 각 리소스에 대한 설명은 간단히만 언급하기 때문에 이 책을 보기 전에 이미 AWS를 어느 정도 알고 있는 것은 도움이 되리라 생각한다. Terraform에 집중하고 있어서 복잡한 AWS 리소스를 사용하지는 않지만, AWS를 전혀 사용해 보지 않았다고 이해하기가 어려울 수도 있다고 생각한다.

물론 Terraform에서 필요한 기본적인 내용은 다 다루고 있다. 클라우드에서 리소스를 만드는 방법부터 가장 중요한 상태관리 방법과 다양하게 만들다 보면 고민하게 되는 모듈의 사용법과 다양한 팁 등을 다루고 있다. Terraform 표현식에는 아주 많은 내용이 있는데 이를 다 다루지는 않고 count, 조건별 생성 등 초기에 고민할만한 부분만 다루고 있다.

Terraform에 관해 들어봐서 궁금한데 어디서 시작할지 모르는 사람에게 적당한 책으로 보인다. 그리고 원서는 오래되었지만 번역해 주신 분이 Terraform v0.11 버전에 호환되도록 수정해 주신 것으로 보인다. 물론 지금은 v0.12가 나와서 이 책을 지금 보려면 v0.11을 설치해서 따라 해 보는 것을 추천하고 v0.12에서 가장 달라진 점은 HCL의 문법이기 때문에 이후 테라폼 0.12 베타 1 출시 및 개선된 HCL 문법 살펴보기 등의 글을 읽어보면 더 쉽게 이해할 수 있을 것으로 보인다.

2019/06/24 08:26 2019/06/24 08:26

기술 뉴스 #128 : 19-06-15

웹개발 관련

  • 주니어 개발자가 반응형 레이아웃 리팩토링한 썰.txt : 360 파노라마 뷰어를 반응형 웹사이트로 개편한 과정을 설명한 글이다. 기존에 제대로 관리되지 않던 페이지의 분기점을 정해서 모바일과 구분한 반응형으로 만들었지만 태블릿 형태의 디바이스를 고려하지 않아서 모든 디바이스를 지원할 수 있도록 하면서 분기점을 최소화해서 반응형 레이아웃을 설계했다고 한다.(한국어)
  • Get Started with Flutter : 앱 프레임워크인 Flutter의 사용방법을 설명하는 글로 첫 글에서는 Flutter 환경 설정에 관해서 설명하고 있고 Layouts in Flutter에서는 Flutter의 핵심 개념인 위젯을 조합해서 화면을 구성하는 방법을 설명한다.(한국어)
  • WCAG 2.1 새로운 성공 기준 : 웹 콘텐츠 접근성 가이드라인인 WCAG 2.1 권고안이 6월 5일 공개되었는데 여기서 새로 추가된 성공 기준을 번역하고 그 의미를 추가 설명하고 있다. 웹 접근성을 지키려고 한다면 2019년에 새로 염두에 두어야 할 부분을 이해할 수 있다.(한국어)

그 밖의 프로그래밍 관련

  • SwiftUI : Apple에 WWDC에서 애플 플랫폼의 UI를 선언적으로 만들 수 있는 SwiftUI를 발표했다. SwiftUI를 이용하면 이전보다 훨씬 편하고 빠르게 UI를 구성할 수 있어서 많은 개발자들이 기대하고 있고 Xcode11에는 SwiftUI로 UI를 만들 수 있는 새 디자인 도구가 포함되었다.(영어)
  • Docker Best Practices : 뱅크샐러드를 운영하는 레이니스트에서 Kubernetes, AWS ECS로 서버를 운영하면서 그동안 Docker에서 염두에 두어야 할 팁을 정리한 글이다. WORKDIR 사용의 장점, CMD 명령어에서 exec 형식으로 사용했을 때의 좋은 점, 패키지의 의존성 관리와 불필요한 파일을 넣지 않기 위한 .dockerignore 파일의 사용 등을 추천하고 있다.(한국어)
  • Building Sentry: Symbolicator : iOS나 Android 같은 환경에서는 빌드할 때 코드가 최적화되기 때문에 예외가 발생해도 Sentry에서 스택트레이스를 제대로 분석하기 어려운 부분을 해결하기 위해서 Sentry가 노력한 과정이 나와 있다. 디버그 정보로 이용하는 디버그 파일을 이용하는데 이 파일은 너무 크므로 필요한 내용만 서브 셋으로 만들어서 이를 Sentry가 이용할 수 있도록 Symbol Server를 제공하고 이를 Symbolicator라는 서비스로 발전시켜서 Sentry가 스택트레이스를 제대로 분석해서 보여줄 수 있게 했다.(영어)
  • (번역) 리플렉션의 규칙들 : Go 언어를 만든 Rob Pike가 쓴 The Laws of Reflection의 번역 글로 Go 언어에서 Type과 Interface가 어떻게 구성되어 있는지 설명하고 리플렉션의 세 가지 규칙 "리플렉션은 인터페이스값에서 출발하여 리플렉션 객체로 갑니다", "리플렉션은 리플렉션 객체에서 출발하여 인터페이스값으로 갑니다", "리플렉션 객체를 수정하려면, 값이 설정 가능해야 합니다"를 설명해서 리플렉션의 이해를 돕는 글이다.(한국어)
  • Spring Boot에서 Repository로 DynamoDB 조작하기 (1) - 설정부터 실행까지 : MongoDB에서 DynamoDB로 갈아타면서 공부한 DynamoDB의 사용방법을 설명한 글이다. 쿼리 메서드로 이용하기 위해 spring-data-dynamodb를 사용하기까지 AWS CLI, CURL, AmazonDynamoDB 클래스, DynamoDBMapper 클래스 순서로 DynamoDB에서 항목을 조회, 추가, 삭제하는 방법을 자세히 설명하고 있어서 꼭 Java를 이용하지 않더라도 DynamoDB의 사용방법을 이해할 수 있다.(한국어)

볼만한 링크

  • Password expiration is dead, long live your passwords : Microsoft가 Windows 10에서 일정 기간마다 비밀번호를 바꾸도록 하는 정책을 없애기로 했다고 한다. Microsoft에 따르면 2FA, 패스워드 추측 공격, 비정상 로그인 시도 감지 등 보호 장치가 있으면 주기적으로 비밀번호를 바꾸게 할 필요가 없고 비밀번호가 유출되었다는 증거가 있으면 즉시 변경을 해야 하므로 주기적으로 바꾸도록 할 필요가 없다고 한다. 그리고 위의 보안 보호장치가 없으면 주기적으로 비밀번호를 바꾸더라도 어차피 의미가 없다고 한다. 국내에도 빨리 보편화하였으면 하는 정책이다.(영어)
  • 20 Patterns to Watch for in Your Engineering Team : 기업용 Git 저장소를 운영하는 GitPrime에서 "효과적인 매니저는 효과적인 디버거"라는 생각으로 엔지니어링 팀의 성과를 측정하고 문제를 파악해서 개발 프로세스를 개선할 수 있는 패턴을 정리해서 50페이지짜리 PDF로 공개했다. 이메일을 입력하면 다운로드 받을 수 있고 아직 읽어보지는 않았지만, 사일로팀이나 PR 전략, 버스 팩터 문제 등 흥미로운 주제가 많다.(영어)
  • Abstract를 이용한 Sketch 파일 버전 관리 : 마이리얼트립에서 협업하면서 관리가 어려운 Skectch 파일을 Abstract라는 도구로 버전 관리한 내용이 나와 있다. 내가 디자이너는 아니지만, 디자이너들이 디자인 파일로 협업하면서 최신 파일을 찾기도 어렵고 각자 다른 버전을 가진 때도 있고 해서 Abstract를 도입해서 Git으로 코드를 관리하듯이 각자 협업을 할 수 있었다고 한다. 도입 이후 히스토리 확인도 편해졌고 달라진 부분을 비교하기도 쉬워졌다고 한다.(한국어)
  • 메리 미커 인터넷 트렌드 2019 요약 : 메리 미커 인터넷 트렌드 2019의 내용을 요약한 글이다. 크게 보면 스마트폰 출고 대수가 처음 감소세로 접어들었지만 커머스와 광고는 여전히 성장 중이고 잘나가는 서비스와 분야들이 잘 정리되어 있다. 그리고 SNS를 너무 오래 사용하는 것을 사람들이 걱정하기 시작했기 때문에 사용 시간의 증가는 더는 기대하기 어렵다고 한다.(한국어)
  • Sign In with Apple : Apple이 WWDC에서 애플 계정으로 타 서비스에 로그인할 수 있는 "Sign In with Apple"를 공개했다. 이때 서드파티 서비스에 사용자 이메일은 애플이 임시로 만든 비공개 이메일 주소만 전달한다.(영어)

IT 업계 뉴스

프로젝트

  • entropic : 중앙화된 npm 저장소와는 다른 접근을 하는 분산화된 페더레이트 저장소, JSConf.eu의 발표 참고.
  • MDX Deck : MDX 기반으로 발표자료를 만들 수 있는 npm 도구.
  • Formik : React.js로 Form을 쉽게 만들게 해주는 라이브러리.
  • λ Serverless Benchmark : AWS Lambda, Google Cloud Functions, Azure Functions, IBM Cloud Functionsl, Cloudflare Workers 등 다양한 서버리스 플랫폼의 평균 응답시간과 콜드스타트 시간을 벤치마킹한 사이트.
  • Firefox Monitor : 개인 정보가 유출된 사이트를 기준으로 이메일을 입력하면 어떤 사이트에서 어떤 정보가 유출되었는지 알려준다.

버전 업데이트

2019/06/16 02:43 2019/06/16 02:43