전체 글111 도커파일 # 로컬에 있는 ECR 이미지를 베이스로 사용FROM [기존ECR_URI_이미지명]# 사용자를 root로 변경해서 수정 작업USER root# 사용자 수정RUN userdel -r sagemaker-user 2>/dev/null || true && \ groupdel sagemaker-user 2>/dev/null || true && \ groupadd -g 100 sagemaker-user && \ useradd -u 1000 -g 100 -m -s /bin/bash sagemaker-user && \ echo "sagemaker-user ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/sagemaker-user && \ echo "sagemaker-.. 2025. 8. 29. ㅕㅕ # SageMaker Studio 커스텀 이미지 - 모든 수정사항 반영FROM python:3.9-slim-bullseye# 환경 변수 설정 (단순화)ENV LANG=C.UTF-8 \ LC_ALL=C.UTF-8 \ PYTHONUNBUFFERED=1 \ PIP_NO_CACHE_DIR=yes# 시스템 패키지 설치RUN apt-get update --fix-missing && \ apt-get install -y --no-install-recommends \ ca-certificates \ sudo \ git \ curl \ wget \ build-essential \ gcc \ g++ \ && \ # Node.js 16.x 설치 .. 2025. 8. 25. SSL/TLS 핸드셰이크 SSL (Secure Sockets Layer)과 TLS (Transport Layer Security)인터넷에서 데이터 전송을 안전하게 암호화하는 프로토콜TLS는 SSL의 후속 버전이며, 보안이 강화된 프로토콜 동작방식 핸드셰이크과정으로 세션 생성 -> 데이터 전송 -> 세션 종료 핸드셰이크 과정클라이언트 헬로 : 서버로 연결 요청, 사용가능한 암호화 알고리즘, SSL/TLS 버전 전달서버 헬로 : 암호화 방법 선택 후 인증서를 클라이언트에게 전달클라이언트 인증 : 서버의 인증서를 CA에 검증클라이언트 예비 마스터 암호 전달 : "예비 마스터 암호"라고 하는 무작위 바이트 문자열을 하나 더 전송. 예비 마스터 암호는 공개 키로 암호화되어 있으며, 서버가 개인 키로만 해독서버 세션 : 암호 해독 후 세션.. 2025. 1. 15. AWS 리더십 원칙(LP원칙) 최근 솔루션즈 아키텍트 직무를 조사하면서 알게된 AWS 리더십 원칙(Leadership Principle)을 알게되었다. (줄여서 LP 원칙이라고 부른다) AWS가 원하는 인재상이기도 하며 메뉴얼처럼 정해져있다. 솔루션즈 아키텍트 면접을 볼 때 자신의 경력이 해당 항목에 적용되는지 체크리스트처럼 활용하면 좋을 것 같다. 성장해나가면서 나의 부족한 점을 메꿔보는 것도 좋을 것 같다. 현재 나의 실력과 상황에서 나름대로 한줄평을 메모해놓았다. 훗날 다시봐도 똑같은 생각을 하고 있을지 궁금하다. 아래 내용은 AWS 공식 홈페이지에서 가져온 내용이다. 1. 고객 집착 리더는 고객으로부터 시작해서 그에 맞춰 일합니다. 고객의 신뢰를 얻고 유지하기 위해 열정적으로 일합니다. 리더는 경쟁자에게 주의를 기울이지만 고객.. 2023. 8. 17. 테스트와 벤치마크 인터페이스 package main import "fmt" type Attacker interface { Name() string } type DamageTaker interface { DealDamage(attacker Attacker, damage int) } type Player struct { name string } type Monster struct { hp int } func (p *Player) Name() string { return p.name } func (p *Player) Attack(dt DamageTaker) { dt.DealDamage(p, 100) } func (m *Monster) Name() string { return "Monster" } func (m *Monster).. 2023. 7. 18. go 언어 동시성 프로그래밍 [고루틴 사용] //ch24/ex24.1/ex24.1.go package main import ( "fmt" "time" ) func PrintHangul() { hanguls := []rune{'가', '나', '다', '라', '마', '바', '사'} for _, v := range hanguls { time.Sleep(300 * time.Millisecond) fmt.Printf("%c ", v) } } func PrintNumbers() { for i := 1; i 2023. 7. 10. go언어 기초 1. 폴더 생성 2. .go 파일 생성 및 작성 3. Go 모듈 생성 4. 빌드 5. 실행 Hello World!를 출력하는 예제 package main import "fmt" func main() { fmt.println("Hello World!") } [변수] 변수 선언 var a int = 10 var msg string = "Hello Variable" b := 5 [fmt 패키지를 이용한 텍스트 입출력] 표준 입력 스트림을 비우는 Scanln() //ch5/ex5.8/ex5.8.go package main import ( "bufio" // ❶ io를 담당하는 패키지 "fmt" "os" // 표준 입출력 등을 가지고 있는 패키지 ) func main() { stdin := bufio.NewRea.. 2023. 7. 10. GO 언어로 만드는 웹서버 REST API 웹서버 만들기 //ch30/ex30.3/ex30.3.go package main import ( "encoding/json" "net/http" "sort" "strconv" "github.com/gorilla/mux" # RESTful API를 쉽게 만들 수 있도록 지원해주는 gorilla/mux 패키지 설치 ) encoding/json: 이 패키지는 Go에서 JSON 데이터를 다루기 위한 기능을 제공합니다. JSON 데이터의 인코딩 및 디코딩, 구조체와 JSON 간의 변환 등을 수행할 수 있습니다. net/http: 이 패키지는 Go에서 HTTP 클라이언트 및 서버를 작성하기 위한 핵심 기능을 제공합니다. HTTP 요청 및 응답을 다루고, 서버를 만들고 실행하는 데 사용됩니다. sor.. 2023. 7. 8. s3 + codepipeline 순서 1. 파이프 라인 구축 (S3 - CodeCommit - CodePipeline) 2. 테라폼 코드 실행(Serverless 생성) 출력되는 URL로 소스코드 수정 후 배포 (S3와 Serverless 연결) 1. 파이프 라인 구축 (S3 - CodeCommit - CodePipeline) IAM에서 자격증명 생성 생성 후 나오는 사용자 이름, 비밀번호 저장해두기 codecommit repository 생성 리포지토리 URL 복사해두기 vscode에서 작업 파일을 생성하고 해당 경로에서 git 명령 실행 git clone [리포지토리 주소] Credential 창에 발급받았던 액세스 정보를 넣는다 $ mkdir s3+codepipeline $ cd .\s3+codepipeline\ $git clon.. 2023. 7. 6. 쿠버네티스 RBAC yaml 파일 매니페스트라고 한다. 쿠버네티스 오브젝트를 생성하는 데 필요한 메타 정보(스펙)를 파일로 만들어 관리 API 서버 사용자 인증, 사용자가 보낸 명령어(ex kubectl create -f deployment.yaml) 철자 검증, kubele에게 파드 생성 지시 API 서버는 파드를 만든다는 사실을 etcd에 알리고 사용자에게 파드가 생성되었음을 알림 etcd 클러스터에 필요한 정보, 파드와 같은 리소스들의 상태 정보를 저장 kubelet 스케줄러 파드를 위치시킬 워커 노드 리소스(CPU나 메모리 사용량)를 확인하고 API 서버에 알림. 컨트롤러 매니저 kube-controller-manager : 다양한 컴포넌트의 상태를 지속적으로 모니터링하는 동시에 실행 상태 유지하는 역할 cloud-.. 2023. 7. 3. api-gateway-lambda-dynamodb 테라폼 스크립트 초기 코드 vi main.tf provider "aws" { profile = "default" region = "ap-northeast-2" } resource "aws_dynamodb_table" "product_table" { name = "PRODUCT" billing_mode = "PAY_PER_REQUEST" hash_key = "product_id" attribute { name = "product_id" type = "S" } attribute { name = "category" type = "S" } attribute { name = "product_rating" type = "N" } global_secondary_index { name = "ProductCategoryRatingInd.. 2023. 6. 30. 쿠버네티스(1.22.1) 세팅 정리 + 헬름 환경 세팅 가상머신 만들기 2core 4GiB 서버 네트워크 설정 - 어댑터1: NAT Network, 어댑터2: 호스트 전용 어댑터 # yum update -y # yum install -y bash-completion # cd /etc/sysconfig/network-scripts/ # vi ifcfg-enp0s8 ONBOOT=yes # systemctl restart network 가상머신 내보내기 MobaXterm 접속 호스트 이름 설정 # hostnamectl set-hostname master1 # hostnamectl set-hostname worker1 # hostnamectl set-hostname worker2 --- All Node --- 모든 노드에 적용 # cat /etc/host.. 2023. 6. 29. 이전 1 2 3 4 ··· 10 다음