전체 글 337

Hashicorp Terraform (테라폼)

Terraform Go language: github.com/hashicorp/terraform Protocol: http [ 사전적 의믜 ] Terraforming(테라포밍)은 지구가 아닌 다른 행성 및 위성, 기타 천체의 환경을 지구의 대기 및 온도 생태계와 비슷하게 바꾸어 인간이 살 수 있도록 만드는 작업으로 화성탐사 관련해서 종종 등장하는 용어입니다. 하시코프에서 이 제품의 이름을 왜 이렇게 지었을지 생각해보았습니다. 단어 뜻에서 각기 다른 모든 vendor의 인프라 환경을 비슷하게 바꾸어 서비스를 할 수 있도록 만드는 작업을 하는 도구라고 느껴집니다. [ 특징 ] 테라폼은 Chef, Puppet, 과 같이 Infrastructure provisioning 툴로 분류할 수 있습니다. The key..

엔지니어 2020.10.28

Python3를 이용한 Tistory Authentication Code 방식 인증 (2020.09.01 변경사항 반영)

안녕하세요 쿤드입니다. 🍀 가끔씩 보고 싶은 정보들을 모아 블로그에서 보고 싶을때 정보를 쫙 모아다가 Tistory의 OpenAPI를 이용해서 올리곤 했었습니다. (가끔이라서 수동으로 함) 오늘 오랜만에 좀 보려고 했는데 자꾸 400 Error가 발생하고 이유는 모르겠고.. 뒤져보니 response_type=code 방식을 이용해서 하라고 하는 것을 보니 뭔가 변경된것 같았습니다. Open API 사용하기 위한 App 등록이 선행되어야 하는데 이는 검색하면 많이 나와서 넘어갑니다. 자세히 Autoriztion Code 방식을 읽어보니 기존에 제가 인증받아서 사용하던 code에서 끝나는 것이 아니라 그 code를 가지고 token을 받아서 그 token을 이용해야 하는 것이 었습니다. 그래서 방법은 총 3..

엔지니어 2020.09.25

AWS Subnet 생성하기

안녕하세요 쿤드입니다. 🍀 이번엔 Subnet을 생성해보려고 합니다. 제가 사용하는 리전에는 Availability Zone이 3개가 있긴한데 2개의 Zone만 사용해서 private용 2개, public용 2개 총 4개를 생성했습니다. IPv4 CIDR block으로 IP 범위를 지정해주었는데 각 서브넷당 최대 4094개의 host를 할당 해 줄 수 있도록 netmask는 20으로 설정했습니다. 10.3.0.0/20 (10.3.0.1 ~ 10.3.15.254) 10.3.16.0/20 (10.3.16.1 ~ 10.3.31.254) 10.3.32.0/20 (10.3.32.1 ~ 10.3.47.254) 10.3.48.0/20 (10.3.48.1 ~ 10.3.63.254) Subnet을 생성하고 나면 각 서브..

엔지니어 2020.07.23

테넌트

안녕하세요 쿤드입니다. 🍀 테넌트의 개념에 대해서 알아보려고 합니다. 테넌트(tenant): 클라우드 인프라/서비스 제공 방식 싱글 테넌트: 1개 서버에 대해 1개 기업의 데이터, 어플리케이션만 제공 멀티 테넌트: 다른 사용자들과 서버, 스토리지를 공유 출처: 지란지교시큐리티 블로그 싱글과 멀티의 차이는 하드웨어를 공유하는가 안 하는가의 차이입니다. 이해를 돕기위해 이미지를 같이 보면 독립적으로 구성이 될 수록 Single-Tenant에 가깝고 Multi-Tenant에 가까워 질수록 사용자가 모든 자원을 공유해서 사용합니다. 멀티테넌시의 장점으로는 비용 절감 입니다. (출처: http://www.itworld.co.kr/news/101255) 그리고 관리상의 이점도 있습니다. 하드웨어 리소스를 효율적으로..

엔지니어 2020.07.23

AWS VPC 생성하기

안녕하세요 쿤드입니다. 🍀 이번엔 VPC 생성하는 방식에 대해서 확인해보겠습니다. AWS VPC Virual Private Cloud AWS 사용자가 정의한 전용 가상 네트워크입니다. 생성하기 적절한 이름을 입력하고 VPC에서 사용할 IP 주소의 범위를 정합니다. 저는 IPv6는 사용하지 않아서 default인 No IPv6 CIDR Block을 선택했습니다. Tenancy default : 인스턴스가 공유된 하드웨어에서 실행 dedicated : 인스턴스가 단일 테넌트 하드웨어에서 실행 VPC를 생성하고 나면 통신을 위해서 Subnet을 세팅합니다.

엔지니어 2020.07.23

AWS EKS Service Role 생성 (IAM)

안녕하세요 쿤드입니다. 🍀 AWS IAM (Identity and Access Management)은 AWS Identity and Access Management(IAM)는 AWS 리소스에 대한 액세스를 안전하게 제어할 수 있는 웹 서비스입니다. IAM을 사용하여 리소스를 사용하도록 인증(로그인) 및 권한 부여(권한 있음)된 대상을 제어합니다. Step 1. EKS Cluster용 Role 생성 EKS 선택 EKS - Cluster 선택 적절히 Tag 설정 Role 관련 name 및 description 세팅 Create role 하면 Role이 생성됩니다. 이후에는 EKS 메뉴로 가서 Cluster Service Role의 refresh 버튼을 누르면 보이게 되고 선택해주면 됩니다. 이 Role에 추..

엔지니어 2020.07.23

AWS EKS Cluster 세팅

안녕하세요 쿤드입니다. 🍀 이번엔 EKS Cluster를 생성해 보겠습니다. Amazon EKS Amazon EKS는 Kubernetes의 Control Plain or Node를 설치, 운영 및 유지보수 할 필요 없이 AWS에서 Kubernetes를 손쉽게 실행할 수 있는 관리형 서비스입니다. Kubernetes는 컨테이너화된 애플리케이션의 배포, 조정 및 관리 자동화를 위한 오픈 소스 시스템입니다. 구축하기 Step 1. 클러스터 설정 (Configure cluster) Name과 version을 선택합니다. Cluster Service로 사용할 IAM role을 미리 생성해두고 선택합니다. Tag는 적절하게 추가합니다. (나중에 관리 및 비용 구분하기 용이하도록) Step 2. 네트워킹 설정 (Sp..

엔지니어 2020.07.23

TCP Status 상태에 대해서

안녕하세요 쿤드입니다. 🍀 RFC 793에 나와있는 상태도를 바탕으로 하나씩 따라가면서 확인하면 보입니다. python2로 구현된 간단한 tcp client/server 코드와 함께 확인해보겠습니다. * TCB: Transmission Control Block ESTABLISHED까지는 1가지 경우인데 종료할때는 2가지 case로 나뉩니다. RFC793 Link Normal Close(일반 종료): FIN-WAIT-1 ➡️ FIN-WAIT-2 ➡️ TIME-WAIT Simultaneous close(동시 종료): FIN-WAIT-1 ➡️ CLOSING ➡️ TIME-WAIT 일반 종료 - 어느 한쪽에서 종료하기 위해 FIN을 날린 경우 동시 종료 - Clinet, Server 양쪽에서 동시에 FIN을 날..

엔지니어 2020.07.15

TCP 통계수치 변화 (장애 상황)

안녕하세요 쿤드입니다. 🍀 엔지니어로 밥먹어 먹고 살고 있는데 TCP를 제대로 아는것이 없어서 하나씩 이해해보려고 하는중에 있습니다. 실제로 사용하는것의 값은 없애고 factor중에서 변화폭이 컸던 것들 위주로 간추려서 정리를 해보겠습니다. 물론 네트웍 트래픽만 봐도 장애라는것을 인지할 수는 있습니다. 평소 장애 TCP 통계 지표를 24개만 모아서 보고 있는데 (1분마다 이전과 현재의 증가한 차이 값을 수집해서 추이를 봄) 그중에 10개만 추려보았고 그 중에서 다시 추려보니 ActiveOpens, PassiveOpens 추이만 봐도 장애 예측은 가능하겠네요.. 당시 앞단에 있던 nginx에서 발생했던 error log (에러 해결 관련 nginx 설정 링크) upstream sent invalid chu..

엔지니어 2020.07.15

TCP 통계

안녕하세요 쿤드입니다. 🍀 netstat --statistics 명령부터 시작해보겠습니다. (nstat 명령이 훨씬 간결하긴하지만..) 처음에는 각각의 인자들이 무엇을 의미하는지 확인하려고 했으나 이 페이지를 작성하다보니 하나씩 찾다보니 의미만 아는것은 별 필요가 없는것 같았습니다. 장애 당시를 기준으로 확인하는것이 좋을것 같아서 그때 확인한 factor들에 대해서 아래에 따로 정리해두었습니다. 작년에 제가 다니던 회사에서 중간에서 gateway역할을 해주는 application의 오류로 장애가 3시간정도 발생한적이 있었는데 그 당시 tcp 통계 변화를 바탕으로 내부적인 application 장애가 발생해서 외부에서 유입되는 traffic 처리를 못한 경우 어떤 차이가 발생하는지를 확인 해보도록 하겠습니..

엔지니어 2020.07.14