오늘도 기록하는 중 GitHub

분류 전체보기 192

[AWS] IAM

AWS Identity and Access Management(IAM)IAM란?AWS Identity and Access Management(IAM)은 AWS 리소스에 대한 접근을 안전하게 제어하는 핵심 서비스다. IAM을 통해 사용자 인증(authentication)과 권한 부여(authorization)를 관리하며, AWS 계정 내에서 세분화된 접근 제어를 구현할 수 있다.IAM의 주요 기능은 루트 계정 보호, 사용자/그룹 관리, 역할 기반 접근 제어, 임시 자격 증명 발급으로 구성된다. 특히 루트 계정은 모든 권한을 보유하므로 일상 작업에서 사용을 지양해야 하며, IAM 사용자를 생성해 최소 권한 원칙을 적용하는 것이 필수적이다.IAM의 역할IAM은 AWS 전역 서비스로 리전에 종속되지 않으며, 다..

Cloud 2025.05.07

[AWS] VPC

VPC란?Virtual Private Cloud의 약자로, 독립된 가상 프라이빗 클라우드 네트워크를 의미하며, 이는 사용자만의 격리된 클라우드 네트워크를 구성할 수 있다! VPC 구조VPC 구조에 대해 알아보자. 아래는 1.0.0.0/16 ip CIDR로 구성된 vpc의 예시다. vpc 생성시 가상 라우터도 생성된다. 해당 가상 라우터를 통해서 목적지까지 통신할 수 있게 된다. 또한 vpc에서 서브넷을 통해서 부분 네트워크를 분리하여 구성할 수도 있다. 위와 같은 서브넷 네트워크들은 가상 라우터에 연결돼 통신 환경을 이루고 있다. 또한 서브넷 안을 보면 보안 그룹이 존재하는데 이는 IT 자원의 보안을 위해 구성된 것이며, 네트워크 ACL을 구성해서 필요한 트래픽만 접근가능하게 구성할 수 있다. V..

Cloud 2025.05.02

[AWS] CloudFormation

CloudFormation이는 AWS의 서비스 중 하나다. AWS 클라우드 인프라를 특정 코드로 정의하고 선언해서 자원을 생성하거나 삭제한다. 이러한 인프라를 코드로 정의하는 것을 IaC라 한다. 다음과 같은 순서를 따른다.JSON 혹은 YAML 언어로 정의한다. 이를 cloudformation 프레임워크에 제출하면 해당 프레임워크가 이를 기반으로 스택을 생성한다. 스택은 다수의 AWS 클라우드 인프라들을 정의하는 단위다. 즉, 스택을 생성한다는 것은 템플릿에 정의된 인프라들을 순차적으로 생성한다는 것을 의미한다. 아래는 공식문서에서 볼 수 있는 템플릿 형식이다. YAML 기준!Resources: LogicalResourceName1: Type: AWS::ServiceName::ResourceTy..

Cloud 2025.05.02

Docker 보안 강화하기

Docker 절대 지켜요즘 해킹이다 뭐다 이야기가 많다. 몇 년이 지나고 몇 번이나 트렌드가 바뀌든 보안은 중요한 요소다. 절대적인 안전은 없으나 세심함, 노력, 능력 혹은 경각심에 따라 충분히 완전에 가까운 보안 체계를 구성할 수 있다고 생각한다. 그러니 이번에는 Docker에서 보안를 강화할 수 있도록 하는 방법을 알아보고자 한다. Docker를 기반으로 동작하는 우리 서비스를 절대 지키자. 최신 버전의 Docker간단하고도 중요한 모범 사례 중 하나가 상시 최신 버전으로 업데이트하여 알려진 취약점으로부터 시스템을 보호하는 것이다. 최신 버전은 기능 추가뿐만 아니라 간혹 중요한 보안 패치를 내포하고 있기 때문에 필수적이다. 다음은 우분투 환경에서 docker의 버전을 확인하고 최신 버전이 있다면 업그..

리눅스

Linux Shell 파일 구성자동화 목적의 리눅스 쉘 파일을 구성해보려고 한다.다음과 같은 상황을 가정하고 파일을 작성해보자.간단한 spring 앱을 실행하려고 한다.깃헙에 커밋을 푸시하면 이를 탐지해 github actions에서 스프링 어플리케이션을 실행할 인스턴스에 ssh로 접속하여 자동화 스크립트를 실행한다.스크립트 파일에는 다음과 같은 내용이 담겨 있다.깃헙 레포지토리(spring-app-simple)에서 변경사항을 Pull해온다.gradle로 빌드한다.기존 앱이 실행중인지 프로세스에서 확인한다. 실행중이면 종료한다.8080번 포트로 들어오는 트래픽을 처리하도록 한다.nohup 명령어로 백그라운드에서 실행하도록 한다.로그는 ./spring 경로에 저장한다.#!/usr/bin/env bashse..

Linux 2025.04.28

Docker Swarm!

Docker의 Swarm이란 최근 쿠버네티스에 대해 다루었는데 이번에는 도커 자체적으로 제공하는 오케스트레이션 툴인 "docker swarm"에 대해 다루겠다! 쿠버네티스와 무엇이 다른지도 짚어볼 생각이다.도커에서도 쿠버네티스와 같이 여러 대의 서버 자원을 합쳐 하나의 클러스터로 만들어서 자원을 병렬로 확장할 수 있다. 도커 스웜은 도커 엔진 자체적으로 내장된 기능이다. 클러스터 관리, 자동화, 고가용성 및 확장성을 제공한다.아래와 같이 스웜 모드 클러스터 정보를 출력해보면 기본적으로 비활성 상태인 것을 알 수 있다.docker info | grep SwarmSwarm : inactive # 출력구조도커 스웜 모드는 기본적으로 "매니저 노드"와 "워커 노드"로 구성돼 있다. 워커 노드는 실제 컨테이너가 ..

Shell

Shell이란?리눅스나 유닉스 시스템에서 자동화된 작업을 수행하기 위한 프로그램이다. 사용자와 운영체제 커널 사이의 인터페이스 역할을 하며, 사용자의 명령을 해석하고 실행한다.shell의 종류는 다음과 같다.bash : Bourne-Again Shell(프롬프트 : #, 경로 : /bin/bash)sh : Bourne Shell(프롬프트 : $, 경로 : /bin/sh)csh : C Shell(프롬프트 : %, 경로 : /bin/csh)ksh : Kron Shell(프롬프트 : $, 경로 : /bin/ksh)tcsh : TENEX C Shell(프롬프트 : >, 경로 : /bin/tcsh)Shell 명령어 기호shell 명령어를 다음과 같은 기호와 함께 사용하면 다양한 작업이 효율적으로 가능해진다.| :..

Linux 2025.04.23

Kubernetes (9)

스토리지와 로깅/모니터링 시스템쿠버네티스 스토리지 시스템쿠버네티스에서 영구적인 데이터 저장을 위해 PV(Persistent Volume)와 PVC(Persistent Volume Claim)를 사용한다. 이러한 시스템은 컨테이너가 재시작되거나 파드가 이동되어도 데이터가 유지될 수 있도록 해준다.PV와 PVC 생성 방법PV를 생성하는 방법에는 여러 가지가 있으며, 각 방법은 다양한 사용 사례에 맞게 설계되어 있다.정적 프로비저닝(Static Provisioning)클러스터 관리자가 직접 PV를 생성하고 PVC와 연결하는 방식이다.PV는 쿠버네티스 API에 저장되며, 클러스터 사용자가 사용할 수 있는 스토리지 리소스 정보를 포함한다.관리자는 미리 특정 용량의 PV를 생성해두고, 사용자의 PVC 요청이 있을 ..

Kubernetes (8)

Component And Networkkube-apiserverkube-apiserver는 쿠버네티스 클러스터의 제어 평면(Control Plane)의 핵심 구성 요소로, 클러스터의 상태를 관리하고 제어하는 역할을 한다. 모든 REST API 요청을 처리하며, 클러스터 내의 모든 컴포넌트와 통신한다. API 서버는 클러스터의 상태 정보를 etcd에 저장하고, 이를 기반으로 클러스터를 관리한다.주요 역할클러스터의 중앙 관리 지점: 모든 API 요청을 처리하고, 클러스터의 상태를 관리한다.인증 및 인가: 클러스터에 대한 접근을 제어하기 위한 메커니즘을 제공한다.데이터 저장 및 조회: 클러스터의 상태 정보를 etcd에 저장하고, 필요한 데이터를 조회한다.요청 인증 및 유효성 검증: 모든 요청은 먼저 인증과 검..

반응형