- EKS Fargatewngnl05Fargate Profile Role- 역활에서 EKS - EKs Pod 선택하고 생성하기 Create Service Account더보기먼저 IAM 콘솔에서 정책을 생성해줍니다.정책에는 App에서 사용할 권한을 추가해주세요. eksctl create iamserviceaccount \ --cluster= \ --namespace= \ --name= \ --attach-policy-arn= \ --override-existing-serviceaccounts \ --approve deployment.yamlcurl -o deployment.yaml https://raw.githubusercontent.com/wngnl-dev/AWS/main/EKS/Manifest/Deployment/..
- 2024-12-24 14:58:36
- EKS Loadbalancer Controllerwngnl05Albcontroller를 생성하기전에Public subnet Tag = kubernetes.io/role/elb : 1Private subnet Tag = kubernetes.io/role/internal-elb : 1 Loadbalancer-Role 을 생성해줍니다.CLUSTER_NAME=""eksctl utils write-kubeconfig --name $CLUSTER_NAMEeksctl utils associate-iam-oidc-provider --approve --cluster $CLUSTER_NAMEACCOUNT_ID=$(aws sts get-caller-identity --query Account --output text)CLUSTER_OIDC=$(aws eks describe-clus..
- 2024-12-24 14:58:14
- EKS Cluster 만들기wngnl05Install EKSctl & Kubectlaws configure EKS Install LinkARCH=amd64PLATFORM=$(uname -s)_$ARCHcurl -sLO "https://github.com/eksctl-io/eksctl/releases/latest/download/eksctl_$PLATFORM.tar.gz"tar -xzf eksctl_$PLATFORM.tar.gz -C /tmp && rm eksctl_$PLATFORM.tar.gzsudo mv /tmp/eksctl /usr/local/bin Kubectl Install Linksudo chmod +x ./kubectlsudo mv ./kubectl /usr/local/bin Eks 클러스터 설정Inbound : 80, 443Out..
- 2024-12-24 14:57:46
- 같은 IP로 3번 접속 시 Revoke 하기wngnl05useradd ssh @ -p2220 login.sh#!/bin/bashIP=/var/log/ip.logIP_ADDR=$(who -m | awk '{print $NF}' | sed 's/[()]//g')cat > $IP$IP_ADDREOFIP_COUNT=$(grep -c "$IP_ADDR" $IP)if [ $IP_COUNT -eq 3 ] then curl https://ppppul5018.execute-api.ap-northeast-2.amazonaws.com/revoke-functionfi .bashrcsh /home/user1/login.sh
- 2024-12-24 14:57:19
- 시작템플릿으로 Docker 배포하기wngnl05#!/bin/bash# ENVEC2_TOKEN=$(curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600")EC2_ID=$(curl -s -H "X-aws-ec2-metadata-token: $EC2_TOKEN" "http://169.254.169.254/latest/meta-data/instance-id")EC2_NAME=$(aws ec2 describe-instances --instance-ids $EC2_ID --query 'Reservations[0].Instances[0].Tags[?Key==`Name`].Value' --output text)ECR_URL=""ECR_T..
- 2024-12-24 14:56:40
- EKS - NetworkLoadBalancerwngnl05Service.yamlapiVersion: v1kind: Servicemetadata: name: namespace: annotations: service.beta.kubernetes.io/aws-load-balancer-type: "nlb" service.beta.kubernetes.io/aws-load-balancer-subnets: , alb.ingress.kubernetes.io/load-balancer-name: alb.ingress.kubernetes.io/scheme: #internet-facing #internal alb.ingress.kubernetes.io/healthcheck-path: spec: selector: : ports: ..
- 2024-12-24 14:56:18
- Docker로 Java ( jar, war ) 배포하기wngnl05참고 코드더보기package com.example.demo;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@SpringBootApplicationpublic class { public static void main(..
- 2024-12-24 14:53:12
- EKS - Grafanawngnl05Grafana를 설정하기 전에더보기AWS EKS Console에 접속하여 "추가기능"에서 EBS CSI Driver를 추가해줘야 합니다 EBS CSI Driver를 추가하면 이런 JSON형태가 뜨는데:sub 뒤에 "system:serviceaccount:kube-system:ebs-csi-controller-sa"를 추가한뒤 저장해주세요더보기Eks Cluster에서 사용하는 모든 퍼블릭 서브넷에 태그를 추가해줍니다.kubernetes.io/role/elb Eks Cluster에서 사용하는 모든 프라이빗 서브넷에 태그를 추가해줍니다.kubernetes.io/role/internal-elb Helm으로 Grafana를 설치해줍니다helm repo add grafana https://grafana.githu..
- 2024-12-24 14:52:41
- Lambda Revokewngnl05보안그룹에 포트를 추가하거나 삭제하면 22, 2220포트를 제외한 포트를자동으로 삭제되도록 만들어보겠습니다. Lambda CodeIAM Role : EC2 FULL ACCESSLambda 실행시간 : 30초더보기import boto3def lambda_handler(event, context): # 보안 그룹 ID security_group_id = '' # EC2 클라이언트 생성 ec2 = boto3.client('ec2') #보안 그룹의 현재 인바운드 규칙 가져오기 response = ec2.describe_security_groups(GroupIds=[security_group_id]) security_group = response['SecurityGroups..
- 2024-12-24 14:51:53
- Lambda를 이용한 Kinesis firehose 레코드 변환wngnl05Stream에 데이터 전송json_data='{"name": "wngnl", "age": 18}'aws kinesis put-record \ --stream-name \ --data "$(echo -n $json_data | base64)" \ --partition-key "" Lambda 코드더보기import base64import jsonfrom datetime import datetime, timedeltadef lambda_handler(event, context): # 현재 날짜&시간 now = datetime.today() now = now + timedelta(hours=9) year = now.year month = now.month day = now..
- 2024-12-24 14:51:20
- Lambda를 대상으로 한 ALB 생성하기wngnl05"EC2" - "대상그룹" 으로 가서 Lambda를 대상으로 한 대상그룹을 생성해줍니다.Lambda의 별칭이나 버전으로 대상을 선택하고로드밸런서로 이동하여 ALB를 생성해줍니다. 아래에 있는 람다의 코드를 사용하면/red 경로는 {color: red}/blue 경로는 {color: blue}그 이외의 경로는 {message: Invalid path}를 반환합니다.import jsondef lambda_handler(event, context): path = event['path'] if path == '/red': response_body = {'color': 'red'} elif path == '/blue': response_body = {'color': 'b..
- 2024-12-24 14:50:53
- EC2에서 SQS에 메세지 전송하는 코드wngnl05SQS를 생성한 다음앤드포인트로 연결해줘야 합니다. msg="this time is :$(date)"aws sqs send-message --queue-url --message-body "$msg" --endpoint-url https:// --region ap-northeast-2위의 코드는 현재의 시간을 SQS로 전송하는 코드 입니다.메시지를 보낸 다음에는 SQS에서 "메시지" - "메시지 폴링" 으로 메시지를 확인 할 수 있습니다
- 2024-12-24 14:50:20
- EC2에 로그인 시 특정 명령어 실행하는 방법wngnl05# 사용자의 홈 디렉토리로 이동cd ~ # 텍스트 에디터(vi, nano, 등)를 사용하여 셸 설정 파일 편집vi .bashrc # 또는 vi .bash_profilebashrc에 접속 후제일 밑에 실행할 명령어를 작성해준 후 저장해줍니다. source .bashrc # 또는 source .bash_profile로그인 한 것 처럼 테스트 할 수 있는 코드
- 2024-12-24 14:49:52
- EC2 Linux시간을 한국 시간으로 변경하는 코드wngnl05sudo rm -rf /etc/localtimesudo ln -s /usr/share/zoneinfo/Asia/Seoul /etc/localtime한국 사간으로 변경하는 코드 sudo rm -rf /etc/localtimesudo ln -s /usr/share/zoneinfo/ /etc/localtimetimedatectl list-timezones변경할 수 있는 시간대의 나라 리스트
- 2024-12-24 14:49:26
- Docker에서 Golang 실행하기wngnl05RUN go mod init .goRUN go getRUN go build -o # Go 어플리케이션을 빌드하는 데 사용할 베이스 이미지를 선택합니다.FROM golang:latest# 컨테이너 내부의 작업 디렉토리를 설정합니다.WORKDIR /app# 호스트의 모든 파일을 컨테이너의 /app 디렉토리로 복사합니다.COPY . .# curl을 설치합니다.RUN apt-get update && apt-get install -y curl# 애플리케이션을 실행합니다.CMD ["./"]
- 2024-12-24 14:49:02
- RDS SecretManger 생성하기wngnl05aws secretsmanager create-secret --name --description "My Secret" \--secret-string '{"username": "", "password": "", "engine": "mysql", \"host": "", "port": 3306, "dbClusterIdentifier": "", "dbname": ""}'DB를 생성하고 명령어를 실행시키면 SecretManger가 생성 및 연결됩니다."--secret-string"을 수정하고 "mysql"이 아닌 다른 DB를 사용할려면 engin도 수정해줘야 합니다. sudo yum install mariadb105 -ymysql -h -u -pdb="mysql -h -u -p"
- 2024-12-24 14:48:36
- Blue&Green을 이용해서 CodeCommit 업데이트 시 ECS의 서비스 업데이트 하기wngnl05Buildspec.ymlcurl -o buildspec.yml https://raw.githubusercontent.com/jinhyeokhyeok/Aws/main/ECS/Blue%26Greeen/buildspec.yml taskdef.jsoncurl -o taskdef.json https://raw.githubusercontent.com/jinhyeokhyeok/Aws/main/ECS/Blue%26Greeen/taskdef.json Codecommit에 "buildspec.yml", "taskdef.json"을 추가하고CodeBuild를 실행하면 ECR에 현재 한국시간을 태그로 이미지를 업로드 하고 ECS의 작업정의의 내용도 변경해줍니다. - ECS Service를 생성할때 꼭!! "Blue&Gree..
- 2024-12-24 14:48:08
- RollingUpdate로 CodeCommit 업데이트 시 ECS 서비스 업데이트 하기wngnl05Link Codecommit 특정 브런치에 업로드 이벤트가 발생하면CodePipeline이 감지하고 Codedeploy, Codebuild 실행해서ECS의 서비스를 업데이트 해주도록 구축해보겠습니다. 우선 ECS에서 클러스터를 생성하고 서비스를 ALB와 연결해서 배포해주세요. 이제 Codecommit을 생성하고 Instance에서 "git clone"으로 접속해줍니다.2023.09.30 - [Aws] - Codecommit에 Push 하는 방법Codecommit에서 브런치를 하나 생성하고 Dockerfile이랑 buildspec.yml파일을 작성해줍니다.Dockerfile은 사용자의 앱에 맞게 작성하고 version: 0.2phases: pre_build: commands: - ..
- 2024-12-24 14:47:19
- Codebuild에서 CodeCommit ID를 태그로 ECR에 업로드wngnl05version: 0.2phases: pre_build: commands: - - ECR_URL=885074404314.dkr.ecr.ap-northeast-2.amazonaws.com/test-ecr - COMMIT_ID=$(echo $CODEBUILD_RESOLVED_SOURCE_VERSION | cut -c 1-7) - echo $COMMIT_ID - LATEST=${COMMIT_ID:=latest} build: commands: - docker build -t $ECR_URL:$LATEST . post_build: commands: - docker push $ECR_URL:$LATEST
- 2024-12-24 14:46:47
- S3에서 이벤트 발생시 람다를 이용해서 CloudFront 무효화 하기wngnl05import datetimeimport boto3def lambda_handler(event, context): aws_region = '' distribution_id = '' # CloudfRont 무효화 paths_to_invalidate = ['/*'] # 무효화 경로 cf_client = boto3.client('cloudfront', region_name=cf_aws_region) korea_time = datetime.datetime.now() + datetime.timedelta(hours=9) korea_time_str = korea_time.strftime("%Y-%m-%d %H:%M:%S") # 원본 무효화 요청 생성 i..
- 2024-12-24 14:46:25
- Kinesis Stream에 레코드 전송wngnl05json_data='{"name": "jinhyeok", "age": 17}'aws kinesis put-record \ --stream-name \ --data "$(echo -n $json_data | base64)" \ --partition-key ""
- 2024-12-24 14:45:53
- EC2에서 RDS 접속wngnl05MySQL더보기데이터베이스 모듈 설치sudo yum install mariadb105 -y 데이터베이스 접속mysql -h -u --port=3306 -p 단축키 $db 명령어를 작성하면 바로 데이터베이스로 접속합니다.db="mysql -h -u -p"PostgreSQL더보기모듈 설치sudo yum install postgresql 데이터베이스 접속psql -h -u -p 단축키 $db 명령어를 작성하면 바로 데이터베이스로 접속합니다.db="psql -h -u -p"
- 2024-12-24 14:45:29
- Terraform 설치하는 방법 및 기본 코드wngnl05LinkWinodw - AMD64 를 다운 받아 주시고 압축을 풀어주세요."C:\terraform" 폴더를 만들어 준 뒤 terraform.exe를 넣어주세요. 시작 메뉴에서 "시스템 환경 변수" - "환경 변수" - "시스템 변수" - "Path" 를편집을 눌러 "새로 만들가"를 누른 뒤 "C:\terraform" 를 입력하고 적용해주시면 됩니다. Terraform 명령어더보기provider "aws" { access_key = "" secret_key = "" region = "" profile = "default"} provider.tf 파일로 Terraform 기본 설정을 해줍니다.terraform init Terraform 파일을 참고해서 컴파일 해줍니다.terraform plan Te..
- 2024-12-24 14:44:52
- Kinesis Firehose & Lambda를 이용한 레코드 변환wngnl05Stream에 데이터 전송json_data='{"name": "kayaya", "age": 17}'aws kinesis put-record \ --stream-name \ --data "$(echo -n $json_data | base64)" \ --partition-key "" Lambda 코드더보기import base64import jsonfrom datetime import datetime, timedeltadef lambda_handler(event, context): # 현재 날짜&시간 now = datetime.today() now = now + timedelta(hours=9) year = now.year month = now.month day = no..
- 2024-12-24 14:43:41
- Codebuild로 ECR 업로드 하기wngnl05Codecommit2023.09.30 - [Aws] - Codecommit에 Push 하는 방법위의 블로그를 참고해서 Codecommit에 파일을 업로드 해줍니다.Codecommit에는 "Dockerfile", "buildspec.yml"과 dockerfile에서 사용할 파일들을 업로드 해줍니다. Code Build 권한 생성IAM - Codebuild - Administartoraccess buildspec.yml더보기version: 0.2phases: pre_build: commands: # CodeCommit 저장소에서 소스 코드를 가져옵니다. - echo "Cloning source code from CodeCommit..." - - MY_ECR= ..
- 2024-12-24 13:36:22
- CodeCommitwngnl05- Codecommit 다운로드 : git clone - 처음 브런치 생성 코드 : git branch -M - 이후 브런치 생성 코드 : git checkout -b - 브런치 변경 코드 : git switch - 브런치 업데이트 : git pull origin - 브런치 삭제 : git push origin --delete - 기본 브런치 변경aws codecommit update-default-branch --repository-name --default-branch-name - Push 코드git add .git commit -m ""git push origin - Git 자격증명 저장git config --global credential.helper storegit pull위 코드..
- 2024-12-24 13:35:25
- Kinesis Firehose를 이용해서 S3에 Parquet확장자로 파일 저장하기wngnl05Kinesis Firehgose는 Stream에서 받은 데이터를 S3로 저장할려고 하면확장자가 없는 파일로 저장되게 됩니다. Glue를 이용한 "레코드 형식 변환"으로 파일에 확장자를 설정해주겠습니다.Glue에서 테이블을 "parquet"형식으로 생성하고 넘어가주세요 Firehose를 생성하고"구성" - "변형 및 레코드 변환" - "레코드 형식 변환"을 활성화 해줍니다."출력 형식"은 Apache parquet로 선택하고리전, 데이터베이스, 테이블을 추가하고 저장해줍니다. 이제 KinesisStream에 데이터를 전송하면 S3에 parquert파일로 저장됩니다.
- 2024-12-24 13:34:52
- Athena 쿼리를 Lambda로 가져와서 S3버킷에 csv파일로 저장하기wngnl05기초 요약명령어 모음 Glue에서 데이터베이스를 생성해줍니다. Glue를 이용해서 테이블을 생성합니다.Glue로 테이블을 생성할때 "Data Format"은 읽어올 데이터의 유형을 의미합니다. 직접 쿼리 읽어오기 select * from "".""; -- Lambda 코드 --import boto3# Athena 클라이언트 생성athena_client = boto3.client( 'athena', region_name='', aws_access_key_id="", aws_secret_access_key="")DATABASE_NAME = ""TABLE_NAME = ""s3_output_location = "" # 쿼리 결과 파일 저장 위치# 쿼리 명령어 작성query = f'SELE..
- 2024-12-24 13:34:04
- EKS - External-Dns 설정하기wngnl05Aws 문서 curl -o dns-policy.json https://raw.githubusercontent.com/wngnl05/Aws/main/Kubernetes/External-DNS/dns-policy.json json파일로 IAM 정책을 생성해주세요. eksctl create iamserviceaccount --name external-dns \--namespace default \--cluster \--attach-policy-arn \--approvekubectl get saeksctl명령어에 정책 ARN을 수정하고 실행한뒤"kubectl get sa"명령어로 "external-dns"가 생성되었는지 확인합니다. kubectl api-versions | grep rbac.authoriza..
- 2024-12-24 13:32:20
- EC2 서버에서 keypair, password 동시에 적용하기wngnl05Ec2 server에 접속하는 방법에는 "키페어", "비밀번호" 2가지가 있습니다.만약 "키페어", "비밀번호" 2개를 같이 사용하여 서버를 구축하고 싶다면 어떻게 해야될까요? 먼저 Ec2 Instance 서버를 생성할때 "키페어"를 꼭!! 사용해주세요sed -i "s/PasswordAuthentication no/PasswordAuthentication yes/g" /etc/ssh/sshd_configecho ":" | chpasswdsystemctl restart sshdecho "AuthenticationMethods publickey,password" >> /etc/ssh/sshd_configsystemctl restart sshdAMI 이름 : ec2-user, ubutu ....그 후 사용자..
- 2024-12-24 13:31:02
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)