| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 |
- 투자
- MySQL
- nodejs
- ChatGPT
- Ai
- Python
- 주식
- elasticsearch
- JS
- JavaScript
- API
- Linux
- Kibana
- FLUTTER
- LLM
- gemini
- unity
- docker
- 설정
- MSSQL
- 유니티
- error
- 재테크
- AWS
- Windows
- app
- 구글
- 바보
- 분석
- Today
- Total
목록AWS (50)
가끔 보자, 하늘.
인스턴스의 메타데이터란 실행 중인 인스턴스를 구성 또는 관리하는 데 사용될 수 있는 인스턴스 관련 데이터입니다. (link) 예를들어 현재 실행중인 인스턴스가 어느 리전에 속해 있는지를 알고 싶을 경우 사용할 수 있습니다. 환경변수로 설정하려면 각 리전별로 배포 프로세스를 분리해야 하지만 메타 데이터로 자신의 리전을 확인할 수 있으면 보다 간단히 해결할 수 있습니다. 메타 데이터를 확인하는 방법은 이 링크에 상세히 설명되어 있습니다. 여기서는 curl로 원하는 정보를 콘솔에서 확인하는 방법을 알아보고, python code로 처리하는 방법을 살펴보겠습니다. 우선 원하는 지역에 EC2 Instance를 하나 만들고 원격 접속을 합니다. 그리고 아래와 같이 입력해보세요. (169.254.169.254는 인스..
CDK로 RDS 생성 시 관리자 인증을 Secret Manager를 아래와 같이 설정하고 RDS 생성시 credential을 등록할 수 있습니다. import * as rds from 'aws-cdk-lib/aws-rds'; import { Credentials, DatabaseInstance, DatabaseInstanceEngine, DatabaseSecret, MysqlEngineVersion } from 'aws-cdk-lib/aws-rds' const vpc = new ec2.Vpc(this, _id); const instanceIdentifier = 'mysql' const credsSecretName = 'rds-pw' # rds를 위한 credential을 생성 const creds = n..
우선 aws congifure 설정이 필요합니다. 이와 관련된 내용은 이 링크(link)를 확인하시면 됩니다. 사용하는 계정에는 ECS Access 권한이 필요합니다. docker 설치 및 실행 우선 도커를 설치하면 됩니다. (아래 내용은 AWS Linux2를 기준으로 설명합니다.) sudo yum install docker -y sudo systemctl start docker 그리고 ec2-user에 docker group 권한을 설정합니다. sudo usermod -a -G docker ec2-user 설정 후 재접속해서 id 명령으로 ec2-user 계정에 docker 그룹이 할당된 것을 확인합니다. 이제 ecr 인증을 진행합니다. aws ecr get-login-password --region ..
원래 #5로 끝났지만 주의할 사항들이 몇 있어 간단히 정리하고 정말 마무리 하려 합니다. 1. 여러 스택을 정의한 경우 > cdk deploy/destroy stack01 // 이렇게 명시해서 특정 스택만 배포/삭제 > cdk deploy/destroy --all // 정의된 모든 스택을 배포/삭제 2. 분기 처리 방법 local의 config, env 파일 등에 정의한 내용을 활용하여 내부 분기처리를 할수 있습니다. 예를들면 config.json 파일에 배포할 지역을 정의하고 이를 읽어 처리할 수 있습니다 // config.json 의 예 { "regions" : ["us-east-2", "ap-northeast-2"] } 혹은 위와 같은 내용은 ddb에 업데이트하고 deploy/destroy 시 이를..
이번에는 CDK로 구축한 서비스가 과부하 상태에서 ECS에 설정한 대로 부하를 잘 분산하는지 확인해 보겠습니다. 우선 ECR에 등록할 간단한 API 서비스를 만듭니다. 이 예제에서는 /calc 라는 인터페이스를 통해 랜덤한 수를 소인수분해하고 해당 결과를 돌려주도록 하는 샘플을 추가해 보았습니다. CPU 부하를 기준으로 스케일아웃을 설정할 것이므로 수초 동안 연산을 수행 후 결과를 돌려주도록 합니다. import random from fastapi import FastAPI app = FastAPI() @app.get("/") def health_check(): return 200 @app.get("/calc") async def funcCalc(): x = random.randrange(99999999..
이번에는 ECS를 사용해 간단한 웹 서비스를 구성하는 방법을 살펴 보겠습니다. 웹 서비스는 사내에서 docker로 빌드되어 ECR로 업데이트 되어 있다고 가정하고 아래와 같은 절차를 통해 웹 서비스가 된다고 가정합니다. ECS Cluster의 Task들은 private subnet에서 실행되므로 ECR 접근을 위해 VPC Endpoint를 사용합니다.(참고 문서 링크) 유저들은 public subnet에 설치된 ALB(80 Port)로 접속을 시도 (실 서비스에서는 앞 단에 Route53을 설정하겠지만 여기서는 ALB로 바로 연결한다고 가정합니다.) ALB는 private subnet의 ECS Cluster(3000 Port)로 포워딩합니다. 이를 간단히 도식화하면 아래와 같습니다. 아래 예제 코드 중 ..
이번에는 보안 그룹을 생성해보고 MySQL ( serverless v1 포함)를 추가해 보겠습니다. 보안그룹 생성은 중복되는 요소들이 많아 별도의 생성함수를 만들고, 보안 그룹을 중복 사용되는 경우도 있으므로 dictionary에 저장하여 관리하고 사용할 수 있도록 만들어 보겠습니다. 아래는 보안 그룹을 생성하는 함수의 예 입니다. . //credential과 database 관련 lib를 import import * as rds from 'aws-cdk-lib/aws-rds'; import { Credentials, DatabaseInstance, DatabaseInstanceEngine, DatabaseSecret, MysqlEngineVersion } from 'aws-cdk-lib/aws-rds'..
이번에는 API 공신 문서를 살펴보고 AWS Console 에서 VPC 생성 시 생성되는 모든 리소스를 직접 생성하는 재활용 가능한 코드를 만들어 보겠습니다. API 문서 API 공식 문서 링크 - https://docs.aws.amazon.com/cdk/api/v2/docs/aws-construct-library.html 현재 CDK 는 v1과 v2 (https://docs.aws.amazon.com/cdk/api/versions.html)를 제공하고 있으며 우리는 v2를 기준으로 알아보겠습니다. API 문서를 살펴보신 분은 어떤 리소스를 생성하는 몇 가지 방법이 있다는 것을 알고 계실 겁니다. 예를 들어 VPC를 생성할 때 class Vpc를 사용하거나 혹은 class CfnVPC를 사용할 수 있습니..