書籍『Amazon Web Services クラウドデザインパターン 実装ガイド』写経・実践メモ - 3章 画像動画配信サイトの構築



主に以下の書籍について、"実践編"のタイトル通り実際に読み進め、環境構築を行なっていった過程でのメモ書き等を後学の為にもエントリとしてUPする事にする。
Amazon Web Services クラウドデザインパターン実装ガイド

Amazon Web Services クラウドデザインパターン実装ガイド

なお、以下の書籍も時折参照。

Amazon Web Services クラウドデザインパターン 設計ガイド

Amazon Web Services クラウドデザインパターン 設計ガイド

Amazon Web Servicesプログラミング ―APIの基礎からElastic Beanstalkの利用まで

Amazon Web Servicesプログラミング ―APIの基礎からElastic Beanstalkの利用まで



3章 画像動画配信サイトの構築

事前準備としてMovable Typeのインストールが必要だったのでその時の実施メモも併せて記載。

Movable Typeのインストールメモ
$ pwd
/home/ec2-user
$ sudo yum update
$ sudo yum install -y httpd
$ sudo service httpd start
  • 固定IPでブラウザアクセス確認
  • Perlインストール(既に入ってた)
$ perl -v
$ sudo yum install -y perl
  • MySQLインストール
$ sudo yum install -y mysql-server
$ mysql --version // 5.5.29
$ sudo wget http://www.movabletype.org/downloads/stable/MTOS-5.14-ja.zip
$ sudo unzip MTOS-5.14-ja.zip
$ sudo mkdir /var/www/mt

$ cd MTOS-5.14-ja
$ pwd   // /home/ec2-user/MTOS-5.14-ja
$ sudo mv mt-static/ /var/www/mt/
$ sudo mkdir /var/www/mt/admin
$ sudo mv * /var/www/mt/admin/

$ sudo mkdir /var/www/mt/html
$ sudo chmod 755 /var/www/mt
$ sudo chmod 755 /var/www/mt/admin/*
$ sudo chmod 777 /var/www/mt/admin
$ sudo chmod 777 /var/www/mt/html
$ sudo chmod 777 /var/www/mt/mt-static/support/

$ sudo vi /etc/httpd/conf.d/mt.conf
---------------------
<VirtualHost *:80>
    DocumentRoot /var/www/mt/html
    DirectoryIndex index.html index.htm index.cgi index.html

    # Website.
    <Directory "/var/www/mt/html">
        Options FollowSymLinks -Indexes -ExecCGI
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>

    # Application Directory.
    Alias /mt "/var/www/mt/admin/"
    <Directory "/var/www/mt/admin">
        Options -FollowSymLinks -Indexes ExecCGI
        AddHandler cgi-script .cgi
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>

    # Static Directory.
    Alias /mt-static "/var/www/mt/mt-static/"
    <Directory "/var/www/mt/mt-static">
        Options -FollowSymLinks -Indexes -ExecCGI
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>
---------------------
sudo service httpd reload
sudo yum install -y perl-GD // 追加インストール
$ sudo service mysqld start
$ mysqladmin -u root password
(※任意のパスワードを設定)
$ mysqladmin create --default-character-set=utf8 -u root -p mt
Enter password: (上記設定パスワードを入力)

$ mysql -u root -p
Enter password: (上記設定パスワードを入力)

mysql> grant all on mt.* to mtuser@localhost identified by 'mtpasswd';
mysql> flush privileges;
mysql> exit

$ mysql -u mtuser -p
Enter password: (mtpasswd)  // mtuserでのログイン確認
-http://(固定IP)/mt/にアクセス、サインイン
-上記2つを設定、[開始]押下
--スタティックウェブパス:/mt-static
--スタティックファイルパス:/var/www/mt/mt-static
-[次へ]押下
-以下内容を設定、接続テスト実施後[次へ]押下
--データベースの種類:MySQL
--データベースサーバ:localhost
--データベース名:mt
--ユーザ名:mtuser
--パスワード:mtpasswd
-メール設定割愛、[次へ]押下、設定完了
-管理者アカウントの作成(mtadmin/mtpasswd)
-最初のウェブサイトを作成:
--ウェブサイト名:任意のウェブサイト名
--URL:public DNS
--ウェブサイトパス:/var/www/mt/html
-諸々処理完了後、サインイン可能に。
-サインイン後、ブログ作成
-任意の内容でブログ作成、再構築

Movable Typeインストールメモはここまで。

※Route53サービスを使ってEC2インスタンスドメイン名を付加。

DNSを設定する(Route53)

Route53:DNSサーバの機能を提供。管理したいドメイン名を登録する事でDNS運用が可能に。

Public DNSで登録したのでURL設定を変えておく必要がある。

  • Public DNSで設定画面へ→ウェブサイトURLをElastic IPベースのものに変更
  • 上記処理を受けてAWSでElastic IPを割り当てる
  • Elastic IPで再度ブラウザアクセス、ログイン確認。
  • Route53サービス移動
    • 新規ゾーンを作成
    • 設定作業諸々
    • nslookupで確認
    • (後は反映待ち…)
    • 確認
nslookup ドメイン名(example.com) DNSサーバ名

Web Storageパターン

負荷の大きなものをS3て提供する手法、可用性の高いインターネットストレージの活用。Amazon S3を用いる。

似たようなもので、Web Storage Archiveパターンと言うのもある。こちらは"大容量データのアーカイブ化"を目的とする。

  • バケットを作成すると、その名前とURLを紐付けてアクセス出来るようになる。
  • パケット作成場所は選べる。

実践:

  • コンソールからS3管理画面を開く
  • Create Bucketバケット作成
  • Policy作成 by AWS Policy Generaor
  • CNAME設定でURLを紐付け(※URL反映されてないので未着手)
  • GUI経由でアップロード、表示を確認。

Direct Hostingパターン

S3を静的コンテンツ配信のWebサーバとして利用、インターネットストレージで直接ホスティング


以下割愛。

  • S3バケットを用意、パーミッションを設定
  • Webサイト機能を有効化
    • [Static Website Hosting]という名称に変わっている模様。
    • Enable website hostingを選択、HTMLファイルを用意する等して対応。
    • S3バケットURL・WebサイトURLの両方からアクセス出来るようになる。

Cache Distributionパターン

キャッシュで負荷軽減、物理的にユーザーの近い位置へのデータ配置を行う。


Amazon CloudFrontを用いて実現している。