전체 글 119

AWS IAM

IAM은 사용자설정하는것이다 루트권한을 모두 가지고있으면 문제가 생길수있어서 사용자를 나눠서 사용한다고 생각하면 좋다 rbac 사용자에게 권한을 직접 주기보다는 사용자 그룹에 권한을 부여하고 그 그룹에 사용자를 추가하는방식으로 하는게 좋다 실습 사용자그룹별 권한 prod-group : cloudfront, ec2, s3, rds dev-group : ec2, rds 사용자 그룹별 사용자 prod-group : dev1,dev3,dev5 dev-group : dev2,dev4

보안 ( SSL 셋팅 Certbot , ACM AWS Certificate Manager)

SSL 셋팅을위한 EC생성 및 nginx 설치 도메인 연결 sudo apt -y update sudo apt -y install nginx sudo snap install core; sudo snap refresh core sudo snap install --classic certbot sudo ln -s /snap/bin/certbot /usr/bin/certbot vi /etc/nginx/sites-available/default systemctl restart nginx nginx -t sudo certbot --nginx certbot --nginx -d cl.oud.kr 로드벨런싱을 위해 서버를 증설할떄 보안서버도 다시 생성하는게 아니라 기존 키파일을 가져가면된다 certbot에서 수정한 곳을 ..

Terraform (user_data provisioner)

Terraform 리눅스 명령어 실행 연습을 위해 기본적인 EC를 실행후 아래의 소스코드처럼 유저데이타로 명령어를 실행할수 있다 직접 코드를 작성해도되고 쉘스크립트를 실행하게 할수도 있다. provider "aws" { region = "ap-northeast-2" #리전명 } resource "aws_instance" "app_server" { #리소스 ami= "ami-068a0feb96796b48d" instance_type = "t2.micro" vpc_security_group_ids = [ "sg-02567aade589e3c60" ] key_name = "ec01" associate_public_ip_address = true #공용아이피주소 #유저데이타로 아파치를 설치하고 실행한다. user..

Terraform (제어문 , 조건문)

Terraform 제어문 1) 반복문 (0) Set와 Map형 변수 set : 유일한 값의 요소들로 이루어진 list ex) [1, 2, 3] map : Key-Value 형식의 데이터, key 값은 string이여야함 같은 라인의 값은 동일한 형식어야함. ex) { k : v, k2 : v2 } (1) count를 이용한 방식 resource "aws_instance" "app_server" { #리소스 count = 2 #카운트 속성 반복갯수 ami = var.app_server_ami #이미지명 > 변수로 만듬 instance_type = var.app_server_in_type vpc_security_group_ids = ["sg-02567aade589e3c60"] #resource "aws_se..

terraform 변수, 모듈

Terraform 변수 1) 테라폼 변수 문법 [1] 변수 만들 때 variable "변수이름" { type = string default = "값을 입력하지 않았을 때 설정되는 값" } [2] 변수 사용할 때 var.변수이름 2) 변수에 값 입력 terraform apply -var "변수이름=값" 3) 변수 작성 위치 [1] 변수가 사용되기 전 main.tf에 작성 [2] variables.tf 파일에 작성 프로젝트폴더 main.tf전체적인 코드 작성 variables.tf변수 선언 terraform.tfvars변수 값 작성 하여 ec2생성코드중 인스턴스 타입과 인스턴스의 aim을 변수로 따로 설정한다 variable "app_server_ami" { type = string default = "am..

IaC - (terraform)

1. IaC IaC(Infrastructure as Code)란 코드 형태로 인프라를 작성, 정의, 배포, 업데이트하는 것을 의미 인프라를 관리하는 모든 것을 코드 형태로 관리하는 것 1) IaC의 종류 (1) 애드 훅 스크립트 Python, Ruby, Bash 등의 스크립트 언어 (2) 구성 관리 도구 Ansible, Puppet, Chef 등 서버에 소프트웨어를 설치/관리하는 목적으로 사용 (3) 서버 템플릿 도구 Docker, Packer, Vargrant 등 (4) 서버 프로비전 도구 Terraform, CloudFormation 등의 기술 *프로비전이란? 프로비저닝(Provisioning) 이란 의미는 영어 직역한 그대로 "제공하는것" 어떤 종류의 서비스든 사용자의 요구에 맞게 시스템 자체를 제..

부하테스트

1) 부하테스트란? 우리가 만든 웹 서비스가 목표 응답시간 기준으로 얼마만큼의 동시 접속자 수를 견딜수 있는가를 테스트하기 위한 목적 동시접속자 수를 TPS로 환산하여 자원적인 관점으로 사용자 대비 용량 산정 즉, 사용자의 추이에 따라 적절한 자원을 배분하는 것, 더 나아가 병목구간을 찾아 제거하는 것 출시 전 대부분의 어플리케이션이 성능 저하를 일으키는 병목구간을 가지고 있다. 출시 전에 얼마나 이 부분을 많이 해결하느냐가 매우 중요 즉 부하를 발생시키는 것도 중요하지만, 병목구간이 무엇인지 찾아내는 것이 필요 APM (Application Performance Monitoring)과 인프라 모니터링(Infrastructure Monitoring)의 지표들을 읽어내고, 병목 구간의 문제가 코드의 잘못인..

카나리아 테스트

https://itnp.kr/post/canary-deployments-using-istio 에서 올려주신 블로그를 참조하여 카나리아를 테스트해보자 카나리아를 디폴드 네임스페이스에 테스트해보자 kubectl label ns default istio-injection=enabled #디폴트 네임스페이스에 istio추적 하게 라벨링설정 > namespace/default labeled hello서버 v1 버전을 업로드후 접속테스트를 진행한다. #httbin 통신용 파드 하나 추가 kubectl apply -f httbin.yml > pod/httpbin created #통신할 v1버전의 hello서버 디폴로이먼트와 서비스 추가 kubectl apply -f hello-deployment.yml > deplo..

쿠버네티스 서비스 매쉬(Service Mesh ,kiali,prometheus,Istio)

Service Mesh 0) MSA MicroService Architecture의 줄임말 하지만 마이크로서비스란 작고, 독립적으로 배포 가능한 각각의 기능을 수행하는 서비스 마이크로서비스는 완전히 독립적으로 배포가 가능하고, 다른 기술 스택(개발 언어, 데이터베이스 등)이 사용 가능한 단일 사업 영역에 초점을 둔다. 독립된 서비스는 API를 통해서만 상호작용한다. *관련용어 : CQRS, DDD > ~/.bashrc source .bashrc istioctl --help 4) 이스티오 컨트롤 플레인 설치하기 클러스터에 이스티오의 컨트롤 플레인을 설치합니다. 옵션 없이 설치시 istiod와 ingress gateway만 있는 default profile을 다운합니다. istioctl x uninstall..

Flask , nginx , gunicon (port) ,jenkins ,k8s

https://myharu.tistory.com/201 Flask , nginx , gunicon (by sock) 더보기 어제까지 배운것을 기반으로 플라스크를 백앤드 엔진엑스를 프론트엔드로 CI/CD를 진행해보려 한다. 그러면 일단 플라스크와 엔진엑스를 연동하는 작업을 처음해보고 나서 CI/CD를 진행하 blog.yos.kr 실습에 이어서 한다. sock에서 포트로 변경하여 서버를 분리하려고 한다. vi /etc/systemd/system/backend.service #ExecStart=/usr/local/bin/gunicorn --workers 1 --bind unix:backend.sock -m 007 wsgi:app #이소스를 아래로 변경 ExecStart=/usr/local/bin/gunicor..

728x90
반응형