20121112 jaws-ug sapporo8
DESCRIPTION
2012/11/12 第8回JAWS-UG札幌支部 事例発表資料TRANSCRIPT
2012/11/12 第8回 JAWS-UG 札幌
大内 寛和
AWSのおかげで・・・
大内 寛和株式会社データクラフト 開発部
fb: hirokazu.ouchi
JAWS-UG 札幌 ( 2010/12/14~ )副代表
好きなサービス
Amazon Route
53
ロイヤリティーフリーの写真素
材印刷、マルチメディア、WEBデザインな
ど幅広い用途に利用可能な、ロイヤリ
ティーフリー・デジタルフォトコレク
ション。
http://www.sozaijiten.com/
ストックフォトのダウンロード
販売国内・海外のフォトブランドから200万
点
以上の写真素材を提供するストック
フォ
トダウンロード販売サイト。http://imagenavi.jp/
AWSを利用するきっかけについて
Webサイト、社内の業務アプリ開発メイン(サーバ/インフラには全く興味なし)
自社サイトはオンプレミス型で運用(クラウドの知識は0)
← この人
2010/11/3 【札幌】 AWSハンズオンに参加!
数分でサーバ起動・・・(えっ?
時間課金・・・(本当に?
サーバのコピーが簡単・・・(唖然
ファイルアップしただけで、URLが付く・・・(面白い!
すっかり、AWSに魅入られてしまい、
社内利用を目指して、AWSについて、うんちくを語り、半ばこじつけでAWSアカウントを取得!
そんなことをやってるうちに・・・
サーバ担当になりました
AWSのおかげで、仕事が増え自社サイトの課題が明確になり、試行錯誤を繰り返しながら、改善に勤しんでおります。
その中で培った、AWSの小ネタをご紹介します。
Q1. AWSからメール送りたい!
Q2. サイトが重くてつながらない、助けて!
Q3. (オマケ)海外のサイトを調査したい!
Q1.
AWSからメールを送りたい!
Web
Server
Server ?
EC2インスタンスからメール送信
大まかな手順・メールサーバのDNS正引き設定・メール送信制限解除・DNS逆引き設定の申請・sendmail/postfixの調整
Web
Server
Server
AWS:申請ページ
費用は、EC2の課金(インスタンス起動時間、データ転送量等)
AmazonSESからメール送信
Web
Server
EmailAmazon SES
大まかな手順・SES利用申請(テスト環境)・送信元アドレスの設定・本番利用申請
費用は、SESの課金(データ転送量、メッセージ送信数)
IAM: SESメール送信権限を持つユーザーを登録
SES利用準備
メール送信する方法(PHP)
<?phprequire_once("/opt/aws/php/sdk.class.php");
$ses=new AmazonSES();$res=$ses->send_email(
'[email protected]',array( 'ToAddresses' => array('[email protected]','[email protected]') ),array(
'Subject' => array( 'Data' => 'えのき', 'Charset' => 'UTF-8'),'Body' => array( 'Text' => array('Data' => '好きです', 'Charset' => 'UTF-8')),
),);
echo $res->isOK() ? "OK": "NG";
AWS SDKを利用
各システムに、こういうコードを仕込むのはちょっと・・・
postfixからSESにリレーしましょう!
Web
Server
EmailAmazon SES
「/etc/postfix/main.cf」 追加
relayhost = email-smtp.us-east-1.amazonaws.com:25smtp_sasl_auth_enable = yessmtp_sasl_security_options = noanonymoussmtp_sasl_password_maps = hash:/etc/postfix/sasl_passwdsmtp_use_tls = yessmtp_tls_security_level = encryptsmtp_tls_note_starttls_offer = yessmtp_tls_CAfile = /etc/ssl/certs/ca-bundle.crt
「/etc/postfix/sasl_passwd」 新規作成
email-smtp.us-east-1.amazonaws.com:25 [アクセスキー]:[シークレットキー]
postfix再起動
sudo postmap hash:/etc/postfix/sasl_passwdsudo /etc/init.d/postfix restart
postfixの設定
1年前から、この方法でメール送信していますが、当時、postfixのことはよくわかっておらず。
ググってみると・・・
パクリ頂きました!ありがとうございます!
注意点
AmazonSESは、1日の送信制限があるので、制限を超えないように運用しましょう。
Cloudwatch+SNSで監視 AWS SDKを利用して、お好みの監視システムを使うのもよし
<?phprequire_once("/opt/aws/php/sdk.class.php");
$ses=new AmazonSES();$response=$ses->get_send_quota();
if ($response->status===200) {$quota_result=$response->body->GetSendQuotaResult;// 利用率echo ($quota_result->SentLast24Hours/$quota_result->Max24HourSend*100);
}
Q2.
サイトが重くてつながらない、助けて!
親しくお付き合いしている会社のWebデザイナーさんからのご相談。
状況:・告知サイトを公開したところ、アクセスが殺到してサイトにつながりにくくなっている。・販売サイトにも影響して困っている。・告知サイトは、HTML+JSの静的コンテンツで構成している。・大きめの画像を表示している。
これだ!
Direct Hostingパターン
ユーザー コンテンツ編集者
Web
Server
告知サイトのコンテンツはすべてS3に配置
販売サイトhttp://xxx.jp/
告知ページhttp://yyy.xxx.jp/
リリース情報等、告知済みなので、ページのURLは、変えたくないです。
これだ!
Web Storageパターン
ユーザー コンテンツ編集者
Web
Server
✕
HTMLは既存サーバーに、JS、CSS、画像をS3に配置
販売サイト http://xxx.jp/告知ページ http://xxx.jp/yyy/
コンテンツhttp://yyy.xxx.jp/
主な作業・S3バケットを作成・S3で付与されたホスト名をDNSに設定・コンテンツ編集用のアカウントをIAMで作成、S3の権限のみ付与
コンテンツのアップには、Cyberduckを使用しています。
AWS Billing Alertsを利用して、費用が一定額を超えたらメール通知するよう設定
これでめでたく解決しました。
S3の使用料は、当初の見積りよりも低く抑えられました。
相談者のWebデザイナーさんは、AWSの凄さに驚いていました。また、運用も簡単ということで、現在もご利用頂いています。
補足今回利用した、Web Storageパターンではなく、CloudFrontを利用した、Cache Distributionパターンを用いるのもよいかと思います。
ユーザー
Web
Server
ユーザー
ユーザー
S3
CloudFront
CloudFront
CloudFront
Web
Server
Q3.
(オマケ)海外のサイトを調査したい!
社内の人から、以下のような問い合わせ。
「USのWebサイトを調査したいんだけど、日本からだとアクセスできないみたい。何かいい方法ない?」
その時は、ちょっと忙しかったんで、詳しく聞かずに・・・
じゃ・・・
はい、どうぞ
後日、どのサイトを調査したのか聞いたところ・・・
USのiTunesで、どの程度露出しているか確認したかったようです。
iTunesって、アクセス元のIPで、表示を変えている?
設定を変えれば、国ごとの表示に切り替わるんじゃ・・・
国変更でk
まとめ
・EC2でイチから環境構築せずに、AWSのサービスをうまく活用することで、費用削減、サービスの早期構築に繋がります。
・CDPは、AWSとよりよくお付き合いする為のお手本。オンプレミス環境の改善にも参考になります。
・ユーザーニーズを正確に把握し、適切なサイズのソリューションを心がけましょう・・・(反省)
JAWS-UG 札幌
来年もよろしくお願いします!