- react-native 배포하기wngnl05eas.json{ "build": { "preview": { "android": { "buildType": "apk" } }, "preview2": { "android": { "gradleCommand": ":app:assembleRelease" } }, "preview3": { "developmentClient": true }, "preview4": { "distribution": "internal" }, "production": { "android": { "buildType": "app-bundle" } } }, "cli": { ..
- 2025-01-23 09:31:30
- Linux에서 pm2 실행하기wngnl05Installsudo yum install nodejs -ysudo npm install pm2 -g Runpm2 start "명령어" --name 이름 Run in React pm2 start "PORT=8080 npm run dev" --name 이름 Listpm2 list Deletepm2 delete 이름
- 2025-01-14 13:42:12
- git 사용하기wngnl05폴더에 repo 연결하기git remote add origin 폴더에 repo 연결 해제하기git remote remove origin 저장소 강제로 불러오기git reset --hard origin/main
- 2025-01-13 13:21:06
- Docker에서 node, ffmpeg 실행하기wngnl05FROM jrottenberg/ffmpeg:4.1-alpine AS ffmpegFROM node:lts-alpineCOPY --from=ffmpeg /usr/local/bin/ffmpeg /usr/local/bin/RUN apk add --no-cache python3 make g++ cairo-dev pango-dev pkgconfig jpeg-dev && rm -rf /var/cache/apk/*WORKDIR /usr/src/appCOPY . .RUN npm installRUN chown -R node:node /usr/src/appUSER nodeCMD [ "npm", "start" ]
- 2025-01-13 11:07:14
- express 에서 dynamoDB 사용하기wngnl05Install Aws-Sdknpm i aws-sdk dotenv Example /conf/dynamo.js더보기const AWS = require('aws-sdk');require('dotenv').config("../");// AWS DynamoDB 설정const configureDynamoDB = () => { AWS.config.update({ region: process.env.AwsRegion, accessKeyId: process.env.AwsAccess, secretAccessKey: process.env.AwsSecret, }); return new AWS.DynamoDB.DocumentClient();};// dynamoDB 삽입 함수..
- 2025-01-07 13:51:16
- Extension Storage 사용하기wngnl05manifest.json"permissions":[ "storage", "unlimitedStorage"], localconst { userEmail, userPassword } = await new Promise(resolve => { chrome.storage.local.get(["userEmail", "userPassword"], resolve); });chrome.storage.local.set({ userEmail: "test@example.com", userPassword: "test" }) syncconst { userEmail, userPassword } = await new Promise(resolve => { chrome.storage.sync.get(["userEmail",..
- 2024-12-30 15:48:13
- JS에서 MongoDB 함수 간편하게 사용하기wngnl05const mongoose = require("mongoose");require("dotenv").config();// MongoDB 연결 설정const { mongoHost, mongoPw, mongoUser, mongoDB } = process.env;const mongoURI = `mongodb+srv://${mongoUser}:${encodeURIComponent(mongoPw)}@${mongoHost}${mongoDB}?retryWrites=true&w=majority`;// MongoDB 연결mongoose.connect(mongoURI, { useNewUrlParser: true, useUnifiedTopology: true }) .then(() => console.log("MongoDB ..
- 2024-12-29 14:26:24
- 특정 태그가 들어간 인스턴스만 생성 및 삭제할 수 있도록 정책 설정하기wngnl05wsi-project: developer라는 태그가 들어간 인스턴스만 생성 할 수 있는 IAM 정책더보기{ "Version": "2012-10-17", "Statement": [ { "Sid": "ReadOnlyAccess", "Action": [ "ec2:Describe*", "ec2:GetConsole*", "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricStatistics", "iam:ListInstanceProfiles" ], ..
- 2024-12-27 15:21:24
- EKS Fargate Fluent-bit to Cloudwatchwngnl05Deployment에서 Fargat로 pod를 배포한뒤아래의 파일을 이용해서 namespace와 configmap을 생성해줍니다. pod에 exec로 접속하여 호출하였음에도 로그 그룹에 로그가 생성되지 않는다면deployment.yaml을 삭제하고 다시 시도해보세요. Down filewget https://raw.githubusercontent.com/wngnl-dev/AWS/main/EKS/CloudWatch/Fargate/aws-observability-namespace.yamlwget https://raw.githubusercontent.com/wngnl-dev/AWS/main/EKS/CloudWatch/Fargate/configmap.yaml Testaws logs filter-log-events..
- 2024-12-27 15:20:54
- WAF를 이용하여 POST Body에 특정 Key만 허용하기wngnl05{ "Name": "CheckForLengthKey", "Priority": 1, "Action": { "Block": { "CustomResponse": { "ResponseCode": 403 } } }, "VisibilityConfig": { "SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true, "MetricName": "CheckForLengthKey" }, "Statement": { "AndStatement": { "Statements": [ { "ByteMatchStatement": { "FieldTo..
- 2024-12-27 15:20:31
- EKS Node의 Pod Limit 해제하기wngnl05ip 제한 해제kubectl set env daemonset aws-node -n kube-system ENABLE_PREFIX_DELEGATION=truekubectl set env ds aws-node -n kube-system WARM_PREFIX_TARGET=100kubectl set env ds aws-node -n kube-system WARM_IP_TARGET=150kubectl set env ds aws-node -n kube-system MINIMUM_IP_TARGET=150노드의 남은 CPU와 메모리 확인kubectl top nodes
- 2024-12-27 15:20:01
- EKS External Secretwngnl05Link External Secret 역활 & 정책 만들기더보기REGION=""CLUSTER_NAME=""NAMESPACE=""cat >secret-policy.json External Secret 설치하기helm repo add external-secrets https://charts.external-secrets.io helm install external-secrets \ external-secrets/external-secrets \ -n kube-system \ --set serviceAccount.create=false Secret Reloader 설치하기helm repo add stakater https://stakater.github.io/stakater-chartshelm re..
- 2024-12-27 15:19:36
- EKS RBACwngnl05Github Cluster Rolek8s cluster의 모든 네임스페이스와 리소스에 대한 권한을 설정할려면wget https://raw.githubusercontent.com/wngnl-dev/AWS/main/EKS/RBAC/Cluster_Role/configmap.yamlwget https://raw.githubusercontent.com/wngnl-dev/AWS/main/EKS/RBAC/Cluster_Role/rolebinding.yamlRolek8s cluster의 특정 네임스페이스 내의 리소스에 대한 권한을 설정할려면wget https://raw.githubusercontent.com/wngnl-dev/AWS/main/EKS/RBAC/Role/configmap.yamlwget https://ra..
- 2024-12-27 15:19:11
- Lambda@edge로 S3 presigned URL 반환하기wngnl05Lambda 역활 신뢰 정책더보기{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "edgelambda.amazonaws.com", "lambda.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ]}Lambda 코드이 코드는 S3 버킷 /frontend 폴더에 있는 이미지를 params로 받고s3 presigned u..
- 2024-12-27 15:18:40
- Linux에서 lynx 사용하기wngnl05설치하는 명령sudo yum install lynx -y접속하는 명령 -- 접속이 안될시 서버에 문제가 없나 확인해 줍니다.lynx
- 2024-12-27 15:18:14
- WAF를 이용하여 특정 QueryString 차단하기wngnl05GET, POST를 제외한 Method를 차단하는 WAF 규칙입니다.아래는 WAF 규칙의 Json 입니다.{ "Name": "method-waf", "Priority": 0, "Statement": { "NotStatement": { "Statement": { "OrStatement": { "Statements": [ { "ByteMatchStatement": { "SearchString": "GET", "FieldToMatch": { "Method": {} }, "TextTra..
- 2024-12-27 15:17:40
- WAF를 이용하여 특정 Method 차단하기wngnl05GET, POST를 제외한 Method를 차단하는 WAF 규칙입니다.아래는 WAF 규칙의 Json 입니다.{ "Name": "method-waf", "Priority": 0, "Statement": { "NotStatement": { "Statement": { "OrStatement": { "Statements": [ { "ByteMatchStatement": { "SearchString": "GET", "FieldToMatch": { "Method": {} }, "TextTra..
- 2024-12-27 15:16:45
- WAF를 이용하여 User-Agent 차단하기wngnl05dynamodb, ecr.dk, ecr.apiURL 경로가 /static으로 시작하고 User-Agent가 safe-client가 아니면 차단하도록 구성했습니다.아래는 WAF 규칙의 Json 입니다.{ "Name": "user-agent-check", "Priority": 0, "Statement": { "NotStatement": { "Statement": { "ByteMatchStatement": { "SearchString": "safe-client", "FieldToMatch": { "SingleHeader": { "Name": "user-agent" } ..
- 2024-12-27 15:16:09
- EC2 CodeDeploy로 배포하기wngnl05Install Modulesudo yum updatesudo yum install ruby -ysudo yum insatll wget -ywget https://aws-codedeploy-ap-northeast-2.s3.ap-northeast-2.amazonaws.com/latest/installchmod +x ./installsudo ./install autoChecksudo systemctl status codedeploy-agentsudo systemctl start codedeploy-agent블로그Ec2 & CodeDeploy 역활 신뢰 정책역활을 생성하고 EC2와 CodeDeploy에 연결해주세요.{ "Version": "2012-10-17", "Statement": [ { "Effect..
- 2024-12-27 15:15:51
- SSM으로 EC2 접근 시 CloudWatch에 로그 기록하기wngnl05로그 스트림 생성하기aws logs create-log-stream \ --log-group-name \ --log-stream-name ssm_login.sh #!/bin/bashSESSION_ID=$(aws ssm describe-sessions --state Active --query 'Sessions[*]' --output json | jq -r 'max_by(.StartDate) | .SessionId')LOG_ENTRY=$(jq -n \ --arg eventTime "$(date '+%Y-%m-%dT%H:%M:%SZ')" \ --arg eventSource "ssm.amazonaws.com" \ --arg state "Active" \ --arg accountId "6546544..
- 2024-12-27 15:15:27
- Eks ArgoCD 실습wngnl05동영상ArgoCD 설치더보기#ArgoCD 설치curl -LO https://github.com/argoproj/argo-cd/releases/download/v1.4.2/argocd-linux-amd64chmod u+x argocd-linux-amd64sudo mv argocd-linux-amd64 /usr/local/bin/argocdexport PATH=/usr/local/bin:$PATHecho 'export PATH=/usr/local/bin:$PATH' >> ~/.bashrckubectl create namespace argocdkubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests..
- 2024-12-27 15:15:01
- Docker Nginx 배포하기wngnl05nginx.conf더보기events {}http { server { listen 80; server_name localhost; location / { root /usr/share/nginx; index index.html; } }}Dockerfile더보기FROM nginx:alpineCOPY nginx.conf /etc/nginx/nginx.confCOPY index.html /usr/share/nginx/index.htmlEXPOSE 80CMD ["nginx", "-g", "daemon off;"]
- 2024-12-27 15:14:39
- Vpc Lattice를 이용하여 외부로 부터 /health 차단하기wngnl05Link Lattice를 설정하기 전에 Node의 보안그룹에서 인바운드를 AnyOpen 해줍니다. Lattice 대상그룹을 먼저 만들어줍니다.대상 유형은 ip로 선택하고Ipv4 주소는 EKS에서 만든 대상그룹에 연결되어 있는 IP를 넣어줍니다,이제 Lattice 서비스를 생성해줍니다. 마지막으로 Lattice 서비스 네트워크를 생성해줍니다.Lattice 서비스 네트워크에서 위에서 만든 서비스를 연결해주고Vpc Lattice Service 에 호출을 보낼 VPC를 연결해줍니다.보안그룹은 선택하지 않습니다 Lattice 대상그룹 확인TARGET_GROUP_ID=$(aws vpc-lattice list-target-groups --target-group-type IP | jq -r '.items[].id')a..
- 2024-12-27 15:14:23
- CodePipeline 스테이지에서 검토할 URL 설정하기wngnl05buildspec.yaml더보기version: 0.2env: variables: - 코드phases: pre_build: commands: - 코드 build: commands: - 코드 post_build: commands: - 코드 - echo $CODEBUILD_RESOLVED_SOURCE_VERSION > commit_id.txtartifacts: files: - 코드 - 'commit_id.txt' 우선 Code Pipeline을 준비해줍니다. Code Pipeline > 편집 > 편집 : Source 를 편집해 줍니다.변수 네임스페이스에 "NewCommit"을 작성해줍니다. CodeBuild와 CodeDeploy 사이에 스테이즈 ..
- 2024-12-27 15:13:44
- CodeBuild ID로 ECR 업데이트 및 ECS 서비스 업데이트 하기wngnl05appspec.yml : CodeDeploy에서 애플리케이션 배포를 정의하고 제어하는 설정 파일buildspec.yml : CodeBuild에서 실행할 명령어를 작성한 파일taskdef.json : ECS의 작업정의 ECS Service를 배포할때 Blue&Green으로 설정해주세요.CMD-SHELL, curl --fail http://localhost:8080/health || exit 1Download Filewget https://raw.githubusercontent.com/wngnl-dev/AWS/main/ECS/appspec.yamlwget https://raw.githubusercontent.com/wngnl-dev/AWS/main/ECS/taskdef.jsoncurl -o buildspec..
- 2024-12-27 15:13:15
- ECR PULL 차단하기wngnl05{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyPullForSpecificUser", "Effect": "Deny", "Principal": { "AWS": "" }, "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer" ], "Resource": "arn:aws:ecr:{REGION}:{AWS_ACCOUNT_ID}:repository/{REPOSITORY_NAME}" } ]}
- 2024-12-27 15:12:51
- Fluentbit Sidecarwngnl05NameSpacekubectl create ns fluentdApply CloudWatch-Namespacekubectl apply -f https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/daemonset/container-insights-monitoring/cloudwatch-namespace.yamlCLUSTER_NAME=REGION=FluentBitHttpPort='2020'FluentBitReadFromHead='Off'[[ ${FluentBitReadFromHead} = 'On' ]] && Flue..
- 2024-12-27 15:12:31
- Linux Server에서 OpenSearch로 로그 보내기wngnl05OpenSerch 생성하기 참고2024.04.17 - [Aws] - EKS Fluent-Bit to OpenSearchOpenSearch 설정Security 선택하기Create new roleEc2에 연결된 역활 이름역활 넣어주기역활 넣어주기Mapped users를 누르고EC2 역활의 ARN 작성하고 생성Python app을 Ec2에서 nohup으로 실행Install Fluentbitcurl https://raw.githubusercontent.com/fluent/fluent-bit/master/install.sh | shsudo systemctl enable --now fluent-bitsudo ln -s /opt/fluent-bit/bin/fluent-bit /bin/Fluentbit 설정 파일sud..
- 2024-12-27 15:03:38
- Dockerfile 로 Python 앱 배포하기wngnl05FROM ubuntu:latestRUN apt update -y && \ apt install -y curl python3 python3-pip python3-venvRUN python3 -m venv /opt/venv && \ /opt/venv/bin/pip install --upgrade pip && \ /opt/venv/bin/pip install flaskCOPY . .RUN mkdir /logsENV PATH="/opt/venv/bin:$PATH"EXPOSE 8080CMD ["python3", "app.py"]
- 2024-12-27 15:03:06
- EKS CloudWatch Insightwngnl05Link 시작하기 전에 EKS NodeGroup IAM 역활에 아래의 정책을 추가해줍니다.CloudWatchAgentServerPolicy CloudWatch Insight 역활 생성하기CLUSTER_NAME=""OIDC_ID=$(aws eks describe-cluster --name $CLUSTER_NAME --query "cluster.identity.oidc.issuer" --output text | sed 's|https://||')ACCOUNT_ID=$(aws sts get-caller-identity --query "Account" --output text)OIDC_ARN="arn:aws:iam::$ACCOUNT_ID:oidc-provider/$OIDC_ID"aws iam create-rol..
- 2024-12-27 15:02:48
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)