$ aws configure
AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE
AWS Secret Access Key [None]: wJalrXUtnFeMI/K7MDENG/bPxRfiCYEXAMPLEKEY
Default region name [None]: us-west-2
Default output format [None]: json
aws s3 ls๋ก ๋ค์ด๊ฐ๋ ค ํ๋ฉด ์๋ฌ๊ฐ ๋ฐ์ํ ๊ฒ์ด๋ค.
์ด๋ ๊ถํ์ด ์๊ธฐ ๋๋ฌธ์ด๋ค.
IAM์์ ๊ถํ ์ถ๊ฐ๋ฅผ ํ๋ฉด๋๋ค.
์ง์ ์ ์ฑ
์ฐ๊ฒฐ -> AmazonS3FullAccess ์ ํ -> ๊ถํ ์ถ๊ฐ
aws s3 mb s3://urface-profiles ๋ฅผ ์ฝ์์ฐฝ์ ์์ฑํ๋ฉด
AWS์ S3์ urface-profiles๋ฅผ ์์ฑํ ์ ์๊ฒ ๋์๋ค.
์ด์ ์ ๋ง๋ Spring์ ์ฌ๋ ค๋ณด์.
aws s3 sync . s3://urface-profiles๋ฅผ ์์ฑํ๋ฉด
๋ชจ๋ ์ ์ฌ๋ผ๊ฐ๋ ๊ฒ์ S3์์ ํ์ธํ ์ ์๋ค.
aws s3 rm s3://urface-profiles --recursive๋ฅผ ์์ฑํ๋ฉด ๋ชจ๋ ์ง์ธ ์ ์๋ค.
์ฌ๊ธฐ์ revcursive๋ ํ์ํ์ผ๊น์ง ์ ๊ทผํ๋ค๋ ๊ฒ์ด๋ค.
์ด์ธ์ ๋ค๋ฅธ ์๋น์ค๋ ์ฝ์์ ํตํด์ ์ปจํธ๋กค์ด ๊ฐ๋ฅํ๋ค.
ํ์ด์ฌ์ Venv์ ๋น์ทํ ํํ์ ๊ฐ์ํ ๊ธฐ์ ์ด๋ค.
์ปจํ
์ด๋ ๊ธฐ๋ฐ์ ๋ณ๋์ ์ด๋ฏธ์ง๋ก ์๋น์ค๋ฅผ ์ ๊ณตํ๋ ๊ฒ์ด๋ค.
๋์ปค์ ์ปจํ
์ด๋๊ฐ ํ์ํ ์ด์ ๋ ๋ฒ์ ์ ๋ฐ๋ฅธ ํธํ์ฑ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด ์ค ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.
์๋ฅผ ๋ค์ด์ ์ธ๊ณต์ง๋ฅ ๋ถ์ผ์์๋ Python์ ํน์ ๋ฒ์ ๊น์ง๋ง ์ง์ํ๋ ๊ธฐ์ ๋ค์ด ์กด์ฌํ๋ค.
๋๋ ๋ฆฌ๋
์ค ํ๊ฒฝ์์๋ง ์ง์ํ๋ ๊ฒฝ์ฐ๋ ์กด์ฌํ๋ค.

| ๋ช ๋ น์ด | ์ค๋ช |
|---|---|
| FROM | ๋ฒ ์ด์ค ์ด๋ฏธ์ง๋ฅผ ์ค์ ํ๋ค. <์ด๋ฏธ์ง ์ด๋ฆ>:<ํ๊ทธ> ํ์์ผ๋ก ์ค์ |
| METATAINER | ๋ฉ์ธํ ์ด๋ ์ ๋ณด |
| RUN | ์ ์คํฌ๋ฆฝํธ ํน์ ๋ช ๋ น์ ์คํ, ์ด๋ฏธ์ง ์์ฑ ์์ ์คํ |
| CMD | ์ปจํ ์ด๋๊ฐ ์์๋์์ ๋ ์คํํ ์คํ ํ์ผ ๋๋ ์ ธ ์คํฌ๋ฆฝํธ |
| EXPOSE | ํธ์คํธ์ ์ฐ๊ฒฐํ ํฌํธ ๋ฒํธ |
| WORKDIR | CMD์์ ์ค์ ํ ์คํ ํ์ผ์ด ์คํ๋ ๋๋ ํ ๋ฆฌ |
FROM openjdk:8-jdk-alpine
ARG JAR_FILE=build/libs/*.jar
COPY ${JAR_FILE} demo-0.0.1-SNAPSHOT.jar
ENTRYPOINT ["java","-jar","/demo-0.0.1-SNAPSHOT.jar"]
์ฌ๋ฌ๊ฐ์ ๋์ปค ์ปจํ
์ด๋๋ฅผ ๊ด๋ฆฌํ ์ ์๋ค.

์ปจํ
์ด๋ SW๋ฅผ ๊ด๋ฆฌํ๋ AWS ์๋น์ค์ด๋ค.
์ด๋ฏธ์ง ๊ด๋ จ๋ ๊ฒ๋ค์ ์ ์ฅํ๋ ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ECR์ด๋ผ ํ๋ฉฐ
ECR์ ์ ์ฅ๋ ์ด๋ฏธ์ง๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ฐ์ํ๋ ์๋น์ค๋ฅผ ์ ๊ณตํ๋ ๊ฒ์ด ECS์ด๋ค.
์๋ ์ ์ฑ ์ ํ๋ ๋ง๋ค์ด ์ฃผ์ด์ผํ๋ค.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": "ecr:*",
"Resource": "*"
}
]
}
ServerLess์ ๋ํ์ ์ธ ์๋น์ค์ด๋ค.
์ฌ์ฉํ ์ปดํจํ
์๊ฐ์ ๋ํด์๋ง ์๊ธ์ ์ง๋ถํ๋ฉด ๋๊ณ ์ฝ๋๊ฐ ์คํ๋์ง ์์ ๋๋ ์๊ธ์ด ๋ถ๊ณผ๋์ง ์์ต๋๋ค. Lambda๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ค์ ๋ชจ๋ ์ ํ์ ์ ํ๋ฆฌ์ผ์ด์
๋๋ ๋ฐฑ์๋ ์๋น์ค์ ์ฝ๋๋ฅผ ์คํํ ์ ์๊ณ ์ด๋ฅผ ๊ด๋ฆฌํ ํ์๋ ์ ํ ์์ต๋๋ค.
๊ฐ๋ฐ์๋ค์ด Amazon EC2, AWS Lambda ๋๋ ๊ณต๊ฐ๋ ์ฃผ์๊ฐ ์๋ ์น ์๋น์ค์์ ์คํ ์ค์ธ ๋ฐฑ์๋ ์์คํ
์ ๋ํ API๋ฅผ ์์ฑํ๊ณ ๊ด๋ฆฌํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. Amazon API Gateway๋ฅผ ์ฌ์ฉํ์ฌ API์ ๋ํ ์ฌ์ฉ์ ์ง์ ํด๋ผ์ด์ธํธ SDK๋ฅผ ๋ง๋ค๊ณ , ๋ฐฑ์๋ ์์คํ
์ ๋ชจ๋ฐ์ผ, ์น, ์๋ฒ์ ์ ํ๋ฆฌ์ผ์ด์
๋๋ ์๋น์ค์ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค.

Application์ ๋ชจ๋ํฐ๋งํ๊ณ , ์์คํ ์ ์ฒด ์ฑ๋ฅ ๋ณ๊ฒฝ์ ๋์ํ๋ฉฐ, ๋ฆฌ์์ค ์ฌ์ฉ๋ฅ ์ ์ต์ ํํ๊ณ , ์ด์ ์ํ๋ฅผ ํตํฉํ์ฌ ๋ณด๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ ๋ฐ์ดํฐ์ ์คํ ๊ฐ๋ฅํ ์ธ์ฌ์ดํธ๋ฅผ ์ ๊ณตํ๋ค.