../

Bulut Bilişim Teknolojileri Kampı AWS Notları

Bütçeleme ve Maliyet Yönetimi ( Budgets and Planning)

Arama kısmına “budgets” veya ilgili servis ismini yazarak Faturalandırma ve Maliyet yönetimi servisini bulabiliriz.

image

Yan taraftaki menuden “Budgets” bütçeler bölümü, daha önce oluşturmaduysanız görseldeki gibi görünecektir.

image

Bütçe oluşturmak için “Create budget” butonuna basılır. Burada, varsayılan ve özelleştirilen olarak iki türlü bütçe şablonu bulunur. Sonrasında bütçe türü seçilmesi gerekir. Zero spend budget, harcamanın hiç yapılmadığı bütçeleme. AWS Ücretsiz deneme hesapları için kullanılabilir. Hesap için harcanan maliyet $0.01 geçerse uyarı vermektedir. Diğer bütçeleme türlerinde ise, günlük veya aylık olarak yapılan bütçelemeler için kullanılır.

image

Oluşan bütçe şekildeki gibi görüntülenir.

image


AWS Temel Kavramlar

  • REGION : AWS hizmetlerini kullanacağımız bölgeleri içerir.
  • IAM : Açılımı Identity and Access Management olan servis, kullanıcı erişim ve yetkilerini yönetir.
  • VPC : Virtual Private Cloud, izole edilmiş bir sanal ağ oluşturur.
  • EC2 : Elastic Compute Cloud, bulut tabanlı sanal sunucu hizmeti
  • RDS : Relational Database Service, veritabanı servisi
  • EBS : Elastic Block Store, ec2 sunucular için blok depolama alanı
  • S3 : Simple Storage Service, uygulamaların depolama alanı
  • EFS : Elastic File System, bulut ortamında paylaşımlı dosya depolama alanı.

EC2 Sunucu Oluşturma

EC2, kısaca bulut tabanlı sanal sunucu oluşturma hizmetidir. Sunucu oluşturmak için arama kısmına ec2 yazalım ve çıkan servise tıklayalım.

image

Resources, kısmında kaç tane instance olarak isimlendirilen sunucuların çalıştığı, güvenlik grupları, uzaktan bağlantılar için oluşturulan anahtar değerler, depolama için kullanılan volumes olarak isimlendirilen depolamalar gibi bilgiler yer alır.

Sunucu oluşturmak için “Launch instance” butonuna basalım.

image

Sunucu ismi, işletim sistemi, instance türü, sunucuya bağlantı için anahtar çifti, ağ ayarları, depolama ve gelişmiş seçenekler yer almaktadır. Kullanım amacına ve gereksinimlere uygun şekilde sanal sunucu oluşturulabilir. Ücretsiz için “free tier eligible” olarak gösterilmektedir.

image

Uzaktan bağlanmak için giriş anahtar çifti seçilir, eğer yoksa “create new key pair” seçeneği ile oluşturulabilir.

image

Oluşan anahtar çifti dosyası otomatik olarak indirilmektedir. Bu gizli anahtar(private key), ssh bağlantısı için kullanılır.

Tüm ayarlar tamamlandıktan sonra, sunucu başlatılabilir.

image

Oluşan bu suncuya erişim için terminal ekranından ssh -i key_file.pem ec2-user@PUBLIC-IP komutu çalıştırılır.

image

Oluşan instance dair detaylı bilgilere ulaşmak için sunucunun seçili olması gerekmektedir. Güvenlik, networking ve depolama gibi ayarlar bu bölümden yapılır. Örneğin sunucuya ping atılması veya herhangi bir portuna erişim gerekiyor. Varsayılan olarak sadece 22 portu açık olduğu Security başlığı altında görülebilir.

image

Inbound, makineye gelen trafiği filtreleyen kurallar. Outbound kurallar da makinenin erişebileceği port ve hedef adresleri filtreler. Sunucu, Inbound kurallara ICMP protokolüne izin verilmesi dahilinde ping paketlerine cevap verebilmektedir.

Sunucu Koruması

Oluşturulan sunucunun durdurulmasını (stop) veya sonlandırılamsını (termination) önlemek için koruma ayarlarının açılması gerekmektedir.

Screenshot 2024-08-18 185730

Sağ üst köşede bulunan Actions içerisinden Instance settings ayarlarından yapılmaktadır. Durdurulma koruma ayarları için “Change stop protection” basılır ve koruma aktif hale getirilir.

image

Sunucu Türü Değiştirme

Kullanılan sunucunun kapasitesi yetersiz geldiği zaman, sunucu kapasitesi genişletilebilmektedir. Bunun için ilk önce sunucu durdurulmalıdır (stopped). Actions kısmından, Instance Settings > Change instance type seçeneği seçilir. Kullanılmak istenen tür değiştirilir ve yapılan değişiklikler görseldeki gibi uygulanabilir.

image

Durdurulan sunucu tekrardan başlatılır Instance State > Start Instance.

EC2 NGINX Kurulumu

ubuntu image ile ec2 instance oluşturuldu. Oluşan sunucuya ssh ile bağlantı kurulduktan sonra, root kullanıcısı olarak apt install nginx komutu ile nginx yüklenmektedir.

image

systemctl status nginx ile servisin çalıştığı kontrol edilebilir

image

sunucuya http://IP ile erişim yapılabilir ancak inbound kuralında varsayılan olarak sadece ssh 22 portu açık olduğu için 80/http portuna izin verilmesi gerekmektedir. Tarayıcıdan, sunucuya erişildiğinde varsayılan nginx sayfası görünmektedir.

image

Ek olarak instance oluştururken ağ ayarlarında, http veya https trafiğine izin verilirse 80 ve 433 portları açık olarak ec2 sunucu oluşturulur

image

nginx varsayılan dizini /var/www/html . ücretsiz web site şablonlarından birisini indirip bu dizine kopyalayarak veya kendi oluşturduğunuz web sayfası ile basit bir web uygulaması kurulumu gerçekleştirilebilir.

demo isminde bir dizin oluşturup, web sayfa için chatgpt kullanarak oluşturulan index.html sayfası yerleştirilir.

image

<!DOCTYPE html>
<html lang="tr">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Demo Sayfası</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            background-color: #f4f4f4;
            color: #333;
            margin: 0;
            padding: 20px;
        }
        header {
            background-color: #333;
            color: #fff;
            padding: 10px 0;
            text-align: center;
        }
        nav {
            margin: 20px 0;
        }
        nav a {
            margin: 0 10px;
            text-decoration: none;
            color: #333;
        }
        section {
            background-color: #fff;
            padding: 20px;
            border-radius: 5px;
            box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
        }
        footer {
            text-align: center;
            margin-top: 20px;
            color: #777;
        }
    </style>
</head>
<body>

    <header>
        <h1>Demo Sayfasına Hoşgeldiniz</h1>
    </header>

    <nav>
        <a href="#">Anasayfa</a>
        <a href="#">Hakkında</a>
        <a href="#">İletişim</a>
    </nav>

    <section>
        <h2>Basit Bir Başlık</h2>
        <p>Bu, örnek bir paragraf metnidir. Bu alan, web sayfanızda içerik göstermek için kullanılabilir.</p>
    </section>

    <footer>
        &copy; 2024 Demo Sayfası. Tüm hakları saklıdır.
    </footer>

</body>
</html>

Tarayıcıdan http://IP/demo olarak erişildiğinde oluşturulmuş web sayfası görülmektedir.

image

Sunucu Backup Alma

Oluşturulan bir EC2 sunucusunun image alma işlemi için Instances bölümüne gelinir. Sağ üst köşede bulunan Actions menüsü içerisinden Image and templates > Create images yolu izlenir.

image

Oluşturulan imagelar Images > AMIs lislenmektedir.

image

Elastic IP

EC2 sunucularında, sunucunun durdurulup başlatılması, reboot edilmesi durumlarında makinenin IP adresi değişmektedir. Bu durumu önlemek için Elasitc IP allocate etmek gerekmektedir.

image

Network & Security > Elastic IPs kısmından IP adresi alınabilir. Bu IP adresi aws hesabınıza ait olur ve oluşan ec2 makinesi ile bağlandığında, makinenin reboot sonrası veya tekrardan başlatılmasından sonra IP adresi değişmeyecektir. Bu işlemde belirli bir ücretlendirme uygulanmaktadır.

image

Sunucu Disk Genişletme

EC2 sunucunun depolama ile ilgili bilgileri Storage içerisinde görüntülenir. Volume olarak isimlendirilen bu depolama alanına Elastic Block Store > Volumes‘dan da erişilebilir.

image

Actions> Modiy volume seçilerek istenilen gereksinimler değiştirilebilmektedir. Free tier hesaplar için 30GB’ a kadar ücretsiz sunulmaktadır.

image


IAM

Kimlik erişim yönetimi servisi, yeni bir kullanıcı oluşturma, yetkilendirme ve politika işlemlerinin yapılmasını sağlamaktadır. Varsayılan olarak root hesabı kullanılır ancak root hesabının kullanılması veya paylaşılması önerilmemektedir.

Arama bölümünden IAM yazıp servise girilir. Users bölümü içerisinde kullanıcı oluştur, “Create user” butonuna tıklanır.

image

Kullanıcı ismi girilir ve oluşturulan kullanıcının aws console erişiminin olması isteniyorsa alttaki butonun seçili olması gerekmektedir. Kullanıcı türü şuan için IAM user olarak oluşturulacaktır. Users must create a new password at next sign-in butonu işaretlenirse kullanıcı giriş yaptığında parolasını değiştirmesi istenmektedir.

image

Sonraki aşamada izinler seçilmektedir. Permissions Policy kısmında vermek istenilen policyler ayarlanmaktadır.

image

Kullanıcı detayları ve seçilen policyler kullanıcı oluşturulmadan önce gösterilmektedir.

image

Create user butonu ile IAM kullanıcısı oluşturulur. Oluşan kullanıcı ile giriş yapmak için gerekli bilgiler, hesap id, kullanıcı adı ve parola bilgileri gerekmektedir.

image

Oluşan kullanıcı hesbaının çoklu kimlik doğrulama özelliğini aktif haline getirmek için kullanıcıya tıklayalım.

image

Console Access seçeneğinden veya Alt kısımda bulunan Security credentials bölümünden çoklu doğrulama etkinleştirilebilir.

image

Çoklu doğrulama için güvenlik anahtarı, doğrulama uygulaması veya Hardware TOTP(Time-based one-time-password) token hangi seçenek kullanılacak ise seçilir ve eklenir.

image

Burada bir authenticator uygulamasını kullanarak çoklu doğrulama işlemi aktif hale getirilmiş oldu. Aynı şekilde root hesabına da çoklu doğrulama eklenebilmektedir.


AWS CLI Kullanımı

aws bulut hesabını komut satırı veya terminal ekranından yönetme işlemidir. https://aws.amazon.com/cli/ adresinden indirilmektedir. Linux için aşağıdaki komutlar çalıştırılır.

curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install --bin-dir /usr/local/bin --install-dir /usr/local/aws-cli --update

image

Erişim sağlayacak kullanıcı için erişim anahtarı oluşturmak gerekiyor. Bunun için tekrardan Users >Security Credentials kısmından erişim anahtarı oluşturulmaktadır.

image

Erişim anahtarını hangi durumda kullanılacağı seçilmektedir.

image

aws cli kullanmadan önce bazı ayarlamalar gerekmektedir. Bunlardan ilk önce aws configure komutu, aws hesabında oluşturulan erişim anahtarını, varsayılan bölgeyi ve format bilgilerinin ayarlamasında yardımcı olmaktadır.

image

aws cli ile sunucu oluşturulabilir. Bunun için image id, instance türü, key-name, securit group ve region bilgileri gerekmektedir.

aws ec2 run-instances \
    --image-id ami-04a81a99f5ec58529 \
    --count 1 --instance-type t2.micro \
    --key-name first \
    --security-groups-ids sg-0fec4e4836f911ce7 \
    --region us-east-1 \
    --tag-specifications 'ResourceType=instance,Tags=[{Key=Name,Value=ec2_aws_cli}]'

image

t2.micro türünde ubuntu image kullanarak ec2_aws_cli isimli bir ec2 sunucu oluşturulmaktadır. Instances bölümünde sanal sunucunun oluşturulduğu görülmektedir.

image

Oluşturulan bu instance aws ec2 terminate-instances --instance-ids komutu ile terminate edilebilir.


Amazon S3 (Simple Storage Service)

Amazonun depolama servisidir. Depolama katmanları bulunur. Veriye erişimin sıklığı ile ilgilidir. Arama kısmından S3 yazıp servise ulaşalım. Create bucket seçeneği seçilir.

image

S3 dosya atıldığı zaman varsayılan olarak dışardan erişilebilir durumda değildir. Bucket ismi eşsiz olmalıdır.

image

Oluşan bucket detayları incelendiğinde, içerisinde olan objeler görüntülenebilir.

image

Dosya eklemek için upload file butonuna tıklanır.

image

Eklenilen dosyalar Objects başlığı altında listelenmektedir. Dosya yükleme işlemi, benzer şekilde AWS CLI kullanarak da gerçekleştirilir. aws cli hangi kullanıcı ile oturum açılmış olduğunu aws sts get-caller-identity komutu ile görüntülenir veya ~/.aws/credentials dosyası içerisinde erişim anahtarı bulunmaktadır.

aws s3 ls s3://BUCKETNAME komutu ile bucket içerisinde olan objeler listelenir.

image

aws s3 cp file.txt s3://BUCKETNAME komutunu kullanarak localde bulunan dosya bucketa aktarılır.

image

Bucket oluştururken dışardan erişim kapalı olarak gelir Block public access etkin haldedir. Bucket detaylarında Permissions yetkiler başlığı altında devre dışı bırakılabilir.

image

Erişime açık bir hale gelen bucket objeleri için politikalar uygulanabilir. Hemen bir altında bulunan Bucket policy başlığı altında policyler eklenebilir

image

Burada sadece bucket içerisinde bulunan objeler için, yalnızca objeleri getirme izni verilmiştir. Tarayıcı üzerinden bir objeye erişildiği zaman görseldeki gibi görünmektedir.

image

Objeler, listelenmek istendiğinde “Access Denied” yanıtı verebilir.

image

Bunun içinde policy olarak ListBucket eylemine izin verilmelidir. Yan tarafta bulunan Add Statement seçenğinden servis ve izin verilecek eylem seçilebilmektedir.

image

Gerekli izinler verildiğinde bucket içerisindeki objelere public olarak erişim sağlanabilmektedir.

image

Amazon s3 servisi aynı zamanda statik bir web site yayınlayabiliyor. Oluşturulan bucket detaylarında Properties > Static website hosting ayarlarından etkinleştirilebilir

image

S3 bucket objelerde aynı isim olduğu durumlar için versiyonlama sistemi etkinleştirilebilir. Bunun için bucket oluştururken Bucket versioning seçeneği aktifleştirilmelidir.

image

Örneğin varolan bir dosya isminden farklı bir dosya yüklediğimiz zaman, versiyonlama aktif olduğunda objenin versiyonlar kısmından veya Show versions seçeneğini etkinleştirildiğinde dosyanın versiyonları da listelenmektedir.

image

Amazon RDS (Relational Database Service)

Free tier hesaplar için AWS bir yıllığına 750saat/aylık kullanım hakkı vermektedir (Detaylı bilgi için https://aws.amazon.com/free/). Create database butonu ile veritabanı oluşturma adımlarına geçilir.

image

İlk olarak veritabanı oluşturma metodu sorulur. Standart ve kolay kurulum şeklinde iki çeşit metot bulunur. Standart kurulumda çoğu yapılandırma ayarlamalarını kendimizin yapması beklenir. Veritabanı seçilir mysql, oracle gibi hangisi kullanılmak isteniyorsa. Burada mysql seçilmiştir. Şablon olarak free tier üzerinden ilerlenmiştir. Kullanım amacına göre production veya test ortamı gibi seçenekleri de bulunur.

image

Veritabanı giriş bilgileri tanımlandıktan sonra Connectivity kısmında belirtilen ec2 instance veritabanı kaynaklarına erişebilir mi veya dışardan erişime izin durumu belirlenmektedir.

image

Connectivity > Additional configuration seçeneğinde port numarası belirlenmektedir. Varsayılan olarak 3306 portu kullanılır.

image

Veritabanı kimlik doğrulama yöntemi seçilmektedir.

image

Additional configuration ek yapılandırma işlemleri içerisinde önemli olarak ayarlanması gereken backup ve log kayıtlarının etkinleştirilmesi olabilir

image

image

En son kısımda, seçilen ayarlara göre bir ücret çıkartılmaktadır. Free tier için varsayılan ayarlamalar değişmediği sürece, deneme amaçlı kullanan kullanıcılar için ek bir ücret yansımayacaktır.

image

Oluşan veritabanı detaylarına, üzerine tıklayarak görüntülenebilmektedir.

image

Oluştururken dışardan erişime kapalı olarak oluşturulduysa, Modify seçenğine girerek public access enable hale getirilir.

image

Değişiklikler uygulandıktan sonra, security group inbound kurallarında mysql portu erişilebilir hale getirilir.

image

Erişim için gerekli işlemler tamamlandıktan sonra mysql veritabanı sunucusuna çeşitli uygulamalar kullanarak veya komut satırından bağlanılabilmektedir.

image

ec2 instance ile bağlantı kurmak istenildiğinde Actions kımsından Set up ec2 instances seçeneği seçilir.

image

Bağlantı yapılacak EC2 instance seçimi yapılmaktadır.

image

yapılan değişiklikleri gözden geçirmek için inceleme sayfası görünmektedir. Burada security group eklemeleri yapıldığını açıklamaktadır. Bu işlemlerden sonra, ec2 instance ile mysql veritabanına erişim sağlanabilmektedir.

image


Amazon VPC