AWS EC2上にメールサーバーを立てる
長かった・・・
5日前に作られしメールサーバー構築の悲劇
今その決着はついた
だがこれでよかったのか?
サーバー構築の達人たちよ
申請結果
前回の「AWS EC2上にメールサーバーを立てるために事前申請してみる」の続き
申請した翌日には返信がありました。
確認
申請前に一回確認しとけばよかったと少し後悔しているが
一応、通知後の状況を確認しておく。
逆引きの登録確認
~ $ nslookup hoge.net Server: 192.168.1.1 Address: 192.168.1.1#53 Non-authoritative answer: Name: hoge.net Address: xxx.xxx.xxx.xxx ~ $ nslookup xxx.xxx.xxx.xxx Server: 192.168.1.1 Address: 192.168.1.1#53 Non-authoritative answer: xxx.xxx.xxx.xxx.in-addr.arpa name = hoge.net.
正引きと逆引きが一致する。OKのようだ。
ブラックリストに載ってないか確認
RBL.JP → すべて登録なし
BLACKLISTALERT.ORG - Email Problem ? - Test if your IP or DOMAIN is blacklisted in a spamdatabase → 最初は幾つかLISTEDになっていたが、現在では1箇所に減っている。もう少し経てば消えるかな?
メールサーバー構築開始(Postfix+Dovecot)
送信サーバーにはPostfix、受信サーバーにはDovecotを使用。 だが、あまりにも嵌りすぎて正直どんな手順でどう設定して行ったのか覚えていない。
とりあえず最終的な設定結果だけを書き出してみる。
送信サーバー
ポート:587 (サブミッションポート)
接続保護:STARTTLS
認証:SMTP-AUTH
受信サーバー
複数アカウントの用意
・・・実は上記の設定までであれば、半分くらいの時間で済んでいた。
だが作成していた2つのアカウントのうち、片方のアカウントへメールが届かないことが判明。送信はできるのだが。
これがさらなる悲劇の始まりであった。
調べてみると、複数アカウントで受信するためには「バーチャルメールボックス」という設定をしなければならないとのこと。
その対応のためにこれまでの設定をさらにいじることに。
バーチャルメールボックス設定前は、1アカウントはとりあえず送受信できていたのに
そのアカウントも送受信できなくなってしまっていた。
「status=bounced (User unknown in virtual alias table)」のエラーログがどうやっても消えない。
私の構想上、どうしても2つのアカウントが必要だ。
何度ググってみても有力な情報が見つからない。
何度も何時間も設定を弄ってはテストメールを送りログを確認の繰り返し。
そのうち、おぉ。出来たっ!!!
バーチャルホストの設定が不要だったらしい。
感想
疲れた…の一言。無事に当初の目的は達成したが、もう当分メールサーバー構築はこりごり。
AWS EC2上にメールサーバーを立てるために事前申請してみる
AWS EC2上にメールサーバーを立てようと思って調べてみると事前申請をした方が良いらしい。 スパムに使われないよう制限解除の申請のようだ。
申請回答に2,3営業日掛かるそうなので、今回は申請だけしておくことにする。
申請手順はここを参考に。
AWS EC2 Eメール上限緩和 / 逆引き(rDNS)設定 申請手順
下記の申請ページから「Eメール上限緩和」と「 逆引き(rDNS)設定 」を合わせて申請した。
https://portal.aws.amazon.com/gp/aws/html-forms-controller/contactus/ec2-email-limit-rdns-request
で回答を待つ訳だが。 Amazonさんの営業カレンダーってどうなってるのか? 日本での審査だと最悪GW明けとなってしまう可能性も!?
AWS EC2上にWordPressをインストールしてみる
ビジネスサイトのようなものを構築するCMS的なものとしてWordPressをAWS EC2上にインストールしてみた。
インストール手順
ただ単にAWSの公式サイトの下記の内容を手順通りに行っただけです。
とくに問題もなく無事、WordPressがインストールできた。
結果
ディスク容量が気になったが、インストール直後の状態ではまだ余裕がありそう。 今はこんな感じ
[ec2-user@ip-XXX-XXX-XXX-XXX wordpress]$ df -h ファイルシス サイズ 使用 残り 使用% マウント位置 /dev/xvda1 7.8G 1.4G 6.4G 18% / devtmpfs 490M 56K 490M 1% /dev tmpfs 499M 0 499M 0% /dev/shm
MySQLにAWS RDSを使うことも検討したが料金計算をしてみて断念。 EC2内にインストールすることとした。
EC2のほうもそんなに容量がないので、できればサイトで使う画像ファイルなどにはS3を使っていければと考えている。
まとめ
とりあえず今回はここまで。サイトの中身は時間をみて少しずつ作り上げていく。
CMSはいままで1回だけ5年ほど前にとある政令都市の市役所ホームページリニューアルのお手伝いで つかったことがあるだけでWordPress自体は初めて。少しずつ使い方を覚えていこうと思う。
またビジネスサイトの作成も経験なし。どこかデザインの参考になるものを探して本格的サイトにしていければと思う。
AWS Route 53 を使い EC2インスタンスにドメイン名をつけてみる
もうちょい後にしようと思っていたのだが昨日作成したWEBサイトにドメイン名をつけてみることにする。
今回はこちらの記事を参考にさせていただきました。
お名前.com で取ったドメインを Amazon Route53で管理し、サブドメインをはてなブログに割り当てるまで - 銀の光と碧い空
ドメインの取得
一応まえまえから、どんなドメイン名をつけようか検討してたので早速申し込み手続きを。
お名前.comでドメインの取得しました。詳細は割愛します。
EC2インスタンスにパブリック固定IPの割り当て
EC2ダッシュボードにある「Elastic IP」を選択し「新しいアドレスの割り当て」を選択。 作成済みのEC2インスタンスへ関連付けする。
※ これの割り当てをするEC2インスタンスに固定用のIPアドレスが付け直されますので注意しましょう。
AWS Route 53 のDNSサービスを利用する
AWSマネージメントコンソールからRoute 53を選択する。
「Create Hosted Zone」を押し、取得したドメインを入力。
ゾーンを作成すると4つのネームサーバーが表示され利用できるようになる。
お名前.comのネームサーバーを変更
お名前.comのドメインNaviにログインし、ネームサーバーを変更。
Route 53で表示されていたネームサーバーを入力します。
nslookupコマンドにてネームサーバーの切り替えを確認。
反映に15分ほどかかりました。
$ nslookup set type=ns xxxxx.net
IPアドレスの設定
AWS Route 53に戻り作成したゾーンにAレコードを作成。
「Create Record Set」を押しValueにEC2インスタンスの固定IPを入力。Nameのサブドメイン部分は少し迷ったが、とりあえず www とした。
アクセス確認
DNSの反映に20分以上待たされ不安であったが無事に接続!
まとめ
インフラ系に弱いこんな自分にも公開Webサイトが安く(今のところドメイン取得の料金のみ)簡単に構築できてしまっていいのか?(サイトの内容はともかく)という驚き。
1年の無料枠を超えたら料金がどうなるかわからないが、こんな便利なサービスを提供してくれるAmazonさんに感謝したい。
AWS EC2を試してみる(その2)WEBサイト立ち上げ
少し間が空いてしまったが前回のAWS評価のつづき 今回はWebサーバーを起動するまでを試してみる。
以下はEC2インスタンスに接続後の操作です。
Apache HTTPサーバーのインストールと起動
下記コマンドを入力しインストールとサービス起動を行う。
$ sudo yum install httpd $ sudo service httpd start
テスト用HTMLの作成
wwwのルートディレクトリにHTMLファイルを作成
$ cd /var/www/html $ sudo vi index.html
とりあえず下記のようなファイルを作成しました。
<html> <head> <title>AWS EC2 デモサイト</title> </head> <body> <h1>AWS EC2 でWEBサイトを立ち上げてみる</h1> </body> </html>
HTTPのアクセスを許可
外部からブラウザアクセスしようとするとセキュリティーでブロックされてしまうようなので セキュリティーグループにルールを追加しHTTPの外部からのアクセスを許可する
とここまでくると、ブラウザからアクセスしてみると下記ページが無事表示された。
まとめ
将来的にはちゃんとしたドメイン名をつけたWebサイトにしたいと思っているが 当面はHTML5,CSS3,Javascriptなどのお勉強実習用に使っていきたいと思う。
AWS EC2を試してみる(その1)
そろそろ私もクラウド*1を勉強しないといけないと思い、AWS(Amazon Web Service) EC2を試すことにした。
AWS EC2 でWebサーバーを構築
ググってみたら、こちらのブログ記事が非常に丁寧にまとめられているようだったので、ありがたく参考にさせていただきました。
AWS EC2を使って無料枠でWebサーバを立ててみた(2014年11月版) - sometimes I laugh
AWSユーザー登録をする
こちらにアクセスしてまずはユーザー登録
途中で電話による本人確認もありながらも登録完了。
マネージメントコンソールを開くとたくさんのサービスが並んでます。
EC2インスタンスの作成
さきほどのマネージメントコンソールからEC2を選択し、仮想サーバーを作成します。
1.Choose AMI
22個ほど用意されたOSイメージの中から、今回は一番トップにある無難そうな「Amazon Linux AMI 2015.03 (HVM), SSD Volume Type - ami-cbf90ecb」 を選択してみます。
2.Choose Instance Type
t2.microのみ無料枠のようなのでこれを選択します。
3.Configure Instance
ここはデフォルトのままで行ってみます。
4.Add Storage
ここは下記のようにしてみます。特に意図があるわけではなく山勘です。(⌒-⌒; )
- Size: 8GB -> 15GB
- Volume Type: General Purpose(SSD)
- Delete on Termination: On -> Off
5.Tag Instance
インスタンスにタグ付けができるようです。何に役立つのかわかりませんが Name:Server1 とだけ設定しておきます。
6.Configure Security Group
どうもインスタンスとの接続方法の指定のようです。 インスタンスはLinuxなのでTypeはSSHのままにします。 Sourceでインスタンスに接続できるIPアドレスを指定できるようです。Anywhereのままにしてると次のページでセキュリティの改善をしなさいと警告されたのでMy IPにしました。
7.Review
これまでの設定内容の確認画面です。 設定に問題なければLaunchボタンを押します。
SSH用の証明書の選択ダイアログが表示されるので新規作成しておきます。 続行すると下記の「起動中ですよ」画面が表示されました。
インスタンスに接続する
さてちゃんと起動しているかインスタンスに接続してみます。 接続方法にSSHを選択したのでsshで接続すればよいのですが、さて…と思っていたら、 下記画面のConnectボタンを押すと具体的なインスタンスへの接続方法が表示されましたのでターミナルからその通りにやってみます。
途中なぜか認証の確立に失敗してますが、continueで無事接続できたようです。
ログインのメッセージで「セキュリティーのためアップデートしなさい」とでてますので、本日のところはそれだけして続きはまた明日にします。
無料枠の750時間/月の制約がありますが、当面のところ1インスタンスだけの予定なのでStopしなくて大丈夫そうです。
まとめ
今回は初めてで調査しながら・記事を書きながらしたので時間が掛かってしまったが、慣れてくればかなり短時間でサーバーを用意できそうだ。 次回は実際にWebサーバーを動かしてみる。
Haskell Platformをインストールする
さて、もともと快適な開発マシンが欲しくてiMacを購入したので(動作は快適になったのだが、まだ操作が全然快適じゃなぁい´д` ;)、まずはHaskellを使えるようにしてみたいと思う。
iMac(Yosemite)と仮想上のWindows(8.1), Ubuntu(14.04LTS)にそれぞれHaskell Platformをインストールする。
Macにインストール
下記リンクからダウンロード・インストールする。
ターミナルから確認してみる
~ $ ghc --version The Glorious Glasgow Haskell Compilation System, version 7.8.3
はい、一丁あがり。
Windowsにインストール
下記リンクからダウンロード・インストールする。
コマンドプロンプトで確認してみる
>ghc --version The Glorious Glasgow Haskell Compilation System, version 7.8.3
はい、こっちもOK。
Ubuntuにインストール
下記リンクのバイナリをダウンロードすればいけそうなきがしたのだが…
ここは素直に(?)apt-getを使ってインストールしてみた。
~$ sudo apt-get update
~$ sudo apt-get install haskell-platform
ターミナルで確認してみる
~$ ghc --version The Glorious Glasgow Haskell Compilation System, version 7.6.3
ありゃ、バージョンが少し古いみたい。 ちょっと調べてみたがいろいろややこしそうなので、まあいいか。
とりあえず、今回はここまで。