MICROSOFT AZURE ÜZERİNDE SQL SERVER SANAL MAKİNESİNE ASP.NET UYGULAMASINDAN BAĞLANMAK

Uygulamamıza başlamadan önce lokal sisteminizde kurulu olması gereken programları aşağıdaki belirtiyorum.

Şimdi uygulamamızda kullanacağımızı Virtual Network (Sanal network)’ü oluşturalım. Ancak burada dikkat etmeniz gereken bir nokta var. O da Virtual Network içerisinde oluşturacağınız sanal makinelerin iç IP adreslerinin kalıcı olacağıdır. Yani bir sanal network içerisinde bir sanal makine oluşturduğunuzda daha sonra bu sanal makineyi başka bir sanal networke taşıyamıyorsunuz.

  • Azure Management Portal’ı açtıktan sonra NEW/ NETWORKS/ VIRTUAL NETWORK/ CUSTOM CREATE butonlarına tıklayalın.

  • Açılan Virtual Network Details penceresinden sanal networkünüz için bir isim belirleyin. Affinity Group Bölümünden var olan bir affinity group seçebilirsiniz ya da yeni oluşturabilirsiniz.

Bir Affinity Group içerisinde oluşturacağınız sanal networkler ya da sanal makineler aynı Azure veri merkezi içerisinde olacaktır. Bu nedenle performansınız artacak, potansiyel maliyetleriniz ve gecikme süreleriniz azalacaktır. Bir sanal network oluşturduğunuz zaman önceden oluşturduğunuz affinity group’u kullanabilir yada yeni bir affinity group oluşturabilirsiniz.

  • DNS Server and VPN Connectivty sayfasında DNS server ismi ve IP adresini giriniz. Point-to-site ya da site-to-site seçeneklerini bu örneğimizde kullanmayacağımız için seçmenize gerek yok.

 

 

  • Virtual Network Address Spaces bölümünde yeni sanal networkünüz için private adres aralığınız oluşturun. Adres aralığınız private adres aralığında olmalıdır. (CIDR olarak örneğin 10.0.0.0/8, 172.16.0.0/12 ya da 192.168.0.0/16 gibi). Ayrıca oluşturacağınız adres aralığınız için birden fazla subnet’de oluşturabilirsiniz.

  • Check işaretine bastıktan sonra sanal networkünüz oluşturulmaya başlanacak ve kısa bir süre sonra tamamlanacaktır.
  • Sanal networkü oluşturduktan sonra SQL Server sanal makinemizi oluşturabiliriz.
  • NEW bölümünden Compute / Compute /Virtual Machine ve From Gallery bölümlerine tıklayın.

  • İmaj Galeri bölümünde SQL SERVER bölümünden dilediğiniz imajı seçin ve devam edin.

  • Virtual Machine Configuration bölümünden sanal makine ismini, sanal makinenizin donanım tipini, kullanıcını adını ve parolanızı yazınız.

  • Yeni gelen ekranda Cloud Service alanından yeni bir cloud service oluşturabilirsiniz.
  • Cloud Service DNS adını seçiniz. Region/Affinity Group/Virtual Network bölümünden daha önceden oluşturduğunuz sanal networkünüzü seçiniz. Storage Account olarak yeni bir hesap oluşturun.

  • Yeni gelen sayfada VM Agent kurulumunu işaretleyip SQL Server kurulumuna başlayalım.

  • Birkaç dakika sonra önce Windows Server işletim sisteminiz ardından; işletim sisteminiz üzerine SQL Server kurulacaktır.

  • SQL Server sanal makineniz kurulduktan sonra SQL Server sanal makinenize internet üzerinden bağlanabilmek için bazı endpoint ve firewall ayarları yapmanız gerekmektedir.
  • Kurduğunuz SQL Server sanal makinenize Microsoft Azure üzerinde tıklayın ve Endpoints bölümüne gelin.

  • Add butonuna tıklayarak Add a Stand-Alone Endpoint seçin ve devam edin.

  • Açılan bölümden Endpoint için bir isim verin. SQL Server erişimleri için içerde 1433 portunu açmanız gerekiyor. İnternet üzerinde istenmeyen erişimlere ya da atakların önüne geçmek için farklı bir port verebilirsiniz Public Port alanına. Ben örnek için aynı port numarasını kullandım.

  • Onayladıktan sonra Endpoint işleminiz kısa süre sonra tamamlanacaktır.

  • Enpoint işlemimizi tamamladıktan sonra Remote Desktop içinde endpoint ayarlarını yapılandırabilirsiniz. Varsayılan olarak Remote Desktop Public Port numarası 3389 olarak gelmez(Güvenlik nedeniyle) Bunu dilerseniz edit butonuna basarak düzenleyebilirsiniz. Ardından SQL Server sanal makinemize bağlanıp Windows Firewall üzerinde izinlerimizi vermemiz gerekmektedir.
  • Windows Firewall with Advanced Security bölümünden Inbound Rules alanına sağ tuş ile tıklayın ve New Rule butonuna basınız.

  • Açılan Rule Type sayfasından Port alanını seçin ve devam edin.
  • Protocol and Paths sayfasında TCP alanını seçin ve Specific local ports bölümünü işaretleyin ve 1433 portunu yazın.

  • Açılan Action bölümünden Allow the conection’ı seçin ve devam edin.

  • Profile bölümünden internetten erişim için Public alanını işaretleyin.

  • Son olarak kuralınız için bir isim verin ve işleminizi tamamlayın.

  • Windows Firewall üzerinde kuralımızı oluşturduktan sonra SQL Server Configuration Manager’ı açalım.
  • SQL Server Configuration Manager içerisinde SQL Server Network Configuration bölümüne gelin, altından Protocol for MSSQLSERVER alanına tıklayın ve TCP/IP protokolünün Enabled olduğundan emin olun.

  • Ortamınız eğer örneğimizdeki gibi Domain ortamı değil ise, SQL Server Database Engine’e erişirken kullandığınız Windows Authentication işlemi sorun çıkartacaktır. SQL Server’ı kullanacak diğer makineler için Authentication tipinizi Mixed mode authentication olarak ayarlamalısınız.
  • SQL Server Management Studio’yu öncelikle Windows Authentication ile açın.

  • Object Explorer bölümünde SQL Server’a sağ tuş ile tıklayın Properties bölümüne gelin.

  • Security bölümünden Server authentication alanını SQL Server and Windows Authentication mode olarak belirleyin.

  • Ardından OK butonuna basın ve SQL Server servisini restart edin.

  • Security bölümüne sağ tuş ile tıklayın ve New bölümünden Login butonuna tıklayın.
  • Açılan pencereden SQL Server authentication bölümünü seçin ve bir kullancı adı ve parola belirtin.
  • Default database listesinden master database’i seçin.

  • Ardından Server Roles alanına gelin ve sysadmin rolünü seçin, OK tuşuna basın.

  • SQL Server Authentication için kullanıcı tanımlayıp yetkilendirmemizi yaptıktan sonra örnek bir veritabanı oluşturalım. Bunun için SQL Server Management Studio’ya oluşturduğunuz kullanıcı için bağlanın.

  • Ardından SQL Server makinenizin ismi üzerine sağ tuş ile tıklayın ve New Query butonua basın.

  • Açılan bölüme aşağıdaki komutu yazarak Execute butonuna bası ve örnek veri tabanınızı oluşturun.

 

  • Databases bölümünün altında oluşturduğunuz database’i görebilirsiniz. Oluşturduğunuz database’e sağ tuş ile tıklayın ve New Query butonuna basın. Aşağıdaki komutu çalıştırdığınızda örnek database altında 2 diziniz oluşacaktır.

  • Şimdi artık lokal bilgisayarınızda basit bir ASP.NET uygulaması oluşturarak Azure üzerinde oluşturduğunuz SQL Server sanal makinesine bağlanalım.
  • Bunun için Visual Studio’nuzu açın ve File-New-Project butonlarına basarak yeni bir proje oluşturun.
  • Açılan New Project penceresinde, Installed Templates listesinden C# için Windows Azure Cloud Service‘i seçin isim olarak DataBinding yazın ve OK butonuna basın.

  • Açılan New Windows Azure Cloud Service penceresinde ASP.NET Web Role’ü seçin ve Windows Azure Cloud Service Solution bölümüne alın, OK butonuna basın.

  • Açılan New ASP.NET Project sayfasından Web Forms bölümünü seçin ve OK butonuna basın.

 

  • Defualt.aspx bölümünde Design görümüne geçin.
  • Toolbox – Data bölümünden GridView kontrolünü design bölümüne tutun ve sürükleyin.

  • GridView bölümünün özelliklerinden AutoGenerateDeleteButton ve AutoGenerateEditButton bölümlerini True yapın.

  • Solution Explorer bölümünden web.config bölümüne çift tıklayın.
  • ConnectionStrings bölümünü aşağıdaki gibi değiştirin.

 

<connectionStrings>

<add name=”SQLServerinWAConnection”

connectionString=”Data Source=tcp:SQLVMInternalIPAddress;Initial Catalog=OnderDB;User ID=sqlvmlogin;Password=yourpassword;Encrypt=true;Trusted_Connection=false;TrustServerCertificate=true”

providerName=”System.Data.SqlClient” />

</connectionStrings>

  • tcp:SQLVMInternalIPAdress satırına SQL sanal makinenizin iç IP adresini yazın. Örneğin tcp:10.4.2.4
  • Initial Cataog=OnderDB bölümüne oluşturduğunuz örnek veri tabanını, ID ve Password bölümlerine database üzerinde yetkili bir kullanıcı ve parolasını yazın.
  • Ardından Default.aspx bölümüne tıklayın ve Source bölümüne geçin.
  • Aşağıda yazan SQLDataSource kontrol komutlarını bağlantınız için BodyContent tagı içerisine yazın. Bu komut SELECT, INSERT, UPDATE ve DELETE kontrollerini içermektedir.

 

<asp:SqlDataSource ID=”SQLServerDataSource” runat=”server”

ConnectionString=”<%$ ConnectionStrings: SQLServerinWAConnection%>”

InsertCommand=”INSERT INTO [Table1] ([Col1], [Col2]) VALUES(@Col1, @Col2)”

SelectCommand=”SELECT * FROM [Table1]”

UpdateCommand=”UPDATE [Table1] SET [Col2] = @Col2 WHERE [Col1] = @Col1″

DeleteCommand=”DELETE FROM [Table1] WHERE [Col1] = @Col1″>

<UpdateParameters>

<asp:Parameter Name=”Col2″ Type=”String” />

<asp:Parameter Name=”Col1″ Type=”Int32″ />

</UpdateParameters>

<InsertParameters>

<asp:formParameter Name=”Col1″ FormField=”TextBox1″ />

<asp:formParameter Name=”Col2″ FormField=”TextBox2″ />

</InsertParameters>

<DeleteParameters>

<asp:Parameter Name=”Col1″ Type=”Int32″ />

</DeleteParameters>

</asp:SqlDataSource>

  • Default.aspx sayfasında tekrar Design mode’a geçin. Gridview kontrolünüzün özellikler bölümüne gelin DataSourceID=”SQLServerDataSource” ve DataKeyNames=”Col1″ olarak değiştirin.

  • Web.config dosyanıza gerin dönün ve <system.web> tagı içerisinde <compilation> tagından sonra aşağıdaki komutu girin.

<customErrors mode=”Off”/>

  • Visual Studio uygulamanız içerisinde network ayarlarınızı yapılandıracağınız iki adet *.cscfg dosyası göreceksiniz. ServiceConfiguration.Cloud.csfg dosyası içerisinde Windows Azure Cloud için yapılandırma bilgilerini girebilirsiniz. ServiceConfiguration.Local.csfg dosyası içerisinde ise Compute Emulator için yapılandırma bilgilerini girebilirsiniz.
  • Aşağıdaki komutlarla Web Role ile SQL Server sanal makine arasında bağlantı oluşturacağız. Visual Studio üzerinde DataBinding projenizi genişletin ve Roles altında ServiceConfiguration.Cloud.csfg dosyasına tıklayın. Dosyasının içerisinde en son Role tagından sonra aşağıdaki komutları yazın.

<NetworkConfiguration>

<VirtualNetworkSite name=”OnderVN” />

<AddressAssignments>

<InstanceAddress roleName=”WebRole1″>

<Subnets>

<Subnet name=”FrontEndSubnet” />

</Subnets>

</InstanceAddress>

</AddressAssignments>

</NetworkConfiguration>

 

  • NetworkConfiguration içerisinde Microsoft Azure üzerinde daha önce oluşturduğunuz sanal network ismini VirtualNetworkSite name alanına
    subnet adınızıda Subnet name alanına doğru girin.

 

  • Configuration ayarlarını dosyaya girdikten sonra Solution Explorer bölümünde WebRole1’e sağ tuş ile tıklatın ve Properties bölümüne tıklayın. Service Configuration bölümünü Cloud olarak ayarlayın.

     

  • F6 tuşuna basarak uygulamanızı build edin.

     

  • Web uygulamanızı Microsoft Azure üzerinde yayınlamak için DataBinding projesi üzerinde sağ tuş ile tıklayın Package butonuna basın.

     

  • Açılan Package Windows Azure Application penceresinde Service Configuration alanının Cloud olduğundan emin olun. Aynı zaman Build Configuratioın bölümünü Release olarak ayarlayın ve Package butonuna basın.

     

  • Daha sonra Azure Management Portalına tekrar bağlanın.
  • NEW – COMPUTE – Cloud Service ve Custom Create butonlarına basın
  • Açılan Create a cloud service penceresinde URL olarak projenizin adı olan DataBinding’i (URL için benzersiz bir isim vermeniz gerekmektedir) girin ve daha önce oluşturduğunuz AffinityGroup’u seçin. Deploy a Cloud Service package now seçineğiniz işaretleyin ve ok işareti ile devam edin.

  • Açılan Publish your cloud service alanında Deployment Name için bir isim verin. Örneğin DataBinding. Package bölümünde From Local butonuna basın ve .\ DataBinding\DataBinding\bin\Release\app.publish altında Service Package file olan dosyası seçin. Configuration bölümü içinde Cloud Service Configuration file olan dosyayı seçin ve Deploy even if one or more roles contain a single instance seçeneğini işaretleyin.
  • Check butonuna bastıktan sonra uygulamanız Microsoft Azure üzerinde yayınlanacaktır. Uygulamanızın url’sine tıklayınca sayfanızı görüntüleyebilirsiniz.

 

 

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.