44
2012/11/12 8JAWS-UG 札幌 大内 寛和 AWSのおかげで・・・

20121112 jaws-ug sapporo8

Embed Size (px)

DESCRIPTION

2012/11/12 第8回JAWS-UG札幌支部 事例発表資料

Citation preview

Page 1: 20121112 jaws-ug sapporo8

2012/11/12 第8回 JAWS-UG 札幌

大内 寛和

AWSのおかげで・・・

Page 2: 20121112 jaws-ug sapporo8

大内 寛和株式会社データクラフト 開発部

fb: hirokazu.ouchi

JAWS-UG 札幌 ( 2010/12/14~ )副代表

好きなサービス

Amazon Route

53

Page 3: 20121112 jaws-ug sapporo8

ロイヤリティーフリーの写真素

材印刷、マルチメディア、WEBデザインな

ど幅広い用途に利用可能な、ロイヤリ

ティーフリー・デジタルフォトコレク

ション。

http://www.sozaijiten.com/

ストックフォトのダウンロード

販売国内・海外のフォトブランドから200万

以上の写真素材を提供するストック

フォ

トダウンロード販売サイト。http://imagenavi.jp/

Page 4: 20121112 jaws-ug sapporo8

AWSを利用するきっかけについて

Webサイト、社内の業務アプリ開発メイン(サーバ/インフラには全く興味なし)

自社サイトはオンプレミス型で運用(クラウドの知識は0)

← この人

Page 5: 20121112 jaws-ug sapporo8

2010/11/3 【札幌】 AWSハンズオンに参加!

Page 6: 20121112 jaws-ug sapporo8
Page 7: 20121112 jaws-ug sapporo8

数分でサーバ起動・・・(えっ?

時間課金・・・(本当に?

サーバのコピーが簡単・・・(唖然

ファイルアップしただけで、URLが付く・・・(面白い!

Page 8: 20121112 jaws-ug sapporo8

すっかり、AWSに魅入られてしまい、

社内利用を目指して、AWSについて、うんちくを語り、半ばこじつけでAWSアカウントを取得!

そんなことをやってるうちに・・・

Page 9: 20121112 jaws-ug sapporo8

サーバ担当になりました

Page 10: 20121112 jaws-ug sapporo8

AWSのおかげで、仕事が増え自社サイトの課題が明確になり、試行錯誤を繰り返しながら、改善に勤しんでおります。

その中で培った、AWSの小ネタをご紹介します。

Q1. AWSからメール送りたい!

Q2. サイトが重くてつながらない、助けて!

Q3. (オマケ)海外のサイトを調査したい!

Page 11: 20121112 jaws-ug sapporo8

Q1.

AWSからメールを送りたい!

mail

Web

Server

Mail

Server ?

Page 12: 20121112 jaws-ug sapporo8

EC2インスタンスからメール送信

大まかな手順・メールサーバのDNS正引き設定・メール送信制限解除・DNS逆引き設定の申請・sendmail/postfixの調整

Web

Server

Mail

Server

Email

AWS:申請ページ

費用は、EC2の課金(インスタンス起動時間、データ転送量等)

Page 13: 20121112 jaws-ug sapporo8

AmazonSESからメール送信

Web

Server

EmailAmazon SES

大まかな手順・SES利用申請(テスト環境)・送信元アドレスの設定・本番利用申請

費用は、SESの課金(データ転送量、メッセージ送信数)

Page 14: 20121112 jaws-ug sapporo8

IAM: SESメール送信権限を持つユーザーを登録

SES利用準備

Page 15: 20121112 jaws-ug sapporo8

メール送信する方法(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を利用

各システムに、こういうコードを仕込むのはちょっと・・・

Page 16: 20121112 jaws-ug sapporo8

postfixからSESにリレーしましょう!

Web

Server

EmailAmazon SES

Page 17: 20121112 jaws-ug sapporo8

「/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の設定

Page 18: 20121112 jaws-ug sapporo8

1年前から、この方法でメール送信していますが、当時、postfixのことはよくわかっておらず。

ググってみると・・・

Page 19: 20121112 jaws-ug sapporo8

パクリ頂きました!ありがとうございます!

Page 20: 20121112 jaws-ug sapporo8

注意点

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);

}

Page 21: 20121112 jaws-ug sapporo8

Q2.

サイトが重くてつながらない、助けて!

Page 22: 20121112 jaws-ug sapporo8

親しくお付き合いしている会社のWebデザイナーさんからのご相談。

状況:・告知サイトを公開したところ、アクセスが殺到してサイトにつながりにくくなっている。・販売サイトにも影響して困っている。・告知サイトは、HTML+JSの静的コンテンツで構成している。・大きめの画像を表示している。

Page 23: 20121112 jaws-ug sapporo8

これだ!

Page 24: 20121112 jaws-ug sapporo8

Direct Hostingパターン

ユーザー コンテンツ編集者

Web

Server

告知サイトのコンテンツはすべてS3に配置

販売サイトhttp://xxx.jp/

告知ページhttp://yyy.xxx.jp/

Page 25: 20121112 jaws-ug sapporo8

リリース情報等、告知済みなので、ページのURLは、変えたくないです。

Page 26: 20121112 jaws-ug sapporo8

これだ!

Page 27: 20121112 jaws-ug sapporo8

Web Storageパターン

ユーザー コンテンツ編集者

Web

Server

HTMLは既存サーバーに、JS、CSS、画像をS3に配置

販売サイト http://xxx.jp/告知ページ http://xxx.jp/yyy/

コンテンツhttp://yyy.xxx.jp/

Page 28: 20121112 jaws-ug sapporo8

主な作業・S3バケットを作成・S3で付与されたホスト名をDNSに設定・コンテンツ編集用のアカウントをIAMで作成、S3の権限のみ付与

コンテンツのアップには、Cyberduckを使用しています。

Page 29: 20121112 jaws-ug sapporo8

AWS Billing Alertsを利用して、費用が一定額を超えたらメール通知するよう設定

Page 30: 20121112 jaws-ug sapporo8

これでめでたく解決しました。

S3の使用料は、当初の見積りよりも低く抑えられました。

相談者のWebデザイナーさんは、AWSの凄さに驚いていました。また、運用も簡単ということで、現在もご利用頂いています。

Page 31: 20121112 jaws-ug sapporo8

補足今回利用した、Web Storageパターンではなく、CloudFrontを利用した、Cache Distributionパターンを用いるのもよいかと思います。

ユーザー

Web

Server

ユーザー

ユーザー

S3

CloudFront

CloudFront

CloudFront

Web

Server

Page 32: 20121112 jaws-ug sapporo8

Q3.

(オマケ)海外のサイトを調査したい!

Page 33: 20121112 jaws-ug sapporo8

社内の人から、以下のような問い合わせ。

「USのWebサイトを調査したいんだけど、日本からだとアクセスできないみたい。何かいい方法ない?」

Page 34: 20121112 jaws-ug sapporo8

その時は、ちょっと忙しかったんで、詳しく聞かずに・・・

じゃ・・・

Page 35: 20121112 jaws-ug sapporo8
Page 36: 20121112 jaws-ug sapporo8
Page 37: 20121112 jaws-ug sapporo8

はい、どうぞ

Page 38: 20121112 jaws-ug sapporo8

後日、どのサイトを調査したのか聞いたところ・・・

Page 39: 20121112 jaws-ug sapporo8
Page 40: 20121112 jaws-ug sapporo8

USのiTunesで、どの程度露出しているか確認したかったようです。

Page 41: 20121112 jaws-ug sapporo8

iTunesって、アクセス元のIPで、表示を変えている?

設定を変えれば、国ごとの表示に切り替わるんじゃ・・・

Page 42: 20121112 jaws-ug sapporo8

国変更でk

Page 43: 20121112 jaws-ug sapporo8

まとめ

・EC2でイチから環境構築せずに、AWSのサービスをうまく活用することで、費用削減、サービスの早期構築に繋がります。

・CDPは、AWSとよりよくお付き合いする為のお手本。オンプレミス環境の改善にも参考になります。

・ユーザーニーズを正確に把握し、適切なサイズのソリューションを心がけましょう・・・(反省)

Page 44: 20121112 jaws-ug sapporo8

JAWS-UG 札幌

来年もよろしくお願いします!