본문 바로가기

솔데스크99

[96일 차] 21.12.09 : Terraform 5 Terraform - 반복문 처리 : for_each - 조건문 처리 : Boolean type의 매개 변수를 사용한 방식, count 매개 변수를 사용한 방식, 3항 연산자를 사용한 방식 1교시 count 매개 변수를 입력 매개변수로 받을 때, 리스트만 가능 for_each 표현식을 사용한 반복문 처리 -> 집합, 맵을 사용하여 전체 리소스의 여러 복사본 또는 리소스 내 인라인 블록의 여러 복사본 생성 가능 for_each = COLLECTION은 루프를 처리할 집합 또는 맵 for_each의 값으로는 리스트를 사용할 수 없다. -> toset(리스트)로 리스트를 딕셔너리 형태의 값(키:값)으로 변환해서 사용 -> 무작위 키 값: 리스트 요소 값 2교시 출력값을 뽑아낼 때에도 딕셔너리 형식에 맞게 뽑아.. 2021. 12. 8.
[95일 차] 21.12.07 : Terraform 4 Terraform - 모듈 : 모듈 호출, 지역 변수, 모듈 출력, 입력 매개변수 - 반복문 : count 매개변수 1교시 루트 모듈 : 인프라 구축 코드(모듈 코드)가 실제로 작동한 위치 global\s3에서 init > plan > apply 하고, stage에서 진행하고. 모듈에 있는 main.tf 파일은 배포할 목적이 아니다. 다른 곳에서 이 파일을 끌어다 쓰는 것. -> 모듈 코드에 리전 정보나 인프라 이름 등은 작성할 필요가 없다 2교시 이 코드를 이해하는 것이 중요하다. -> user-data.sh라는 파일을 모듈이 있는 경로에서 가져온다 -> server_port는 현재 경로에 있는 variables.tf 파일에서 가져온다 -> db_address/db_port는 현재 main.tf의 te.. 2021. 12. 7.
[94일 차] 21.12.06 : Terraform 3 Terraform - 데이터 소스 참조, 모듈 1교시 저번 시간 복습 상태 파일 격리 -> 전체를 날려버리는 위험을 고려해 분리된 환경으로 상태 저장 파일을 격리한다. 원격 백엔드 기능 사용 -> 수동 오류/잠금/시크릿 문제를 해결하기 위해 원격 백엔드 기능 사용 : S3 버킷과 DynamoDB 사용 테라폼에서의 모듈 -> ex) VPC 모듈을 하나 만들면 이름만 다르게 해서 모듈을 끌어다 쓰면 손쉽게 인프라 복제 가능 파일 레이아웃을 이용한 격리 -> 구성 요소 배포의 확인이 쉬워지고 장애 발생 시 손상 최소화 단점은 1. 한 번의 명령으로 전체 인프라를 만들 수 없다 : 각 폴더의 main.tf마다 apply를 해줘야 한다. 2. 리소스 종속성을 사용하기 어렵다 : 다른 폴더의 속성에 직접 액세스 불.. 2021. 12. 6.
[93일 차] 21.12.03 : Terraform 2 Terraform - 상태 파일 공유를 위한 원격 백엔드 구축, 환경 격리 1교시 어제 내용 복습 테라폼은 인프라뿐만 아니라 다양한 클라우드 서비스 프로비저닝 가능. init으로 플러그인 다운로드할 것. 2~3교시 어제 대상 그룹이 비어 있던 이유? -> aws_autoscaling_group 리소스에 대상 그룹을 지정해주지 않았다. 빼먹었던 부분 작성해도 연결이 되지 않는다. 상태 확인이 계속 unhealthy로 뜬다. 4교시 뭔가 수정해서 작동이 성공하긴 했는데... 뭔가 좀 찜찜하다. -> 추정하기로는 aws_lb_listener_rule의 condition을 잘못 적은 것 같기도? -> 상태 확인 포트가 80이거나 8080이거나는 별 상관이 없어 보인다. Terraform 상태 관리 : 테라폼은 .. 2021. 12. 3.
[92일 차] 21.12.02 : Terraform 1 Terraform - 기초 : 인스턴스 생성, 사용자 데이터 작성 1교시 테라폼도 Cloudformation처럼 문서 페이지가 있으니 참고해서 작성하면 된다. IaC(Infrastructure as Code. 코드형 인프라) 코드를 작성/실행하여 인프라를 생성/배포/수정/정리하는 것 -> 운영의 모든 측면(HW적 측면 등)을 소프트웨어적으로 전환하여 생각한다. DevOps의 핵심은 거의 모든 것을 코드로 관리할 수 있다는 것. IaC에는 5가지 범주가 있다. 애드혹 스크립트(Ad hoc script) 수행할 작업을 단계별로 나누고 특정 언어를 사용하여 각 단계를 코드로 정의한다. 작성된 스크립트를 서버에서 수동으로 실행한다. -> 소규모 일회성 작업에 적합하다 대충 bash shell 스크립트 파일이나 .. 2021. 12. 2.
[91일 차] 21.12.01 : Python 6 Python - 모듈, 패키지, 클래스, 생성자 1교시 라이브러리 : 개발자가 모듈 기능을 호출하는 형태의 모듈 프레임워크 : 제어 역전이 발생하는 모듈. 내부에 함수만 정의하고 직접적으로 무언가 실행하는 코드 없음 제어 역전 : 개발자가 만든 함수를 모듈이 실행하는 형태의 제어 흐름 (일반적인 흐름은 개발자가 모듈의 함수를 호출하는 것) 2교시 모듈 만들기 실습 -> 모듈파일.py 만들고 메인 파일에서 import 모듈파일 해서 사용해보기 패키지 : 복잡하고 구조화된 모듈을 만들 때 사용하는 기능 __name__ == "__main__" __name__ -> 엔트리 포인트/메인 : 프로그램의 진입점. 메인 내부에서의 __name__은 "__main__" 메인 파일에서 모듈 import 후 __name_.. 2021. 12. 1.