์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
- APPJAM
- 0์ด๋์ด์๋๊ธธ
- ๋์ ๊ณํ๋ฒ
- SQL
- discardableResult
- Til
- GroupBy
- ํ๋ก๊ทธ๋๋จธ์ค
- concurrency
- SwiftUI ํํ ๋ฆฌ์ผ
- URLSession
- HAVIT
- ๋ค์ด๋๋ฏนํ๋ก๊ทธ๋๋ฐ
- ์ฐ์ํ์ค๋ถ๋ถ์์ด์ํฉ
- algorithm
- Swift
- ๊ณ ๋์ kit
- SOPT
- binarySearch
- SwiftUI
- dfs
- SwiftUI Tutorials
- DynamicProgramming
- BFS
- IOS
- algoritm
- ์ด์งํ์
- GCD
- duno
- ๊ธฐ์ด๋ฌธ๋ฒ
- Today
- Total
suvera-dev ๐ฅฆ
AWS ๋ฐฐํฌ์๋ํ ๊ตฌ์ถ _ 5. ECS ๋ฐฐํฌ ์๋ํ ํ ์คํธ ๋ณธ๋ฌธ
AWS ๋ฐฐํฌ์๋ํ ๊ตฌ์ถ _ 5. ECS ๋ฐฐํฌ ์๋ํ ํ ์คํธ
suvera 2023. 7. 14. 10:32์์ ๊ตฌ์ถํ ECS์์ ์๋ก์ด ์ด๋ฏธ์ง๊ฐ ์๋์ ์ผ๋ก ๋ฐฐํฌ๋๋ ๊ณผ์ ์ ์ถ๊ฐํด์ฃผ๋ ค๊ณ ํ๋ค.
์ด๋ฏธ์ง๊ฐ ์๋กญ๊ฒ ์์ฑ๋์ด์ ECR๋ก pushํ๊ณ , ์๋ก์ด ์ด๋ฏธ์ง tag๋ฅผ ์ง์ ํ์ฌ ์ ๋ก๋ ํ๋ ๊ฒ ๊น์ง ์๋ฃํ์๋ค.
๊ทผ๋ฐ ์ด ์ด๋ฏธ์ง ํ๊ทธ๋ฅผ ECS์ Task Definition์ ์ ๋ฐ์ดํธํด์ผ ECS๊ฐ ๋ณ๊ฒฝ์ฌํญ์ ๊ฐ์งํ์ฌ EC2๋ก ๋ฐฐํฌ ๋ช ๋ น์ ๋ด๋ฆฌ๊ฒ ๋๋ค.
์ค๋์ ์ด Task Definition์ ์๋ก์ด ์ด๋ฏธ์ง ํ๊ทธ๋ฅผ ์ ๋ฐ์ดํธํ์ฌ ๋ฐฐํฌํ๋ ๊ณผ์ ์ ํ ์คํธ ํด๋ณผ ๊ฒ์ด๋ค.
์ด์ ์ ์์ฑํ์๋ deployment.yml ํ์ผ์ ์์ ํด๋ณด์.
1. ECS ์ฝ์์์ ์๋์ ํด๋นํ๋ ํ๊ฒฝ ๋ณ์๋ฅผ ์ฐพ์ ์ถ๊ฐํด์ค๋ค.
env:
ENV: development
AWS_REGION: ap-northeast-2
CONTAINER_NAME: container-test-demo
ECS_CLUSTER_NAME: ecs-cluster-test
ECS_SERVICE_NAME: ecs-service
ECR_REPOSITORY_NAME: ecr-test
2. ECS Task Definition์ ์๋ก์ด ์ด๋ฏธ์ง ์์ด๋๋ฅผ ์ถ๊ฐํด์ฃผ๋ ๊ณผ์ ์ ๋ฃ์ด์ค๋ค.
- name: Fill in the new image ID in the Amazon ECS task definition
id: task-def
uses: aws-actions/amazon-ecs-render-task-definition@v1
with:
task-definition: ./task-definition.json
container-name: ${{ env.CONTAINER_NAME }}
image: ${{ steps.build-image.outputs.image }}
- name: Deploy Amazon ECS task definition
uses: aws-actions/amazon-ecs-deploy-task-definition@v1
with:
task-definition: ${{ steps.task-def.outputs.task-definition }}
service: ${{ env.ECS_SERVICE_NAME }}
cluster: ${{ env.ECS_CLUSTER_NAME }}
wait-for-service-stability: true
1) ECS td์ ์ ๊ท ECR ์ด๋ฏธ์ง ID ๋ถ๋ฌ์ค๊ธฐ
- task-definition.json ํ์ผ ์ง์ -> ๋์ ์ปจํ ์ด๋ ์ค์ -> ์์์ buildํ ์ด๋ฏธ์ง ๊ฐ์ ธ์ค๊ธฐ
2) ECS td์ ์ค์ ๋ฐฐํฌ ๋ช ๋ น
- task-def id๋ฅผ ๊ฐ๋ steps์ ๋์ผํ ํ์ผ ์ง์ -> ECS์๋น์ค, ํด๋ฌ์คํฐ ์ค์ -> ์๋น์ค ์์ ๋จ๊ณ ์ต์
3. Task-definition.json ํ์ผ ์ธํ
# task-definition.json
{
"family": "ํ์คํฌ ์ ์ ์ด๋ฆ",
"containerDefinitions": [
{
"cpu": 1,
"image": "ECR ๋ฆฌํฌ์งํ ๋ฆฌ URI",
"memory": 512,
"name": "์ปจํ
์ด๋ ์ด๋ฆ",
"portMappings": [
{
"hostPort": 0,
"protocol": "tcp",
"containerPort": "80"
}
]
}
]
}
- family : ๊ธฐ์กด์ ํ์คํฌ ์ ์๋ฅผ ๋ง๋ค์์ ๋, ๋ค์ด๋ฐํ ์ด๋ฆ !
- containerDefinitions: ํ์คํฌ ์ ์ ์, ์ด๋ค ์ปจํ ์ด๋ ์ธ์คํด์ค์ ๋์ปค ๋ฐ๋ชฌ์ผ๋ก ์ ๋ฌํ ์ง ์ง์
1) 1๊ฐ์ CPU ๋จ์
2) ECR ๋ ํฌ์งํ ๋ฆฌ URI ์ ๋ ฅ
3) ๋ฉ๋ชจ๋ฆฌ ์ ํ 512
4) ์ปจํ ์ด๋ ์ด๋ฆ
5) ํฌํธ ๋งคํ : ํธ์คํธ ํฌํธ 0, ํ๋กํ ์ฝ tcp, ์ปจํ ์ด๋ ํฌํธ 80
4. IAM ๊ณ์ ์ ECS Task Definition ๊ถํ ์ถ๊ฐ
์ด์ ์ ์์ฑํ๋ deployer ์ฌ์ฉ์๋ก ๋ค์ด๊ฐ์ ๊ถํ ์ถ๊ฐ๋ฅผ ๋๋ฅธ๋ค.
์ง์ ์ ์ฑ ์ฐ๊ฒฐ -> AmazonECS_FullAccess ๊ฒ์ -> ๊ถํ ์ถ๊ฐ
5. ๋ฐฐํฌ ํ์ธ
์ฐ๋ํ ์ฌ๋ ๋ฉ์ธ์ง๋ก deploy workflow๊ฐ ์ ์์ ์ผ๋ก ์คํ๋์์์ ํ์ธ
์๋กญ๊ฒ ์์ ํ ๋ด์ฉ์ผ๋ก ๋ฐฐํฌ๊ฐ ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค ! ๊ตฟ !