엔지니어 230

테넌트

안녕하세요 쿤드입니다. 🍀 테넌트의 개념에 대해서 알아보려고 합니다. 테넌트(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

S3에 SQS notification event 추가할때 권한 설정

안녕하세요 쿤드입니다. 🍀 S3 버킷에서 어떤 object가 생성되면 그에 대한 이벤트를 SQS로 받아서 처리할 필요가 생겼습니다. 설정대로 맞춰놓고 생성을 했는데 [버킷] - [Properties] - Advenced settings [Events] 에러가 발생합니다. 에러메시지 Unable to validate the following destination configurations. Permissions on the destination queue do not allow S3 to publish notifications from this bucket. (arn:aws:sqs:REGION:AWS계정ID:세팅하려던_SQS_QUEUE_NAME) 최초 생성은 IAM role로 접근에 제한을 둔 accoun..

엔지니어 2020.06.26

AWS의 Cloudwatch와 CloudTrail의 차이

안녕하세요 쿤드입니다. 🍀 CloudWatch 요금 폭탄이 나와서 추적하는데 CloudWatch/CloudTrail의 차이를 안다고 생각했는데 말로 설명하려니 말문이 막혀서 찾게 되었습니다. 원작자 허락하에 포스팅 원문: https://medium.com/awesome-cloud/aws-difference-between-cloudwatch-and-cloudtrail-16a486f8bc95 CloudWatch vs CloudTrail in AWS AWS CloudWatch CloudWatch는 AWS 서비스 및 자원 활동에 초점을 맞추고, 그 상태와 성능에 대해 보고(report) CloudTrail은 AWS 환경에서 수행 된 모든 작업의 로그 CloudWatch: AWS CloudWatch는 AWS 클라..

엔지니어 2020.06.01