Flask Web Uygulamanızı Docker ve Terraform ile AWS EC2 Örneğine Dağıtma
Merhaba! Bu makalede, Flask web uygulamanızı Docker ve Terraform kullanarak bir AWS EC2 örneğine nasıl dağıtacağınızı adım adım inceleyeceğiz. Bu yöntem, uygulamalarınızı güvenilir ve ölçeklenebilir bir şekilde dağıtmanın harika bir yolunu sunar.
1. Ön Koşullar
Bu kılavuza başlamadan önce aşağıdaki ön koşulların karşılandığından emin olun:
- Bir AWS hesabı.
- Kurulu Terraform.
- Kurulu Docker.
- Dağıtmak istediğiniz bir Flask web uygulaması.
2. Uygulamanızı Dockerize Etme
İlk adım, uygulamanızı Docker kullanarak kapsayıcılaştırmaktır. Bu, uygulamanızın tüm bağımlılıklarıyla birlikte paketlenmesini sağlar, böylece farklı ortamlarda tutarlı bir şekilde çalışmasını garanti eder.
Bir Dockerfile oluşturun ve aşağıdaki içeriği ekleyin:
“`dockerfile
FROM python:3.9
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
CMD [“python”, “app.py”]
“`
Bu Dockerfile, bir Python 3.9 taban görüntüsü kullanır, çalıştırılabilir dosyalarınızı ve bağımlılıklarınızı kopyalar ve uygulamanızı çalıştırmak için gerekli komutu tanımlar. requirements.txt dosyasında, uygulamanızın bağımlılıkları listelenmelidir.
Dockerfile‘ı oluşturduktan sonra, Docker görüntüsü oluşturmak ve yayınlamak için aşağıdaki komutları kullanın:
“`bash
docker build -t my-flask-app .
docker push my-flask-app
“`
3. Terraform ile Altyapı Oluşturma
Terraform kullanarak AWS altyapınızı otomatikleştireceğiz. Bir main.tf dosyası oluşturun ve aşağıdaki kodu ekleyin:
“`terraform
resource “aws_instance” “web_server” {
ami = “ami-0813e7e2e24d9e2c4” # örnek Ubuntu AMI seçimi
instance_type = “t2.micro”
key_name = “my-key-pair” # SSH anahtarı adı
tags = {
Name = “my-flask-app”
}
user_data = <ami, key_name ve vpc_id değerlerini kendi yapılandırmanıza göre değiştirin.
Terraform kodunu oluşturduktan sonra, aşağıdaki komutları kullanarak kaynakları dağıtın:
“`bash
terraform init
terraform apply
“`
4. Uygulamayı Dağıtma
Terraform kaynaklarını dağıttıktan sonra, EC2 örneğine bağlanın ve uygulamanızı dağıtın. SSH kullanarak EC2 örneğine bağlanın.
EC2 örneğinde, Docker kapsayıcınızı çalıştırın:
“`bash
docker run -d -p 80:80 my-flask-app
“`
Bu komut, my-flask-app Docker görüntüsünü arka planda çalıştırır ve 80 numaralı bağlantı noktasını dışarıya yönlendirir. Şimdi uygulamanız, EC2 örneğinin genel IP adresinde 80 numaralı bağlantı noktasında erişilebilir.
5. Uygulamaya Erişme
Terraform çıktıları kullanarak EC2 örneğinin genel IP adresini alın. Tarayıcınızda genel IP adresini ziyaret ederek uygulamanıza erişebilirsiniz.
Sonuç
Tebrikler! Uygulamanızı Docker ve Terraform kullanarak bir AWS EC2 örneğine başarılı bir şekilde dağıttınız. Bu yöntem, uygulamalarınızı güvenilir ve ölçeklenebilir bir şekilde dağıtmanın harika bir yolunu sunar. Daha fazla bilgi için AWS ve Docker belgelerine göz atabilirsiniz.
Bu makalenin size yardımcı olacağını umuyorum. Daha fazla bilgi için web sitemi fatihsoysal.com adresini ziyaret edebilirsiniz.
#Etiketler
Flask, Docker, Terraform, AWS, EC2, Dağıtım, Uygulama, Web Uygulaması, Bulut, Otomasyon, Kapsayıcı, Güvenilirlik, Ölçeklenebilirlik