일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- AWS
- Linux
- API
- Python
- 영어
- Ai
- s3
- mariadb
- 설정
- sample
- React
- 바보
- nodejs
- Kibana
- docker
- elasticsearch
- MSSQL
- build
- app
- ssh
- ChatGPT
- JS
- 구글
- JavaScript
- 유니티
- Windows
- unity
- error
- MySQL
- Today
- Total
목록AWS (46)
가끔 보자, 하늘.

이번에는 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를 사용할 수 있습니..

Cloud Orchestration, K8s, CloudFormation, ECS 등의 원론적인 이야기에 대해서는 굳이 여기서 언급하지 않고 참고가 될 좋은 링크를 아래 추가합니다. https://www.vmware.com/topics/glossary/content/cloud-orchestration.html cloud orchestration이란? https://github.com/kubernetes/kubernetes Kubernetes https://aws.amazon.com/ko/containers/ AWS의 컨테이너 https://docs.aws.amazon.com/cdk/v2/guide/home.html AWS CDK Guide https://docs.aws.amazon.com/cdk/api/..

SSM 사용자 권한 생성 EC2 IAM Role에 사용할 Role 생성 및 방화벽 설정 SSM Agent 설치 VPC EndPoint 설정 GOSSM으로 연결하기 [ SSM 사용자 권한 생성 ] aws ssm 명령 대신 gossm을 사용합니다. gossm은 ssm으로 접속 가능한 ec2 instances를 콘솔창에 출력/선택해서 사용해 줄 수 있는 오픈소스 툴입니다. 이를 위해 ssm을 사용할 계정에 아래와 같이 인라인 정책을 추가하여 사용하게 합니다. { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "ec2:DescribeRegions", "ec2:DescribeInstanc..

이번에 Jenkins + ECS로 CI/CD를 구축하면서 겪었던 삽질을 정리해 보았습니다. 부디 이 글을 보시고 같은 삽질 덜 하시길 바랍니다. "Hello"라는 텍스트를 돌려주는 간단한 API 서비스를 만들고 배포하는 과정을 살펴보려 합니다. 아래와 같은 절차, 인프라를 구성해 볼 예정입니다. 작업할 순서는 다음과 같습니다. 계정 생성 ECR 등록 Jenkins 설정 및 배포 ECS 구축 서비스 시작하기 1. 계정 생성 우선 사용할 계정을 하나 생성하겠습니다. CD에 사용할 계정은 인프라 관리를 위한 중요 권한을 할당해야 하는데, 안쓸때도 권한을 유지하기 보다는 AssumeRole을 이용하여 CD 시에만 일시적으로 권한을 할당하여 사용하도록 하겠습니다. "사용자 권한"은 별도 설정을 하지 않고 완료합니..
An error occurred (AccessDenied) when calling the AssumeRole operation : User: arn:aws:iam::**************:user/ar_user is not authorized to perform: sts:AssumeRole on resource: arn:aws:iam::**************:role/test_role 위와 같은 에러는 두 가지 경우에서 발생할 수 있다. 첫 번째는 할당하고자 하는 role 이 없을 때. 에러 메세지가 권한이 없다고 나와서 애매한데 오타 등으로 이름을 잘못 지정하거나 삭제된 role을 할당하려고 할 때 위와 같은 에러를 볼 수 있다. 두 번째는 "신뢰 관계" 설정이 안되어 있을 때. 해당 role ..