티스토리

연공
검색하기

블로그 홈

연공

looeon.tistory.com/m

귀여워..

구독자
3
방명록 방문하기

주요 글 목록

  • tetetet 보호되어 있는 글입니다. 공감수 0 댓글수 0 2024. 4. 15.
  • AWS - Terraform HashCorp 가 개발한 IAC 도구로서 클라우드 인프라스터럭처를 정의하고 자동화한다. ○ terraform 사용을 위한 인스턴스 생성 ○ terraform 설치 sudo yum install -y yum-utils shadow-utils sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/AmazonLinux/hashicorp.repo sudo yum -y install terraform https://developer.hashicorp.com/terraform/install?product_intent=terraform#linux Install | Terraform | HashiCorp Developer Explore Terra.. 공감수 0 댓글수 0 2024. 4. 2.
  • AWS - CDN [ Contents Delivery Network ] CDN ○ 컨텐츠 제공자와 사용자 간 지리적으로 떨어져 있는 환경에서 컨텐츠를 빠르게 제공하기 위한 기술 # 오리진 서버와 사용자 간 지리적 위치가 멀리 떨어져 있다고 가정하면, 지연 시간이 길어진다 >> 원활한 서비스 제공 불가하다 >> 캐시 서버를 통한 지역적인 분산 : 오리진 서버로부터 지역적으로 분산되어 있는 캐시 서버로 컨텐츠를 분배한다 # 캐시 서버로 분배하여 저장하고, 각 지역의 사용자는 가장 인접한 캐시 서버로부터 컨텐츠를 전달받는다 1. 페이지 로드 시간 단축 2. 대역폭 비용 절감 3. 콘텐츠 가용성 제고 4. 웹사이트 보안 강화 CDN 캐싱 방식 정적 캐싱 이미지 파일 / 자바 스크립트 / CSS 등과 같이 변경되지 않는 정적 컨텐츠를 캐싱 동적 캐싱 - 사용자 요청이나 데이터의 정보.. 공감수 0 댓글수 0 2024. 3. 27.
  • AWS - VPC 피어링 ○ VPC 의 기존 인프라를 사용하여 VPC 피어링 연결 생성 ○ 게이트웨이 / VPN 연결이 아니며, 물리적 하드웨어에 의존하지 않아 통신 또는 대역폭 병목에 대한 단일 지점 장애 없다 ○ VPC 피어링 연결은 원활한 데이터 전송에 도움을 준다 # AWS 계정이 두 개 이상인 경우 이들 계정을 대상으로 VPC 피어링하여 파일 공유 네트워크를 만들 수 있다 # VPC 가 다른 사용자의 VPC 중 하나에 있는 리소스에 접근 허용할 수 있다 # 서로 다른 리전에 위치한 VPC 사이에 피어링 관계 설정하는 경우에는 프라이빗 IP 주소를 사용하여 서로 통신할 수 있다 >> 트래픽은 프라이빗 IP 공간 안에서 유지 >> 모든 리전 간 트래픽 암호화 + 대역폭 제한 X + 단일 장애 지점 X >> 트래픽은 항상 글.. 공감수 0 댓글수 0 2024. 3. 26.
  • AWS - VPC 엔드포인트 VPC 엔드포인트 ● VPC Endpoint 는 AWS 의 퍼블릭 서비스나 직접적으로 생성한 AWS 서비스에 대해 외부 인터넷 구간을 통한 접근이 아닌 직접적으로 접근할 수 있는 프라이빗 액세스 기능이다 >> S3 라는 AWS 스토리지 서비스에 대해 우리가 생성한 VPC 에서 접근을 하려고 할 때 인터넷 게이트웨이나 NAT 게이트웨이를 통해 외부 인터넷으로 접근하는 방식이 아닌 VPC 엔드포인트 기능을 통해 AWS 내부의 프라이빗 연결이 가능하다 ○ 사용자가 생성한 VPC 에서 AWS 퍼블릭 서비스와 통신하거나 다른 VPC 로 통신이 필요한 경우 일반적으로 외부 인터넷 구간인 퍼블릭 네트워크를 통해 통신이 이루어진다 ○ AWS 에서 제공하는 대부분의 서비스에 접근하기 위해서는 퍼블릭 네트워크 통신이 필요.. 공감수 0 댓글수 0 2024. 3. 25.
  • AWS - EKS EKS >> 관리형 Kubernetes 서비스 # 만들어두면 계속 비용이 지출된다 ● 대규모로 애플리케이션 실행 - 컨테이너화된 애플리케이션을 대규모로 배포하고 관리하는데 사용할 수 있는 오픈 소스 소프트웨어 - EC2 인스턴스의 클러스트를 관리 / 배포 / 유지 관리 및 스케일링의 프로세스를 통해 인스턴스에서 컨테이너를 실행 ● 애플리케이션을 원활하게 이전 - 컨테이너화된 애플리케이션을 로컬 개발 시스템에서 클라우드의 프로덕션으로 이전 ● 어디서든 실행 - 가용성이 뛰어난 kubernetes 클러스트 실행 실습 ● 역할 생성 ● EKS 의 보안그룹 생성 ● EKS cluster 생성 ● 프로메테우스는 설정 없이 간다 # 이후 작업은 모드 기본값으로 지정 ● EKS 클러스터 생성된 이후 관리형 노드 그룹.. 공감수 0 댓글수 0 2024. 3. 21.
  • AWS - ECS ● 클러스터 단위로 관리한다 ● 클러스터 생성 # NS 도 있다 ● 태스크의 정의 - 애플리케이션을 구성하는 하나 이상의 컨테이너를 설명하는 텍스트파일(json 형식) - 애플리케이션의 블루프린트 역할을 하며 애플리케이션에 대한 다양한 파라미터, 사용할 컨테이너, 포트, 볼륨을 지정할수 있다. - 전체 애플리케이션 스택이 단일 태스크 정의에 있을 필요는 없고 여러태스크 정의에 걸쳐 애플리케이션을 확장하는 것이 좋다. ● 태스크 생성 ○ 역할은 미리 만들어두지 않으면 새 역할 생성으로 설정시 자동으로 생성해준다 ○ 컨테이너 이름은 마음대로 설정하고, 이미지는 이전에 만들어둔 public 리포지터리의 이미지를 활용 ○ 환경변수는 DB 사용하지 않으므로 필요가 없다 ○ 태스크는 하나를 생성하는 것이고, 서비스.. 공감수 0 댓글수 0 2024. 3. 21.
  • AWS - 컨테이너 [ ECR ] 보호되어 있는 글입니다. 공감수 0 댓글수 0 2024. 3. 21.
  • AWS - CloudFormation ● CloudFormation : AWS 에서만 사용 가능하다 >> 인프라를 구성해주는 서비스 ● Terraform : 모두 사용 가능하다 # 기능은 동일 ● 사전 준비 >> powershell 로 템플릿 다운로드 wget http://bit.ly/cnbl0501 -outfile cnbl0501 ● 스택 생성 ● 인스턴스 3개가 올라왔다 # 인프라를 구성해준다 >> 네트워크 / 보안그룹 등 모두 설정되어 있다 더보기 공감수 0 댓글수 0 2024. 3. 20.
  • AWS - ELB - [ Loadbalance ] / ASG / AMI # 탄력적 서비스라면 onpremise 보다 cloud 가 낫다 ● 기본적으로 라운드 로빈 방식으로 분산한다 ○ ASG ( Auto Scaling Group ) 이랑 같이 로드 밸런스를 사용 한다면, >> 로드 밸런스가 작동이 안되는 장비를 파악할 수 있고 >> 그것을 ASG 에 전파해주면 ASG 가 작동 불능 장비를 제거하고 다시 더 장비를 올린다 >>> 더 안정적인 운영 가능 ○ ALB는 DNS 로 접속이 되므로, ASG 에 의해 새로운 장비가 올라가서 IP 가 변해도 상관이 없다 ( NLB 는 IP 파악이 된다 ) ALB / NLB / CLB ( CLB는 사용 안한다 ) ○ ALB : aplication >> 패킷이 들어왔을 때 1계층 부터 7계층까지 확인 가능 >> URL 을 보고 어디로 가야할 .. 공감수 0 댓글수 0 2024. 3. 20.
  • AWS - Lightsail / Route 53 ○ Light sail : 본인이 혼자서 장비 하나를 다 쓴다 ( 가상장비 ) 장점 : 저렴한 비용 / EC2를 몰라도 사용할 수 있다 ○ Route 53 : AWS 의 DNS 서비스 [ DNS 설정할 때 Light sail 을 사용하여 본인의 DNS 를 사용할 수 있다 ] ● Lightsail 페이지 # WordPress Multisite 는 여러 DNS 사용할 때 사용한다 ○ 각 사이즈 별로 기본 전송량이 TB 단위이다 # whois 는 1G + α ● 다른 사람과 이름은 같아도 되지만, 내가 가진 것 중에서는 이름이 달라야 한다 ● 만들어지고 IP 까지 할당된다 ● network 부분에서 방화벽 설정이 가능하다 ● 비밀번호를 모르기 때문에, 바로 콘솔 접근 ○ 비밀번호 변경 ▩ 하지만 접속이 안된다.. 공감수 0 댓글수 0 2024. 3. 19.
  • AWS - EFS ● EFS 는 컨테이너에서 많이 사용한다 ○ EBS 볼륨은 일반적으로 1 : 1 마운트 [ EBS Volume : 인스턴스 ] # 파일시스템 데이터가 들어가면 늘어나고 줄어들면 줄어드는 탄력적 구조 >> 스토리지 공간은 무제한으로 증가할 수 있으나, 비용이 계속 증가한다 # p 285 참조 >> AWS 리전 내에서 데이터를 중복 저장하여 우수한 가용성과 내구성이 보장된다 >> 스토리지 클래스를 선택 가능 # 비용 절감 가능 # EFS Infrequent Access 나 One Zone 스토리지 유형을 선택하면 비용 절약 가능 # 다중 마운트 가능 ○ EFS 는 버스트 처리량 모드를 사용하여 스토리지 사용량에 따라 처리량을 확장 또한 스토리지와 관계없이 처리량을 프로비저닝할 수 있다 serverless >.. 공감수 0 댓글수 0 2024. 3. 19.
  • AWS - DB 관계형 데이터베이스 비관계형 데이터베이스 - 엄격한 스키마 규칙 및 데이터 품질 적용이 필요하다 - 데이터베이스의 크기를 수평으로 조정해야 한다 - 데이터베이스가 과도한 읽기 / 쓰기 용량을 필요로 하지 않는다 - 데이터가 기존 스키마에 적합하지 않다 - 최상의 성능을 필요로 하지 않는 관계형 - 데이터 집합의 경우 관계형 - 데이터베이스 관리 시스템이 자원 소비가 적은 최고의 해결책이 될 수 있다 - 읽기 / 쓰기 속도가 기존 SQL 데이터베이스에서 경제적으로 지원할 수 있는 범위를 초과한다 - 데이터 스토리지 : 행과 열로 이루어진 테이블 - 데이터 스토리지 : 키 값 / 와이드 컬럼 / 그래프 / 등 - 스키마 : 고정 - 스키마 : 동적 - ex) Amazone RDS / Aurora - ex) .. 공감수 0 댓글수 0 2024. 3. 15.
  • AWS - IAM ○ 사용자 생성 ○ 그룹 정책 설정 >> ec2 에 대한 모든 권한 ○ 생성된 사용자로 로그인 # IAM 은 리전이 글로벌이다 ○ root 계정으로 돌아와야 그룹 생성 가능 # 펼쳐보기로 소스를 볼 수 있다 >> IAM 에서 권한은 작업이 명시적으로 거부되지 않는 선에서 명시적으로 허용되지 않는다면 기본적으로 거부된다 공감수 0 댓글수 0 2024. 3. 15.
  • AWS - Private VPC 프라이빗 서브넷 생성하여 외부 인터넷 구간과 통신하기 ○ 만들어둔 VPC 에 Private subnet 추가 ○ private 전용 라우팅 테이블을 하나 설정해서 서브넷 연결 >> 라우팅은 추가할 필요가 없다 ( private 이므로 X ) # VPC 하나에 인터넷 게이트웨이 하나를 연결할 수 있다 ○ private-server 생성 ( DB 전용 ) # 퍼블릭 IP 는 비활 ( private 이다 ) ◆ Public EC2 / Private EC2 ◇ Private-server 는 연결이 불가능하다 ( End Point 가 필요 ) ○ Public-server 에서 ssh 로 private-server에 접속하려는데 거부된다 >> 키로 인증을 선택했으므로 권한이 안된다 ○ 사용자 데이터 편집으로 pri.. 공감수 0 댓글수 0 2024. 3. 15.
  • AWS - VPC VPC 란 ● VPC [ virtual private cloud ] : 독립된 가상의 클라우드 네트워크 - VPC 내에 IP 대역 / 인터페이스 / 서브넷 / 라우팅 테이블 / 인터넷 게이트웨이 / 보안 그룹 / 네트워크 ACL 등 생성 제어 인터넷 게이트웨이 - VPC 와 인터넷 간의 논리적인 연결 [ 간략하게 VPC 에서인터넷 구간으로 나가는 관문 ] - 인터넷 게이트웨이는 VPC 당 1개만 연결이 가능 - 인터넷 게이트웨이를 통해 외부 인터넷 구간으로 통신할 수 있는 대상은 퍼블릭 IP 를 사용하는 퍼블릭 서브넷 내의 자원 - 이러한 퍼블릭 서브넷은 자신의 라우팅 테이블에 외부 인터넷 구간으로 나가는 타깃을 인터넷 게이트웨이로 지정 NAT 게이트웨이 [ Network Address Translati.. 공감수 0 댓글수 0 2024. 3. 14.
  • AWS - MFA 설정 ● MFA : Multi-Factor Authentication [ 비밀번호 + OTP ] ○ Security Key : USB 꽂아서 인증 ○ Hardware TOTP token : 비싼거.... ○ Authenticator app : 싼거.... >> 핸드폰에서 다운로드 하여 MFA 코드 2번 입력 ● 로그아웃 하여 확인한다 >> 비밀번호 입력 후 MFA 코드 인증이 나오면 제대로 완료되었다 공감수 0 댓글수 0 2024. 3. 14.
  • AWS - EC2 ● 인스턴트 시작 [ 가상머신 만들기 ] ○ 프리티어 사용 가능한Linux OS 설정 ○ t2.micro : 1 vCPU / RAM 1G >> 다양한 옵션이 있다 [ 메모리가 0.5 G 도 존재한다 : 가상머신이므로 ] ● 퍼블릭 IP 를 활성화해야 원격 접속이 가능하다 [ 인터넷 가능 ] >> 기본 서브넷과 네트워크 / 보안그룹 ( 방화벽이라고 생각하자 > 기본 방화벽은 SSH만 가능하다 ) # VPC 는 리전 당 5대까지 만들 수 있고, 모자랄 때 요청이 가능하지만 타당성을 확인하고 허용해준다 ▩ default 보안그룹으로는 연결이 안된다 ○ 보안그룹에서 아웃바운드는 모두 허용이므로, 인바운드에 SSH 를 추가해준다 ○ 원격접속이 안된다 ( 퍼블릭 키가 필요하다 ) >> 웹 콘솔로 접속 >> 웹콘솔 .. 공감수 0 댓글수 0 2024. 3. 14.
  • AWS 클라우드 란? : 인터넷을 통해서 언제 어디서든지 원하는 때 원하는 만큼의 IT 리소스 [ 컴퓨팅 / 스토리지 / 네트워크 ] 를 손쉽게 사용할 수 있게 하는 서비스 클라우드 서비스의 종류 IaaS [ Infrastructure as a Service ] - 가장 기본적인 IT 자원인 서버 / 네트워크 / 스토리지 자원을 클라우드 사업자가 제공 + 운영 - 사용자는 가상 서버에 필요한 프로그램을 설치하여 사용 + 운영 관리 EC2 ( 컴퓨팅 ) / VPC ( 네트워크 ) / EBS ( 스토리지 ) Paas [ Platform as a Service ] - IT 자원 이외에도 운영 체제와 개발에 필요한 Middleware 와 Run Time을 제공 - 사용자는 사업자가 제공하는 미둘웨어와 런타임 환경에서 .. 공감수 0 댓글수 0 2024. 3. 14.
  • Minikube 설치 ● 파워셀에서 노트패드로 Vagrantfile 실행 start notepad++ .\Vagrantfile ● Vagrantfile Vagrant.configure("2") do |config| config.vm.define "minikube-new" do |cfg| config.vm.box = "generic/ubuntu2204" cfg.vm.provider "virtualbox" do |vb| vb.name = "minikube-new" vb.memory = "8192" vb.cpus = "2" end cfg.vm.host_name = "minikube.example.com" cfg.vm.network "private_network", ip: "192.168.77.10" end end https://m.. 공감수 0 댓글수 0 2024. 3. 13.
  • Kubernetes - secret / configmap ● secret 명령어로 숨겨야 할 것을 숨긴다 [ 보안 관련 ] >> 주로 환경변수에 값을 넣을 때 사용한다 # generic 은 옵션 kubectl create secret generic db-pw --from-literal password=mypass secret/db-pw created kubectl create secret generic db-user-pw --from-literal password=userpass secret/db-user-pw created ● secrets 생성 kubectl get secrets NAME TYPE DATA AGE db-pw Opaque 1 26m db-user-pw Opaque 1 2m25s ● 비밀번호를 보여주지 않고, 6글자인지만 보여준다 kubectl.. 공감수 0 댓글수 0 2024. 3. 13.
  • Kubernetes - wordpress 배포 실습 Mysql 관련 yaml 파일 ○ mysql-pvc.yaml kind: PersistentVolumeClaim apiVersion: v1 metadata: name: mysql-pvc spec: accessModes: - ReadWriteOnce resources: requests: storage: 3Gi ○ mysql-pv.yaml # hostpath 는 delete 를 위해서 /tmp 로 설정 kind: PersistentVolume apiVersion: v1 metadata: name: mysql-pv labels: type: local spec: capacity: storage: 5Gi accessModes: - ReadWriteOnce persistentVolumeReclaimPolicy: De.. 공감수 0 댓글수 0 2024. 3. 13.
  • Kubernets - pv / pvc 영구 볼륨 PV 영구 스토리지 볼륨을 설정하기 위한 객체 PVC 영구 스토리지 볼륨 사용을 요청하기 위한 객체 PV / PVC 의 라이프 싸이클 ● Provisioning - 볼륨으로 사용하기 위한 물리적인 공간 확보 - 프로비저닝은 디스크 공간을 확보하여 PV 를 생성하는 단계 Provisioning 정적 프로비저닝 PV / PVC 직접 생성하여 직접 사용하는 방식 동적 프로비저닝 ex 클라우드 ● Binding [ 바인딩 ] - 프로비저닝으로 생성된 PV 와 PVC 를 연결하는 단계 - PVC 를 통하여 용량 등 조건에 맞는 PV 연결 - PVC 한개가 여러 개의 PV 에 바인딩 될 수 없다 ● 사용 - PVC 는 파드에 설정되고 파드는 PVC 를 통해서 볼륨을 인식해서 사용 - 할당된 PVC 는 파.. 공감수 0 댓글수 0 2024. 3. 12.
  • Kubernetes - nfs-volume ● nfs.yml 생성 # volumeMounts >> 컨테이너 내의 nfs 공유디렉터리 마운트 포인터 # volumes >> 공유디렉터리 와 nfs server 주소 >> 밑에서 수정해서 실행할 예정 [ centos >> httpd ] #### : set list 로 띄어쓰기 꼭 확인 --- apiVersion: v1 kind: Pod metadata: name: nfs-storage-test spec: containers: - name: nfs-container-test image: centos:7 command: ["sh","-c","/usr/bin/sleep","3600s"] volumeMounts: - name: nfs-volume mountPath: /mnt volumes: - name: nf.. 공감수 0 댓글수 0 2024. 3. 12.
  • Kubernetes emptyDir ○ 컨테이너 파일시스템은 컨테이너가 실행되고 있는 동안만 존재 ○ 컨테이너가 종료되면 스토리지 볼륨은 삭제 ○ pod 내의 컨테이너가 crash 되어 삭제되거나 재시작 되더라도 emptyDir 의 라이프사이클은 pod 단위이기 때문에 emptyDir 은 삭제되지 않고 계속해서 사용 가능 ○ emptyDir 은 디스크 대신 메모리 사용하는 것도 가능 ● empty.yml 파일생성 apiVersion: v1 kind: Pod metadata: name: redis spec: containers: - name: redis image: redis volumeMounts: - name: redis-storage mountPath: /data/redis volumes: - name: redis-storage emp.. 공감수 0 댓글수 0 2024. 3. 12.
  • Kubernetes 커맨드 입력 쿠버네티스 / 도커 사용하여 파드의 아이피 주소를 출력 ● apache_new.yml 생성하여 command 입력 --- apiVersion: v1 kind: Pod metadata: name: apache-pod labels: app: myweb-svc spec: containers: - name: myweb-svc image: httpd:2.4 ports: - containerPort: 80 command: ["tail","-n","1","/etc/hosts"] ● CrashoLoopBackOff 상태로 계속 지속된다 >> 아파치가 올라가는데 문제가 있어서 계속 다시 올리는 시도 중 ● logs 에는 정상으로 올라오긴 한다 [vagrant@ms work]$ kubectl logs apache-pod .. 공감수 0 댓글수 0 2024. 3. 12.
  • Kubernetes - 볼륨 ● PV ( Persistant Volume ) ● PVC >> 누구든 요청할 수 있고 쉽게 만들 수 있다 ● HostPath - HostPath 볼륨은 호스트 노드의 파일시스템에 있는 파일이나 디렉터리를 직접 마운트 - 기존의 파드가 삭제되고 새롭게 파드가 스케줄링 될 때 만약 기존의 노드에 파드가 스케줄링 되지 않으면, 기존의 노드 데이터는 사용 할 수 없으므로 주의 - 쿠버네티스 사이트에서는 보안상 hostPath 를 사용하지 않는 것을 권장한다 - hostPath 볼륨을 사용해야 하는 경우, 필요한 파일 또는 디렉터리로만 범위를 지정하고 ReadOnly 로 마운트하는게 좋다 요약 : Node 1 에 파드 1의 스토리지를 만들어서 참조한다 / 다른 노드의 스토리지는 참조 못한다 ○ pvc 를 위한 .. 공감수 0 댓글수 1 2024. 3. 11.
  • Kubernetes 멀티 컨테이너 사용 ● 한 개의 Pod 에 멀티 컨테이너를 사용하게 되면 두 컨테이너는 Pod IP 를 사용하므로, 같은 IP 사용한다 ● 스토리지 볼륨을 공유할 수 있다 # kubernetes - loadbalance 참조 [ 중복됨 ] ○ multi.yml 생성 apiVersion: v1 kind: Pod metadata: name: test spec: containers: - name: first image: httpd:2.4 - name: second image: alpine command: ["/bin/sleep","3600s"] kubectl apply -f multi.yml ● 그냥 들어가면 first 로 들어가진다 - c 옵션 쓰면, first / second 설정해서 들어갈 수 있다 kubectl exec .. 공감수 0 댓글수 0 2024. 3. 11.
  • Kubernetes 복습 / 정리 ● 쿠버네티스는 다른 장비에서 실행되기 때문에, 백그라운드 실행 개념이 없다 ex> docker run -d ~ 같은 -d 옵션이 옵션이 없다 ● 전에 사용하던 Pods 제거 [vagrant@ms ~]$ kubectl get pods -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES nginx 1/1 Running 1 (11h ago) 2d22h 10.244.1.63 wk1.example.com test 2/2 Running 6 (14m ago) 2d20h 10.244.1.64 wk1.example.com ● apache.yml 생성 # 셀렉터의 내용이 파드의 내용과 같아야된다 [vagrant@ms work]$ ca.. 공감수 0 댓글수 0 2024. 3. 11.
  • Kubernetes 시작 전 점검 사항 ● Nodes 확인 [vagrant@ms ~]$ kubectl get nodes NAME STATUS ROLES AGE VERSION ms.example.com Ready control-plane 3d23h v1.29.2 wk1.example.com Ready 3d23h v1.29.2 wk2.example.com Ready 3d23h v1.29.2 ● Namespace 확인 [vagrant@ms ~]$ kubectl get ns NAME STATUS AGE default Active 3d23h kube-flannel Active 3d23h kube-node-lease Active 3d23h kube-public Active 3d23h kube-system Active 3d23h myns Active 3d.. 공감수 0 댓글수 0 2024. 3. 11.
    문의안내
    • 티스토리
    • 로그인
    • 고객센터

    티스토리는 카카오에서 사랑을 담아 만듭니다.

    © Kakao Corp.