Sono abbastanza nuovo per Elastic Beanstalk e non molto abile con l'amministrazione del server, ma ho bisogno di impostare un progetto Django su Elastic Beanstalk che si colleghi al database MySQL esterno RDS.Autorizzazioni per EC2 create da Elastic Beanstalk che si connette a RDS esterno
Ho creato un database MySQL RDS separato e posso connettermi ad esso utilizzando Sequel Pro sul mio computer senza problemi. Poi ho il mio progetto Django che cerco di mettere su Elastic Beanstalk, ma sfortunatamente senza fortuna. Se eseguo il server Django locale dal mio computer, il progetto è sfogliabile e Amazon RDS MySQL è accessibile. Tuttavia, quando ho eseguito
eb deploy
ottengo
django.db.utils.OperationalError: (2003, "Can't connect to MySQL server
on 'myapp-staging.xxx.eu-west-1.rds.amazonaws.com' (110)")
(ElasticBeanstalk::ExternalInvocationError)
Se faccio il login al server EC2 tramite SSH
eb ssh
e quindi controllare le porte aperte con
netstat -lntu
Non vedo la porta 3306 di MySQL lì, quindi io Immagino che sia bloccato dal firewall.
Questo è quello che ho cercato per quanto riguarda permesso:
- sono andato a RDS Dashboard -> Gruppi di protezione e ha creato myapp-mysql-sicurezza-gruppo con EC2 Security Group tipo di connessione che punta al gruppo di protezione EC2 usato da Elastic Istanza Beanstalk EC2 "awseb-e -...".
- sono andato a EC2 -> dei gruppi di protezione e per “awseb-e -...” ho impostato la porta in ingresso MySQL con fonte 0.0.0.0/0
- sono andato a VPC Dashboard -> Gruppi di protezione e myapp creato -mysql-security-group con le regole di ingresso della porta MySQL con origine 0.0.0.0/0.
Poi ho provato a ridistribuire, riavviare server e anche ricostruire l'ambiente, ma nulla ha aiutato. La porta MySQL 3306 non è ancora aperta nelle istanze EC2 create da Elastic Beanstalk.
Cosa sto facendo male o cosa manca?
Inizialmente EC2 da Elastic Beanstalk non era nello stesso VPC di RDS. Così ho ricreato Elastic Beanstalk all'interno dello stesso VPC di RDS usando --vpc switch su eb create command. Per risolvere l'ulteriore problema di connessione, ho dovuto aggiungere VPC IP alla connessione in entrata per RDS. Grazie per la tua ampia spiegazione. Spero che aiuti anche altri utenti AWS. –