๐Ÿงฐ DevOps

CircleCI๋กœ SpringBoot+Postgresql ํ”„๋กœ์ ํŠธ ๋นŒ๋“œ ๋ฐฐํฌํ•˜๊ธฐ(2)

์—ฐ_์šฐ๋ฆฌ 2022. 3. 18. 17:54
๋ฐ˜์‘ํ˜•

CircleCI๋กœ SpringBoot+Postgresql ํ”„๋กœ์ ํŠธ ๋นŒ๋“œ ๋ฐฐํฌํ•˜๊ธฐ(1)

๋นŒ๋“œ ๋ฐฐํฌ ํ๋ฆ„
์‚ฌ์ „์ค€๋น„
AWS IAM ์—ญํ• (Role) ์„ค์ •
     EC2CodeDeployRole ์ƒ์„ฑ
     CodeDeployRole ์ƒ์„ฑ
AWS EC2 IAM ์—ญํ•  ์ˆ˜์ •
AWS IAM ์‚ฌ์šฉ์ž ์ถ”๊ฐ€

CircleCI๋กœ SpringBoot+Postgresql ํ”„๋กœ์ ํŠธ ๋นŒ๋“œ ๋ฐฐํฌํ•˜๊ธฐ(2)

AWS S3 ๋ฒ„ํ‚ท ์ƒ์„ฑ
AWS CodeDeploy ์ƒ์„ฑ
AWS EC2 ์ ‘์†ํ•˜์—ฌ CodeDeploy Agent ์„ค์น˜
AWS EC2 Postgresql ์„ค์น˜

CircleCI๋กœ SpringBoot+Postgresql ํ”„๋กœ์ ํŠธ ๋นŒ๋“œ ๋ฐฐํฌํ•˜๊ธฐ(3)

์†Œ์Šค์ฝ”๋“œ ์ˆ˜์ •
     .circleci > config.ymlํŒŒ์ผ
     ํ”„๋กœ์ ํŠธํด๋” > appspec.yml
     ํ”„๋กœ์ ํŠธํด๋” > scripts > deploy.sh
     ํ”„๋กœ์ ํŠธํด๋” > src > main > resources > application.yml
CircleCI Context์„ค์ •
     AWS ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์ €์žฅ
     ํ”„๋กœ์ ํŠธ ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์ €์žฅ
๊นƒํ—ˆ๋ธŒ ์†Œ์Šค์ฝ”๋“œ pushํ•˜์—ฌ ๋นŒ๋“œ ๋ฐฐํฌ ํ™•์ธ

 

ํŒ€ํ”Œํ•˜๋ฉด์„œ ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์ด๋‹ค (์‚ฌ์‹ค ๊ณต๋ถ€๋„ ์•„๋‹ˆ๊ณ  ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€๋งŒ ์ฐ์–ด๋จน์–ด๋ณธ ์ •๋„..)
์ž˜ ์ดํ•ดํ•˜์ง€ ๋ชปํ•œ ๋ถ€๋ถ„๋„ ๋งŽ๊ณ  ์—„์ฒญ ํ—ค๋งค์—ˆ๋‹ค. ์ผ๋‹จ ์–ด๋–ป๊ฒŒ ๋™์ž‘๋˜์—ˆ๋Š”์ง€ ๋‚จ๊ฒจ๋†“๋Š” ์šฉ๋„๋กœ ์ž‘์„ฑํ•˜๋Š” ๊ธ€์ด๋‹ค

 

 

 

AWS S3 ๋ฒ„ํ‚ท ์ƒ์„ฑ

1. ๋ฒ„ํ‚ท ๋งŒ๋“ค๊ธฐ ํด๋ฆญ

 

2. ๋ฒ„ํ‚ท ๋งŒ๋“ค๊ธฐ

 

 

 

AWS CodeDeploy ์ƒ์„ฑ

1. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ƒ์„ฑ ํด๋ฆญ

 

2. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ด๋ฆ„ : EC2CodeDeployTest, ์ปดํ“จํŒ… ํ”Œ๋žซํผ EC2/์˜จํ”„๋ ˆ๋ฏธ์Šค ์„ ํƒ

 

3. ๋ฐฐํฌ๊ทธ๋ฃน ์ƒ์„ฑ ํด๋ฆญ

 

4. ์„ค์ • ํ›„ ๋ฐฐํฌ๊ทธ๋ฃน ์ƒ์„ฑ

 

 

AWS EC2 ์ ‘์†ํ•˜์—ฌ CodeDeploy Agent ์„ค์น˜

sudo apt-get update
sudo apt-get upgrade

#์ž๋ฐ” ์„ค์น˜
sudo apt install openjdk-11-jdk

#aws-cli ์„ค์น˜
sudo apt-get install awscli

#aws ์„ค์ •
sudo aws configure

์—ฌ๊ธฐ์„œ [AWS IAM ์‚ฌ์šฉ์ž ์ถ”๊ฐ€] ์—์„œ ์ €์žฅํ•œ csvํŒŒ์ผ์„ ๋ฉ”๋ชจ์žฅ์œผ๋กœ ์—ด๊ณ , configure์— ์ž…๋ ฅํ•ด์ค€๋‹ค

Default region name์€ ap-northeast-2(์„œ์šธ)

Default output format์€ json์œผ๋กœ ์ž…๋ ฅํ•œ๋‹ค

#ruby ์„ค์น˜ (agent๋Š” ruby๋กœ ๋งŒ๋“ค์–ด์ง)
sudo apt-get install ruby

#agent ์„ค์น˜ํŒŒ์ผ ๋‹ค์šด
wget https://aws-codedeploy-ap-northeast-2.s3.amazonaws.com/latest/install

#์‹คํ–‰๊ถŒํ•œ ์ˆ˜์ •
chmod +x ./install

#agent ์„ค์น˜
sudo ./install auto

#agent ์‹คํ–‰ ํ™•์ธ
sudo service codedeploy-agent status

 

AWS EC2 Postgresql ์„ค์น˜

#postgresql ์„ค์น˜
sudo apt-get install postgresql postgresql-contrib

#postgres ์œ ์ €๋กœ ๋ณ€๊ฒฝ
sudo -i -u postgres

#postgresql ์ ‘์†
psql

#postgresql postgres ๊ณ„์ • ๋น„๋ฐ€๋ฒˆํ˜ธ ์„ค์ •
alter user postgres with password '1234';

 

๋ฐ˜์‘ํ˜•
  • ๋„ค์ด๋ฒ„ ๋ธ”๋Ÿฌ๊ทธ ๊ณต์œ ํ•˜๊ธฐ
  • ํŽ˜์ด์Šค๋ถ ๊ณต์œ ํ•˜๊ธฐ
  • ํŠธ์œ„ํ„ฐ ๊ณต์œ ํ•˜๊ธฐ
  • ๊ตฌ๊ธ€ ํ”Œ๋Ÿฌ์Šค ๊ณต์œ ํ•˜๊ธฐ
  • ์นด์นด์˜คํ†ก ๊ณต์œ ํ•˜๊ธฐ