본문 바로가기
자기개발/새싹톤_POA

aws, docker 어렵네

by 금화맘 2023. 6. 13.

aws , 도커, 도커허브 어렵다.

aws에 도커 허브를 연결하는 것도 난관이었고, 도커 이미지를 다운 받아서 실행시키는 것도 어려웠다. 근데 aws에서 확인 페이지에 연결이 안됐을 때는 진짜 이 수고를 한 번 더 해야 한다는 막막함에 훨씬 배로 힘들었고 해결했을 때도 너무 기뻣다. 집에 갈 수 있어서 ㅎ

 

도커 이미지를 만들고 도커 private repository 에 연결하는데 repository와 이미지의 이름이 같아야 하는 걸 몰라서 그거 때문에 조금 고생했었고 이미지는 어떤 문구를 써서 만들어야 하는지 몰라서 고생했었다. 그래도 어찌저찌 도커 이미지도 만들고 도커 프라이빗 리포지토리에도 업로드 완성! 

이 땐 정말 세상을 다 가진 기분이었다 ㅎ. 이것만 하면 다 된줄 알았는데 ..

aws의 ec2환경에 도커 허브에서 이미지를 다운받아서 실행시키려 했는데 ec2에서 분명 도커 허브로 로그인을 하고 pull을 받았는데 pull이 안됐다. 진짜 왜지? 하고 고민했는데 절대 private을 풀 순 없었고 다른 예제들을 봤을 때 다른 부분은 public과 private차이 뿐인거 같았다. 그래서 private로 검색을 하니 ecr? 그런게 있는데 ... 그걸 사용하려니 혹시나 프리티어를 사용 못하는 그런 거일까봐 고민하고 있었는데 팀원이 이미지 자체를 실행할 수 있다는 글으 봤다고 하길래 그럼 해보자라고 했더니 진짜 이미지를 실행시키니 됐다. 이 왜..진...??

암튼 작동하면 됐지...뭐..

이랬는데 우리가 터미널을 나가면 같이 작동이 안돼서 왜지 했는데 우리가 사용한 명령어 rm 때문이었다. 이거 그래도 aws에서 혹시 요금이 많이 나올지 몰라서 계속 사용하던 명령어 였는데 깜빡하고 있었다. 우리는 그냥 컨테이너를 endpoint 지정 없이 만든거라 $ docker run -d 리포지토리/이미지 sleep infinity 이 명령어를 사용했다. 그랬더니 cmd창을 꺼도 작동했다 짜란~ 행복한 순간이었다.

 

이렇게 실행하고 나서 인제 aws의 주소로 확인해 보자~ 하고 우린 swegger를 사용했으니까 우리 aws 주소에 swegger를 붙여서 사용하는데 안되던 것.

 

우리 둘다 멘붕이 와서 왜 안되지 하면서 모든 포트를 다 열었다. 계속 권한이 없습니다였나 그런 에러 메세지라서 우리가 사용하는 포트들은 다 열었는데 안되서 혹시 하고 http인걸 확인하니 https 였다. 할렐루야

역시 https 가 문제였던 것. http로 바꾸고 aws 주소로 하고 swegger 문서 주소로 연결하니 작동됐다.

 

진짜 집에 못가는 줄 알고 너무 상심이 컸는데 http의 문제여서 너무 다행이라 생각했다.

잊지말자 http 우리는 보안security를 안샀기 때문에 https에선 작동이 안된다는 사실을!!

 

요약

1. 도커 이미지는 Dockefile 만들어 놓으면 명령어로 만들 수 있다.

2. rds 와 연결은 application.yaml에 있다. rds와 local로의 전환은 여기서

3. rds를 dbever에서 사용하고 싶다면 rds도 포트를 열어야 한다

4. 도커 이미지를 도커허브에 올리고 싶다면 리포지토리 이름과 이미지의 이름이 같아야 한다. 우린 우리가 만든게 last라서 tag안했음.

5. private은 ecr? 이란게 있지만 ec2에서 로그인을 했다면 run 명령어로 이미지를 실행할 수 있다.

6. endpoint를 설정하지 않은 이미지라면 -d 와 spleep infinity를 사용하자

7. aws로 만든 ec2주소는 secutiry를 사지 않는 이상 http에서만 열린다는걸 명심하자!