일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- dict
- flask
- async
- 채팅
- wetube
- RDS
- crud
- merge
- SAA
- EC2
- Vue
- AWS
- 중급파이썬
- Class
- 튜플
- 카톡
- 파이썬
- node
- SSA
- pandas
- NeXT
- lambda
- MongoDB
- S3
- socket io
- react
- docker
- TypeScript
- Props
- git
- Today
- Total
목록AI 웹개발 트랙 - 내배캠 (79)
초보 개발자
docker named volume 단순히 데이터를 메모리에다 저장해둔 상태라면, 당연한 말이지만 서버를 중단시켰다가 켜기만 해도 데이터가 사라져있을 것이다. 새로운 컨테이너를 생성해도 이 전 컨테이너의 데이터는 찾을 수 없을 것이다. 따라서 named volume을 사용해서 docker에서 데이터를 유지할 수 있는 방법을 알아보자!! 아래의 명령어를 입력하여 mongo db를 사용해보자 docker run --name mongo_db -p 27017:27017 -d mongo 나의 docker images에 mongo image가 있다면 그걸 실행시키지만 없다면 docker hub에서 mongo라는 image를 찾아서 실행을 시켜준다. mongo db에 데이터를 넣고 빼는 걸 편하게 도와주기 위해서 R..
먼저 eb 즉 elastic beanstalk를 사용하지 않는다면, 인프라를 일일이 만들어 주어야한다. EC2, 로드밸런서, 오토 스케일링 등등... 전에 eb를 사용하지 않고 일일이 하나하나 만들어 보는 과정을 포스팅 하다가 중간에 갑자기 다 날라가 버려서.. 포기한 적이 있었다...😥 지금부터 간단한 장고 서버를 하나 배포해보려고한다. EB CLI설치 🔨 eb를 사용하려면 먼저 eb-cli를 설치해야한다. EB CLI 설치 - AWS Elastic Beanstalk (amazon.com) EB CLI 설치 - AWS Elastic Beanstalk 이 페이지에 작업이 필요하다는 점을 알려 주셔서 감사합니다. 실망시켜 드려 죄송합니다. 잠깐 시간을 내어 설명서를 향상시킬 수 있는 방법에 대해 말씀해 주..
git을 지우면(혹은 git이 없으면) eb deploy 명령어를 사용했을 때 현재 폴더에 있는 파일 상태 그대로 반영됨, 그리고 git이 없으니 당연히 gitignore에 어떤 파일이 적히든 말든 무시하고 다 배포됨하지만 ebignore가 있다면 이 경우에는 여기에 적힌 파일은 무시되고 배포됨 git을 생성하는 순간부터는 eb deploy시 파일이 수정되든 말든 최신 commit에 올라와 있는 파일들만 반영하여 배포됨gitignore에 적힌 파일은 배포된 서버에서 못읽어옴,하지만 ebignore파일을 생성하면 gitignore 파일에 뭐가 적히던 ebignore에 적힌 파일들만 무시된 채로 배포 따라서 eb deploy의 공통점은 ebignore에 적힌 파일을 무시한다. 근데 파이프라인을 통해 배포를한..
로드 밸런스를 먼저 설치를해주자 Application Load Balancer를 사용하려고 한다. 대상그룹을 지정해주어야 하는데, 이건 어떤 인스턴스를 elb안에 넣을 것이냐를 의미하는 것이다. 이 대상그룹과 elb를 연결하고, 만약 트래픽이 과도하게 몰리면, 대상그룹에 ec2인스턴스를 추가해서 사용할 수 있도록, 반대로 트래픽이 줄어들면 대상그룹의 ec2 인스턴스를 삭제하고 이런식으로 조절할 수 있도록 대상 그룹을 지정하는 것이다. 대상그룹의 port는 8000으로 해주었다. 이건 elb에서 사용자가 접속하면 80번포트로 트래픽을 받고 어디로 전달해 줄 것이냐를 정해주는 것이다. 우리는 8000번 포트를 개방할 것이기 때문에 이렇게 적었다.
ec는 elastic computing의 약자이다. 기본적인 서비스이며, 서버를 하나 빌린다고 볼 수도 있다. 따라서 RAM,CPU등을 설정할 수도 있다. 먼저 인스턴스를 생성해보자 ubuntu 20.04버전과 프리티어, 새 키페어를 생성했다. 이 키페어를 통해서 서버와 ssh방식으로 통신할 수 있는 것이다. 서버는 공개키를 나는 개인 키를 가지게 되고, 공개키에서 생성한 암호를 개인키에서 풀어서 접속하는 관계, 공개키에서 생성한 암호는 개인키에서밖에 풀 수 없다고 한다. 최초 접속시에는 이렇게 비대칭키(서버는 공개키를 가지고, 유저는 개인키를 가지기에)를 사용하지만, 그 이후에는 같은 키를 공유하여 정보를 암호화, 해독을 한다고 한다 (대칭키 형식) SSH 명칭부터 접속까지 한 번에 이해하기 1 | 가..
간단한 flask서버를 build한 뒤에 docker hub로 하나 올려두었다. Docker Hub Docker Hub hub.docker.com 그리고 aws에 접속하여 ec2를 하나 생성한 뒤에 키페어를 다운로드 받은 뒤 아래와 같이 바꿔주자 chmod 600 keypair.pem 600은 r(4)w(2)x(1) 이것은 소유자에만 읽기쓰기 권한을 주는것으로 변경한 것이다. 이 후에 아래의 명령어를 사용하면 ec2 인스턴스에 접속할 수 있다. ssh -i ~/.ssh/sparta-docker.pem ec2-user@{public_ip} 나는 인스턴스에 퍼블릭 ip4가 할당이 되지 않아 해결방법을 찾았다. 2022.03.11 - [Error] - ec2 퍼블릭 IP4 할당 ec2 퍼블릭 IP4 할당 퍼블..
docker network를 통해서 container끼리 통신하게 만들 수 있다!! flask서버는 host에서 db는 컨테이너에서 실행시킨다고 가정해보자. 기본적으로 컨테이너를 생성하면 docker는 bridge라는 기본 네트워크로 설정이 된다. 하지만 이 네트워크는 독립적이라서 다른 기본 bridge네트워크와는 통신을 할 수 없다. db는 27017:27017로 이어두었다. 따라서 flask에서 db에 접속을 하기 위해선 MongoClient('localhost', 27017)이라고 적어두면 host의 27017포트를 따라들어가고 mongo db 컨테이너의 27017포트로 연결이 되는 로직이다. 이번엔 flask서버도 컨테이너로 만들어보자 이 경우에 코드를 변경하지 않으면 어떻게 될까? 이 경우 ws..
docker bind mount 전에는 volume을 하나 만들어 mongoDB container와 연결시켜주었다. 이번엔 host_path와 conainer_path를 연결해주어보자. 기본적으로 container는 독립되어있기 때문에 host에 있는 templates와 container에 있는 templates는 연결이 되어 있지 않다. 따라서 전에 html을 수정하고 확인하기 위해서 새로운 이미지를 만들고 컨테이너를 만들어 실행시키는 방법을 하였는데 여간 귀찮은 일이 아니었다. 하지만 bind mount를 통해서 host의 templates와 연결시켜준다면 host에서 수정해도 바로 읽어올 수 있을 것이다. 전에 만든 app을 image로 만들었다 이름은 memo:v1 이걸 사용하여 컨테이너를 생성하..