https://github.com/zkfmapf123/ecs-master
ecs use terraform
https://github.com/zkfmapf123/ecs-master
Last synced: 10 months ago
JSON representation
ecs use terraform
- Host: GitHub
- URL: https://github.com/zkfmapf123/ecs-master
- Owner: zkfmapf123
- Created: 2023-04-06T06:25:23.000Z (about 3 years ago)
- Default Branch: master
- Last Pushed: 2023-07-01T03:29:46.000Z (almost 3 years ago)
- Last Synced: 2025-01-13T09:38:25.876Z (over 1 year ago)
- Language: TypeScript
- Size: 13.5 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# ECS use Terraform
## ECS Architecture

- ECS
- Container를 Orchestration해주는 Tool
- 이러한 EC2 Container 들을 ECS Cluster가 관리한다 (배포, 생성)
- EC2 Service들은 Auto Scaling을 처리한다
- ECS Launch Option
- Fargate
- Serverless
- Container에서 사용한 CPU와 Memory 사용량의 대해서만 비용측정
- 좀더 비싸지만 -> 규칙이 일정하지 않은 Traffic System은 Fargate 비용적으로 더 좋은 제안
- Serverlss인 만큼 -> Server에 직접 접근해서 Trouble Shooting이 불가능
- EC2 Type
- 그냥 EC2 + Auto Scaling
## Jenkins Docker 설치
- docker 설치 ubuntu
```
sudo apt-get update
sudo apt-get install -y \
ca-certificates \
curl \
gnupg \
lsb-release
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io
docker verision
```
- user, group 추가
```
sudo groupadd -g docker_group
sudo useradd -u 1000 -g -m -s /bin/bash docker_user
```
- Docker volume 추가
```
chmod 777 /var/run/docker.sock
docker volume create jenkins_file
```
- Dockerfile 실행
```Dockerfile
## Dockerfile.jenkins
FROM jenkins/jenkins:lts
USER root
RUN apt-get update \
&& apt-get -y install lsb-release \
&& curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg \
&& echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null \
&& apt-get update \
&& apt-get -y install docker-ce docker-ce-cli containerd.io
## if user_id = 1111
## if group_id = 1111
## ARG 형태로 진행해도 됨
RUN usermod -u 1111 jenkins && \
groupmod -g 1111 docker && \
usermod -aG docker jenkins
USER jenkins
```
- Docker run
```
docker build -f Dockerfile.jenkins -t jenkins .
docker run \
-d \
--name jenkins_container \
-p 8080:8080 \
-v jenkins_file:/var/jenkins_home \
--restart always \
jenkins
```
## Reference
