** Amazon Web Servicesとはなにか? [#maad7a8b] - 概要 -- クラウドサービス - 公式サイト -- http://aws.amazon.com - 知識 -- Unix - 準備 -- AWSアカウント - 用語 -- EC2(Elastic Compute Cloud):仮想サーバー -- RDS(Relational Database Service):データベース -- S3(Simple Storage Service):ストレージ ** 仮想サーバーを立ちあげてみよう [#l438cb45] + アカウントコンソールからログインしEC2を選択 + Asia Pasific (Tokyo)リージョンにてLaunch Enstanceを選択 + Amazon Linux AMI(64bit)を選択 + Next: Configure Instance Detailsを選択 + Instance Type: t1.micro、Availability Zone: ap-northeast-1aを選択 + Termination Protectionにチェック:停止時オプション + Next: Add Storageを選択:デフォルト設定でOK + Next: Tag Instanceを選択 + Valueにインスタンス名「MyWeb1」を入力 + Next: Configure Security Groupを選択 + SSH、HTTPをAnywareで設定 + Launchを選択 + Create a new key pairを選択しKey pair nameを入力・ダウンロード + EC2 Management ConsoleよりInstancesを選択しInstance Stateがrunningになっていることを確認 ** 仮想サーバーの詳細を確認しよう [#ded35de1] - EC2 Management ConsoleよりPublic DNS(URL)、Security groupsを確認 - Stop: EC2の電源停止 - Terminate: EC2の削除(データも削除) - Connect: SSH接続コマンドが表示される - Elastic Block Store: インスタンス作成時に自動的にVolumeが作成 ** 仮想サーバーに接続してみよう [#ze3fe73f] - ダウンロードした秘密鍵のパーミッションを変更 $ chmod 600 [秘密鍵] - Cygwin(Windows7)を使用してログイン $ ssh -i [秘密鍵] [Public DNS] $ sudo yum update ** 仮想サーバーを設定しよう [#sb5220b5] - httpd、php、mysqlをインストール $ sudo yum -y install httpd php mysql - Webサーバーの起動、chkconfig設定 $ sudo service httpd start $ sudo chkconfig httpd on - Webページ作成テスト $ sudo vim /var/www/html/index.html <html> Hello! </html> - PHP、MySQLバージョン確認 $ php -v $ mysql --version ** イメージを作成してみよう [#l25f2f09] - EC2 Management Consoleよりインスタンスを右クリックしCreate Imageを選択 - Image Name: MyWeb1image - Create Imageを選択 -- 内部的にはインスタンスを一度ShutdownしSnapshotからAMIが作成される ** IPアドレスを設定してみよう [#td8108e9] - ShutdownするとPublic DNSが変更される + EC2 Management ConsoleのElastic IPsよりAllocate New Addressを選択 + Addressを右クリックしAssociate Adressを選択 + インスタンスを選択しAssociateを選択 + Elastic IPを使ってブラウザ経由でアクセスできるか確認 + Addressを右クリックしDisassociate AddressでIPアドレスを切り離すことが可能 + EC2に紐付いていないIPアドレスは課金されるためRelease Addressを選択しアドレスを解放 ** バックアップとスペック変更 [#ye982162] - バックアップの取得 + VolumesよりCreate Snapshotを選択 + Name: MySnap + Snapshotsにて作成されていることを確認~ - Snapshotからインスタンス作成 + Snapshotを右クリックしCreate Imageを選択~ - インスタンスのスペック変更 + インスタンスを右クリックしStopを選択 + Stateがstoppedになったらインスタンスを右クリックしChange Instance Typeを選択+ 変更後はインスタンスのStartを実施 ** データベースを立ち上げてみよう [#x40924c6] + RDSを選択 + TokyoリージョンにてLaunch a DB Instanceを選択 + Engine: MySQL + DB Instance Class: db.t1.micro + Multi-AZ Deployment: No + Allocated Storage: 5GB -> ミニマム5GB + DB Instance Identifier: MyDBInstance + Username/Passwordを設定 + Database Name: MyDB1 -> データベース名(オプション) + Availability Zone: ap-northeast-1a ※EC2と同じ + Enabled Automatic Backups: yes -> バックアップの有無 + Backup Retention Period: 1 days -> バックアップの周期 + Backup Window: No Reference -> バックアップの希望時間 ※デフォルトはUTC + Maintenance Window: No Reference -> メンテナンスの希望時間 ※デフォルトはUTC ** スペック変更とEC2からの接続 [#d6347136] - Endpointを確認 -> EC2接続時に必要 - インスタンス右クリックしModifyよりスペック変更が可能 - EC2からの接続 + Security Groupsよりdefaultを選択 + Connection Type: EC2 Security Group + EC2 Security Group Name: 接続元EC2のSecurity Group + EC2のSecurity GroupのInboundに3306(MySQL)を追加 + EC2へSSH接続 + MySQLログイン $ mysql -h [Endpoint] -p 3306 -u [Username] -p Enter password: $ show databases; mysql> show databases; ** サーバーを増設してみよう [#g1dd6057] - サーバー増設手順 + MyWeb1のAMI(MyWeb2Image)を作成 + AMIからMyWeb2(AZ:ap-northeast-1c)を作成 + MyWeb1とMyWeb2にアクセスを負荷分散するためMyLoadBalancerを作成 ** ロードバランサーを設置しよう [#m1db598e] + Load BlancersよりCreate Load Balancerを選択 + Load Balancer Name: MyLoadBalancer + StatusがOut of serviceからIn Serviceになったことを確認 + DescriptionよりDNS Nameを確認可能 ** ストレージサービスを使ってみよう [#y1f3fac3] + S3 Management ConsoleよりCreate Bucketを選択 + Bucket Nameを記入、Regionを選択 ※Bucket Nameはグローバルで一意 + Bucketを選択しCreate Folderでフォルダ作成可能 + PropertiesのLinkが外部からアクセスする際のURL + ファイルを右クリックしMake Publicを選択 + ブラウザ経由で画像が閲覧できることを確認 - SDK(SDK for PHP等)を利用することでAPIでS3を操作可能 ** S3でウェブサイトを運用する [#g6f52403] + PropertiesよりAdd bucket policyを選択 + Simple Bucket Policiesより2番目のソースを転記 + Bucketにバケット名に変更 -> Make Publicの自動化 + Static Web HostingをEnableに変更 + Index DocumentとError Docuementを指定 + EndpointにブラウザからアクセスしIndex Documentが表示されることを確認 ** 料金を確認してみよう [#i4641f3b] + AWS Management Consoleよりアカウント名のBilling & Cost Managementを選択