본문 바로가기

분류 전체보기219

[EC2] 실습 : 직접 만든 키페어 / 스크립트로 인스턴스 시작 EC2 인스턴스 실습 팁   실습 : 직접 만든 키페어를 사용한 인스턴스 생성로컬에서 키페어 만들기- 프라이빗키(개인키) 생성하기openssl genpkey -algorithm RSA \    -out my_private_key.pem \    -pkeyopt rsa_keygen_bits:2048- 퍼블릭 키 생성 openssl rsa -pubout \    -in my_private_key.pem \    -out my_public_key.pem - 개인키 권한 축소(안하면 쓰질 못함) chmod 400 my_private_key.pem키페어 등록하기- 퍼블릭 키 복사cat my_public_key.pem  BEGIN과 END사이 복사  * 파일이 아닌 텍스트로 등록하기 위함- EC2 > 키페어 > 작.. 2024. 11. 20.
[VPC] 라우팅 테이블 작성 방법 라우팅 테이블VPC의 네트워크를 제어하는데 주요한 기능을 하는 라우팅 테이블에 대해 톺아본다.라우팅 테이블(RT)데이터를 통신하기 위한 경로들을 모아놓은 표- 네트워크 패킷이 목적지에 도달할 수 있도록 경로(경유지)를 지정하는 데이터베이스- 각 라우트(route)는 네트워크 목적지(IP주소 또는 네트워크주소)가 다음홉으로 어디로 가야할지 지정한다. 서브넷 레벨에서 동작- 연결된 서브넷에서 발생하는 네트워크 트래픽을 제어함- vpc 생성시 기본적으로 기본 RT(Main RT)가 생성되나, vpc레벨이 아닌 서브넷과 연결되어야지 기능을 하게 되는 것  (vpc는 하나 이상의 서브넷이 존재한다)- 서브넷은 하나의 RT에만 연결될 수 있다aws 특이사항- 한국어 사이트는 목적지가 대상으로 잘못 번역되어있음(대상.. 2024. 11. 19.
[VPC] 세밀하게 제어하는 리소스간 통신 규칙 VPCAWS에서 제공하는 가상의 프라이빗 클라우드을 사용해본다.포스팅 순서연관 CS - IPv4 CIDR - Bastion Host / Jump SeverVPC(Virtual Private Cloud)VPC의 주요 구성 요소실습 : VPC 시작 / 서브넷 생성실습 : 인터넷 게이트웨이 사용하기실습 : NAT 게이트웨이 사용하기실습 : 보안 - NACL 사용실습 : 엔드포인트를 사용한 S3 연결 연관 CSIPv4 CIDR- 네트워크의 주소를 표현하는 방법- IPv4 표기 옆에 슬래시(/)와 함께 네트워크 주소의 유효 비트 수(서브넷 마스크)를 나타낸다.- ex) 192.168.1.0/24는 네트워크 부분이 192.168.1.x까지이고 192.168.1.0 ~ 192.168.1.255 까지의 호스트를 가질 .. 2024. 11. 19.
[CloudHSM] 전용 하드웨어 장치를 제공받아 키 관리하기 CloudHSM사용자가 직접 관리하는 HSM 서비스에 대해 톺아본다. HSM(Hardware Security Module)암호화 키를 생성/저장하는 전용  하드웨어- 애플리케이션에서 암호화 키가 필요할 경우, 애플리케이션 측에서 다루는게 아니라, HSM이라는 전용 장치에서 암호화 키를 생성 및 관리- HSM에 들어 있는 정보(키)는 외부에 복사 및 재생성이 되지 않는다.고도의 보안이 필요한 조직/서비스에서 널리 사용- 금융 기관, 정부 기관, 보안 업계 등CloudHSM- AWS에서 전용 HSM 하드웨어를 제공받아 사용자가 직접 암호화 키를 관리한다.- 키의 생성, 저장, 삭제 등의 라이프사이클 관리를 사용자가 직접 수행- 더 높은 수준의 커스터마이징과 보안 제어 가능.  (대칭키만 가능한 KSM에 비해.. 2024. 11. 19.
[KMS] OpenSSL로 직접 키 구성요소 만들기 KMS with OpenSSL직접 키 구성요소를 만드는 과정을 진행해본다 외부 키 구성요소란?사용자가 직접 만든 키- AWS KMS에서 기본적으로 생성된 AWS 관리형 키 대신, 고객이 자체 생성한 키를 KMS에 업로드하여 사용할 수 있도록 해주는 기능사용자의 제어 하에 키 관리- 키의 보안과 관리에 대한 완전한 제어를 유지할 수 있다.- 특정 규제 요건이 충족되어야하는 경우 유리하다  OpenSSL오픈 소스 기반 암호화 라이브러리암호화 및 복호화- 대칭 키 암호화(예: AES)와 비대칭 키 암호화(예: RSA)를 지원- 데이터를 암호화하여 전송하거나 저장할 때 사용디지털 인증서 관리- X.509 인증서를 생성, 서명, 검증할 수 있다.- CSR(Certificate Signing Request) 생성 .. 2024. 11. 19.
[KMS] 암호키 서비스를 사용한 S3 암호화 KMSAWS에서 제공하는 Key Management Service에 대해 톺아본다.포스팅 순서연관 CS - 암호 관리 발전 과정 - 대칭키 / 비대칭키AWS KMS(Key Management Service)S3의 데이터 암호화 방식실습 : S3 객체 업로드시 SSE-KMS 암호화(CLI)실습 : S3 암호화 및 권한에 따른 접근 확인 (콘솔)실습 : 암호화 권한부여(CLI) 연관 CS암호 관리 발전 과정하드코딩 : 가장 원시적>> ap 서버저장 : 한곳에 모아 저장, 하지만 해킹시 탈취됨>> kms : 키를 관리해주는 서비스 탄생>> hsm : 전용하드웨어에 저장    가장 안전해서 금융, 정부기관들에서 사용대칭키 / 비대칭키- 대칭키 :  암호화하고 복호화하는 데 동일한 키를 사용  속도가 빨라 데이터.. 2024. 11. 19.
[CLI] AWS 리소스 접근방식 / 명령줄 사용 AWS CLI AWS 리소스 접근방법Management Console- AWS 웹 기반 GUI- 대시보드를 통해 상태와 통계 확인할 수 있음- 초보자나 테스트 환경에서 적합하다AWS CLI- 명령줄에서 AWS 서비스와 상호작용할 수 있는 도구- 스크립트로 자동화가 용이하여 CI/CD 등에서 활용된다AWS API- AWS가 제공하는 RESTful API를 사용하여 HTTP 요청으로 AWS 리소스를 관리- 언어독립적이다AWS SDK- Software Development Kit- 프로그래밍 언어용 라이브러리  (API 호출을 간소화한 방식)# AWS SDK인 boto3를 사용하여 S3객체를 업로드하는 예제import boto3s3 = boto3.client('s3')s3.upload_file('my_file.. 2024. 11. 15.
[외부lib] react-hook-form : 사용자로부터 데이터 입력받기 react-hook-form리액트에서 유용하게 사용할 수 있는 외부 라이브러리 react-hook-form 사용법을 톺아본다 기존방식 : 제어 컴포넌트사용자가 입력한 데이터를 처리하기 위해서는 제어 컴포넌트를 사용해야한다.제어 컴포넌트란?- Controlled Component- 입력 필드의 값이 React 컴포넌트 상태로 완전히 제어되는 컴포넌트- 입력 필드의 값이 컴포넌트 상태로 관리되고, 사용자가 값을 변경할 때 상태가 업데이트되는 구조- cf. 비제어 컴포넌트 : 입력필드가 스스로 값을 관리함. 이경우 리액트는 ref를 사용해 값을 읽어들임(useRef 사용)문제점- 입력 필드가 많아질수록 상태와 이벤트 핸들러 코드가 증가한다- 입력 변경시마다 상태가 업데이트되어 렌더링이 자주 발생한다//====.. 2024. 10. 15.
[Axios] 서버와의 HTTP 통신 Axios Axios란?JavaScript에서 사용되는 HTTP 클라이언트 라이브러리* 클라이언트란? 웹 브라우저와 같이 서버에 접속하기 위한 단말기(사용자)  서버와 대치되는 개념* HTTP란? 서버와 클라이언트가 통신할 때 따르는 규약특징1. 웹 브라우저와 Node.js 환경 모두에서 사용할 수 있다2. 자바스크립트의 Promise 객체 기반으로 동작한다.3. 서버에서 받은 응답을 자동으로 JSON 파싱한다.4. 요청/응답을 가로채서 중간에 로직을 추가하거나 헤더를 수정할 수 있다.5. 취소요청 기능을 제공해 불필요한 네트워크 요청을 방지한다.설치 및 사용npm install axiosimport axios from 'axios';에러처리방법1. Promise의 catch핸들러를 사용하기2. asyn.. 2024. 10. 8.
[Hook] 부수 효과 관리 : useEffect useEffect리액트에서 부수효과를 관리하는데 사용되는 훅인 useEffect를 톺아본다 부수 효과(Side Effects)란?일반적 의미- 함수가 어떤 동작을 할 때, input - output 이외의 다른 값을 조작하는 경우 부수 효과가 있다고 표현- 프로그램이나 컴포넌트가 자신의 경계를 넘어 외부 상태나 시스템에 영향을 미치는 작업리액트에서 의미- state와 props를 받아 UI를 그리는 주기능 외에 일어나는 모든 것- 일반적인 함수형 프로그래밍에서는 지양되나 현실적으로는 필수적임  모든 프로그램은 사용자와 상호작용하고, 데이터를 저장하거나 가져오며, 외부 시스템과 통신하는 등의 작업을 수행해야 하기 때문대표적인 예- Data Fetching  >> 외부세계에서 값을 가져오기 때문- DOM에 .. 2024. 10. 8.
[LLM] 프롬프트 엔지니어링과 RAG 딥러닝 발전 양상24-09-24에 진행되었던 에티버스의 AWS 워크샵에 기반한다. 포스팅순서대형 언어 모델 (LLM)추론 파라미터- 온도- 상위p- 상위k프롬프트 엔지니어링프롬프트 엔지니어링 기법검색증강생성 RAG 대형 언어 모델 (LLM)Large Language Model자연어를 이해하고 결과값을 자연어로 생성하는 파운데이션 모델chatGPT가 대표적인 예기존의 딥러닝은 연산 결과를 사람이 해석해야했다면 LLM은 처리 결과를 자연어로 내놓음으로써 딥러닝 이용에 대한 진입장벽을 낮추었다.트랜스포머 아키텍처를 기반으로 한다(연관 포스팅 : 301번 포스팅)  추론 파라미터LLM의 추론과정에서 일반적으로 적용되는 하이퍼 파라미터온도 (Temperature)- 모델의 응답에서 생성의 다양성과 창의성을 조절-.. 2024. 9. 30.
[발전양상] 파운데이션 모델과 생성형 AI 딥러닝 발전 양상24-09-24에 진행되었던 에티버스의 AWS 워크샵에 기반한다. 포스팅순서기반지식 : 학습방법론- 지도학습- 비지도학습- 강화학습기반지식 : 관련용어- 사전학습- 파인튜닝파운데이션 모델(FM, Foundation Model)생성형 AI (Generative AI)인공지능 in AWS - 배드락(Bedrock) - 세이지메이커(SageMaker) 기반지식 : 학습방법론지도학습 (Supervised Learning)- 입력값(데이터)과 결과값(라벨)을 함께 주고 학습을 시키는 것- 특징(feature)들을 직접 추출하고 분류작업을 한다.- 알려주지 않은 문제에 대해 답을 알려주지 못함비지도학습 (Unsupervised Learning)- 입력값에 대해 결과를 알려주지 않고 학습을 시키는 것.. 2024. 9. 25.
[토막정보] 다양한 개발용어 (2/2) 개발용어헷갈리는 개발용어들을 정리해본다.목차엘라스틱서치(Elasticsearch)쿠버네티스(Kubernetes, k8s)슬럼(Slurm)주피터 노트북(Jupyter Notebook)CommonJS싱글톤 패턴(Singleton pattern) 프록시(Proxy)**포스팅은 목차의 역순으로 기술되어있다.(최신순)     프록시(Proxy)사전적의미 : 대리인네트워크에서 클라이언트와 서버 사이에 위치해 요청(Request)과 응답(Response)을 중계하는 역할사용하는 이유- 보안 강화 : 클라이언트 또는 서버가 직접 노출되지 않음- 성능 향상 : 정적 리소스를 프록시 서버에서 캐싱하여 빠르게 전달.- 로드 밸런싱 : 여러 서버로 트래픽을 분산 처리.- 접근 제어 : 특정 IP나 URL에 대한 요청을 차단하.. 2024. 9. 12.
[Linux] 명령어 작성 팁 / 기본 명령어들(파일 및 동작 관련) 자주쓰이는 명령어들Linux 계열에서 자주 쓰이는 명령어들을 톺아본다 순서명령어 작성팁파일 및 디렉토리 관리- ls - cd - touch- pwd - mkdir/rmdir - rm - cp - mv파일 내용 보기 및 편집 - cat- vi- head- tail - nano 기타 명령어- clear- history - whoami - echo- sudo명령어 작성팁파일명 자동완성- 앞 몇글자만 적고 tab키를 누르면 자동완성된다- 파일이 하나인경우 글자 입력 안하고 바로 tab 눌러도 됨복사하기- 드래그하면 복사된다명령어 사용법 확인명령어 --help해당 명령어가 가진 옵션들과 간략한 설명을 출력함명령 취소(커맨드 복귀)Ctrl + C인터럽트를 발생시켜 명령어를 중단시킨다.  파일 및 디렉토리 관리ls .. 2024. 7. 23.
[Linux] 파일 권한과 소유자 다루기 권한과 파일 소유자리눅스에서 파일 권환과 소유자를 관리하는 방법에 대해 톺아본다 권한 확인하기파일정보 출력예제drwxr-xr-x 2 user group 4096 Jul 23 12:34 .drwxr-xr-x 5 user group 4096 Jul 23 12:30 ..-rw-r--r-- 1 user group 123 Jul 23 12:34 file1.txt- 명령어 : ls -al(모두보기+상세보기)- 읽는 법 :  권한문자열 링크수  소유자  소유그룹  파일크기  수정한날짜  파일이름권한 문자열 구조1. 첫번째 문자 : 파일유형   - : 일반 파일    d : 디렉토리    l : 심볼릭 링크    c : 문자 디바이스 파일    b : 블록 디바이스 파일2. 나머지 9자리 : 세 그룹의 권한  .. 2024. 7. 23.
[Compose] 설정파일(yaml)로 컨테이너들 관리하기 Docker Compose 도커 컴포즈란?다수의 Docker 컨테이너를 관리하는 도구- 여러 개의 서비스(컨테이너)를 한 번에 실행하고, 이 서비스들이 어떻게 상호작용해야 하는지 설정할 수 있다.- 다수의 컨테이너를 가지는 어플리케이션을 통합적으로 관리하기 좋다설정 파일(YAML)로 관리한다- 설정파일은 디폴트가 'docker-compose.yaml'이다- 각 서비스의 이미지, 환경 변수, 포트, 볼륨 등을 설정할 수 있다.주요 개념1. 서비스    - 설정파일에 정의된 각 컨테이너     - services 하위 뎁스로 정의한다.2. 네트워크    - 각 서비스간의 통신을 위한 경로     - 설정하지 않아도 '프로젝트명_default'로 자동생성된다.설치관련- 도커 데스크탑 설치시 자동으로 설치됨- .. 2024. 7. 22.
[Hook] 상탯값 관리 : useState useStateuseState를 통해 변화되는 UI데이터를 자동렌더링시키는 과정을 톺아본다 useState란?컴포넌트에서 상태변수(상탯값)을 추가한다컴포넌트가 렌더링될때마가 호출되지만 초기 렌더링시에만 초기 상태값을 설정하고 이후 렌더링에서는 이전 상태값을 유지한다상탯값이란?- 컴포넌트의 동적인 데이터를 관리하는데 사용되는 객체- 상탯값이 변경되면 리액트는 컴포넌트를 다시 랜더링하여 변경된 상태를 UI에 반영한다- 같은 컴포넌트를 여러번 재사용 하더라도 각자의 메모리 공간이 있기 때문에 상탯값도 별도이다.사용방법1. useState를 호출하면서 인수로 초기값을 보낸다.2. 반환되는 상탯값과 업데이트함수를 배열비구조화로 받는다.3. 업데이트함수를 이용해서 상탯값을 변경한다4. 변경 후 해당 컴포넌트는 자동.. 2024. 7. 10.
[Hook] 훅 기초 / 커스텀 훅 훅 기초 / 커스텀 훅  훅과 관련된 리액트 특성자동 렌더링 조건- 상탯값(props) 또는 속성값(state)으로 관리되는 UI데이터만 자동렌더링된다* 속성값 : 부모 컴포넌트에서 내려주는 값(관련포스팅 : 318번)  상탯값 : 컴포넌트 내부에서 관리// UI데이터를 상태값 또는 속성값으로 관리하지 않아서 자동반영이 되지 않는 사례let color = 'red';function MyComponent() { function onClkick() { color = 'blue'; // 값을 변경했지만 UI는 업데이트 되지 않는다 } return ( 좋아요 );} // 해당 버그를 개선한 예제 후술- 상탯값은 불변변수처럼 관리해.. 2024. 6. 12.
[Tkinter] GUI 어플리케이션 만들기 Tkinter파이썬으로 게임등을 개발할 때 유용하게 활용할 수 있는 tkinter에 대해 톺아본다 포스팅순서TkinterTk : 메인창 관리위젯 생성하기위젯의 공통 속성위젯의 공통 메소드위젯종류 - Label - Button - Canvas - Entry - Text - Checkbutton유용한 클래스들 - PhotoImage - BooleanVar유용한 함수들 - 시스템 폰트 확인하기 - 메세지박스 띄우기  TkinterTk란?- 수많은 프로그래밍 언어에서 GUI를 빌드하기 위한 기본적인 위젯 요소들의 라이브러리를 제공  * 위젯이란? GUI에서 사용자가 상호작용할 수 있는 구성요소    윈도우, 버튼, 레이블, 텍스트 상자 등의 형태Tkinter란?- Tk interface- Tcl/Tk GUI 툴.. 2024. 6. 9.
[DOM] 가상돔 활용 방식 가상돔리액트 요소(Element)와 가상돔에 심화적으로 톺아본다관련포스팅 : 206번 리액트 API로 요소 생성 가상돔브라우저 DOM을 변경하는것은 오래 걸리는 작업으로 이 문제를 해결하는 방식이다원리1. 메모리에 실제 DOM의 가벼운 사본을 생성한다.  이 사본은 JavaScript 객체 형태로, 실제 DOM 구조와 속성을 반영한다2. 애플리케이션의 상태가 변경되면 새로운 가상돔을 생성하고 이 둘을 비교해 변경된 부분만 실제 DOM에 반영한다.  리액트 요소의 형태리액트 요소는 JavaScript 객체로 콘솔 출력 시 다음과 같은 속성들을 확인할 수 있다.type- 요소의 타입- HTML의 태그는 따옴표로 감싸진 문자열로 표기된다- 직접 작성한 컴포넌트는 함수명이 표기된다.key- React에서 리스트.. 2024. 5. 31.
[웹서버] Nginx와 가상호스트를 활용해 배포하기 NginX Nginx란?아파치와 함께 사용률 1,2위를 다투고 있는 웹서버 프로그램* 웹서버 : 웹 브라우저와 같은 클라이언트로부터 HTTP 요청을 받아들이고, HTML  문서와 같은 웹 페이지를 반환하는 컴퓨터 프로그램** 서버개념 자세히 알아보기 : 60번 포스팅주로 HTTP 웹 서버(정적기능)로 사용되지만, 리버스 프록시, 로드 밸런서, 그리고 HTTP 캐시로도 활용된다  실습 명령어들설치하기1. 패키지 목록 업데이트   sudo apt update2. Nginx 패키지 설치   sudo apt install -y nginx    >> etc/nginx 경로에 파일들이 생성됨서비스 확인1. 웹 브라우저에서 퍼블릭 IP 주소를 입력하기   >> 정상적으로 설치되었을 시 환영 페이지가 나온다2. 명령어.. 2024. 5. 31.
[개발] 도메인 별 라이프사이클 도메인 라이프사이클도메인의 생명주기별 특징을 정의한다 목록골렘(golem) 생명주기고스트(Ghost) 생명주기능력치(States) 생명주기체육관(Gym) 생명주기 골렘(golem) 생명주기생성- 가입 필수 기재 : 이메일, 비밀번호, 닉네임  선택입력 : 본거지, 생년월일- 로디 서비스 가입시 1개의 골렘을 부여받는다- 해당 골렘은 능력치(stats), 역량(capacity)의 값이 디폴트값이다- 광채, 눈, 입 항목을 선택해서 자신의 겉모습(looks)을 꾸밀 수 있다수정- 본거겉모습(looks)- 겉모습을 꾸미는데 사용되는 아이템은 능력치로 교환할 수 있다- 겉모습에 사용되는 아이템들은 옷장(closet)에 저장되며, 집으로 지정된 gps에서만 장착할 수 있다  고스트(Ghost) 생명주기생성- 골렘.. 2024. 4. 8.
[개발] 도메인 컨셉 및 정의 도메인 컨셉 및 정의사용되는 도메인들을 세부적으로 정의하고기능과 제약사항을 정리한다목록유저 도메인- 골렘, Golem- 고스트, Ghost- 네비, The Navigator플랫폼 도메인- 능력치, Stats- 역량, Capacity- 겉모습, LooksFighjt Arena 도메인- 체육관, Gym- 뱃지, Badge유저 도메인골렘, Golem- 로디유저가 갖는 아바타- 아바타를 지도상에서 이동시켜 원하는 서비스를 이용한다- 다른 골렘과 인접 시 채팅 가능- 꾸미기 가능(색상, ACC, 표정, 의상 등)- 골렘 중 일부는 메시아가 될 수 있다고스트, Ghost- Fight Arena 서비스에서 사용되는 도메인- 아직 서비스를 이용하지 않는 유저이나, 특정 골렘에 의해 로디에 투영된 개체- 대응하는 실존 .. 2024. 4. 8.
[기획] 프로젝트 Fight Arena, 경험치 로직 정의 프로젝트 Fight Arena로디의 첫번째 프로젝트메타버스 세계관 [Los Demonios]에서 유저는 자신의 아바타 골렘을 이동시켜 다양한 서비스를 이용한다. 기본적으로 텔레포트를 통해 마을간 이동을 할 수 있지만, 유저가 현실의 특정 GPS에 위치해야만 방문할 수 있는 마을이 있다. 그 중 하나가 [Fight Arena]이다. 유도, 주짓수, 풋살, 테니스 등 자신의 기술을 연마하고, 그 결과를 대련 또는 시합으로 검증해볼 수 있는 종목들은 그 체육관의 GPS를 Fight Arena로 등록할 수 있다. 유저는 체육관에서 운동을 진행한 후 자신의 골렘에게 경험치를 부여하여 성장시킨다. 경험치를 좀더 빠르게 올리고 싶다면 다른 골렘과 대련을 해본다. 해당 골렘의 레벨에 따라, 그리고 상대가 이번 대련을 .. 2024. 4. 8.
[기획] 플랫폼 Los Demonios 개요, UIUX 기본 컨셉 플랫폼 Los Demonios목적자기 개발과 포트폴리오, 취미를 겸하여 만든 메타버스 플랫폼다양한 컨셉의 서비스들을 수용할 수 있도록 고안되었다컨셉원자로 구성된 세상에 천사들의 땅, 로스엔젤레스(Los Angeles)가 있다면 1과 0으로 구성된 세계에는 악령들의 땅, 로스디모니오스(Los Demonios, 이하 '로디'로 줄임)가 존재한다. 현실을 뒤틀린 시각으로 미러링한 이 세계관에서는 다양한 사건들이 벌어진다UIUX 기본 방식 : 맵(Map)과 스팟(Spot) 로디 유저는 맵을 돌아다니며 원하는 서비스를 제공하는 스팟에 접근해 서비스를 이용한다. 맵에 따라 이용할 수 있는 스팟들이 정해져 있다. 스팟의 유형은 입장하여 실내 UI에서 서비스를 이용하는 건물형과 접근 시 뜨는 팝업에서 메뉴를 선택하는 .. 2024. 4. 2.
[Shell Script] 명령어 순차 실행 Shell Script Shell Script 란?명령어 인터프리터인 쉘(Shell)을 통해 실행되는 스크립트 언어운영체제 명령어와 프로그래밍 언어의 기능을 결합하여 시스템 작업을 자동화하거나 여러 명령을 연속적으로 실행한다.사용방법- 생성하기 : 일반텍스트파일에 확장자를 .sh로 붙여준다- 실행하기 : './파일명' 명령어로 파일자체를 실행하거나 'sh 파일명'으로 실행한다* 파일자체를 실행하면 스크립트에 명시된 shebang(#! /bin/bash와 같은)에 따라 쉘이 결정된다  기본문법주석 - '#' 를 사용한다변수 할당 - '=' 를 사용한다변수 참조- '$' 를 사용한다- 명령어를 실행하여 그 값을 담으려면 '$()' 를 사용한다인수 받기- '$1', '$2', .. 를 사용한다- 명령어를 실행.. 2024. 3. 19.
[S3] 스토리지 서비스 : 보안적 측면에서 S3aws에서 제공하는 S3(Simple,Storage, Service) 서비스에 대해보안적 측면 중심으로 알아본다. 포스팅 순서S3란?유용한 명령어접근 권한 제어 종류실습 : ACL 적용(콘솔 / CLI)실습 : 버킷 정책 적용(콘솔)실습 : 임시 URL로 접근권한 제어하기 S3란?객체(Object) 저장 서비스- 파일을 객체 단위로 저장하며, 각 객체는 고유 키(Key)로 식별함- 물리적 디스크를 제공받는 것이 아닌 버킷(Bucket)단위의 논리적 컨테이너를 제공받는다.- 각 파일마다 엔트포인트를 제공하여 간단하게 접근이 가능하다빠르고, 안정적이며, 합리적인 비용- 지역시간 최소화를 위한 멀티파트 업로드를 지원- 99.999999999%(11개의 9)의 내구성을 제공하도록 설계- EC2의 스토리지를 .. 2024. 3. 1.
[EC2] 다양한 옵션 : 탄력적 IP, ELB EC2 : 다양한 옵션생성된 인스턴스에 적용할 수 있는 옵션들을 알아본다탄력적 IP(Elastic IP)탄력적 IP란?- 고정된 공용 IP 주소를 클라우드 인스턴스에 할당하여 인터넷과의 연결을 유지할 수 있게 하는 서비스- 서버가 재시작되거나 인스턴스가 교체되더라도 IP 주소가 변경되지 않도록 보장한다  >> Scale Up의 기본원칙은 현 인스턴스의 상태로 이미지를 만들고 해당 이미지로 더 좋은 인스턴스를 생성하는것  >> 인스턴스를 껐다 키는 과정에서 IP가 변화하지 않아야 함요금정책- 1개의 IP가 실행중인 인스턴스에 연결된 경우 : 무료- 2개 이상의 인스턴스와 연결되어있거나 연결되지 않은 IP가 있는경우 : 유료사용하기1. EC2 서비스 접속2. 네트워크 및 보안에서 [탄력적 IP] 선택3. 생.. 2024. 2. 2.
[CLI] 유용한 명령어들 다양한 명령어들 도커 명령어공식문서- https://docs.docker.com/reference/ - 왼쪽 메뉴에서 CLI Reference 선택>> 다양한 docker 명령어에 대한 설명을 볼 수 있다.특징- 권한거부될 시 앞에 'sudo'를 붙이면 된다- 컨테이너를 특정할때는 ID 또는 이름을 넣을 수 있다.  이때, ID는 앞 n글자만 입력해도 된다(n은 다른 ID와 구분되는 최소한의 길이)  유용한 명령어들로그확인docker logs 컨테이너명- 해당 컨테이너의 로그를 확인한다* 옵션 -tail n : 마지막 n개의 로그만 출력 -f : 실시간으로 생성되는 로그를 확인('ctrl + c'로 중단)파일복사docker cp 컨테이너명:파일경로 호스트경로- '파일경로'에는 컨테이너 내부의 경로를 파일.. 2024. 1. 21.
[Container] 도커 컨테이너 실습 / 포트포워딩 도커 컨테이너컨테이너를 생성하는데 필요한 개념들을 추가적으로 알아보고컨테이너 조작 실습을 진행해본다. 옵션 : 포트포워딩Container와 Host는 독립적인 실행환경이기 때문에 독립적인 port와 File System을 갖는다.* Host : 컨테이너가 실행중인 환경Host의 포트와 Container의 포트를 연결해야 외부로부터 요청을 받을 수 있다.>> docker run 명령어에서 포트포워딩을 지정한다 옵션 : 도커 데몬 마운트-v /var/run/docker.sock:/var/run/docker.soc- 호스트의 데몬을 컨테이너와 공유하는 옵션- 컨테이너 내부에서 외부의 다른 컨테이너를 관리하거나 새로운 컨테이너를 생성할 수 있음이유 : DinD를 피하기 위해- Docker-in-Docker : .. 2024. 1. 19.