AWS事始め

年末の疲れで昨晩は夕食を食べずに寝落ちして、そのまま朝を迎えてしまったため、
投稿が遅れてすみません。


AWSって知らない人はいないですよね。
知らないとヤバイですよ！と、感じでクラウド界の王者として君臨している訳ですが、
じゃあ、何から使おうかと悩んでしまうほどサービスは豊富です。

とりあえず、邪道な入門を書いてみます。
正統な入門はQiitaや某Ｃ社、某Ｎ社のブログなんか見て下さい。

# 1.アカウントを作成する

メールアドレスとクレジットカードがあればアカウントが作れる。（当たり前だけどｗ）
全くの初めてだと１年分の無料利用枠が貰えたりするけど、１年なんてあっという間だし、
ちょっといろんなことをやろうとしたら、課金が必要なので無料枠は期待しない方が良い。

# 2.とりあえずログイン

ログインすると、びっくりするくらいのメニューアイコンが並んでいる管理画面が表示される。
でも、VPSとかレンタルサーバから引っ越して来たくらいの初心者は、左上のEC2とかその下にある
VPCなんかしか使わない。

# 3.まずはLAMPサーバを作りましょう

何か具体的な例があると分かりやすいと思うので、とりあえずLAMP１台作る。

LAMPサーバの条件
　　・CentOS互換 ⇒AMIでいいんじゃね？
　　・PHP version5.5以上
　　・MySQL Version 5.5以上
　　・Apache Version 2.2程度

そんな感じのサーバを作る

# 4.最初はVPC

一番面倒くさいのが、昔は無かったけど、今は必須となったVPC（バーチャールプライベートクラウド）。
ようは、仮想のサーバラックを作る。

そのサーバラックに設置出来るサーバの台数は、ここの設定で決まるので要注意。

「VPCの作成」ボタンを押すと、名前とCIDRブロックの入力を求められるので入力。

CIDRブロックは開発環境であれば「192.168.0.0/28」なんかで良いのでは？
あとから修正出来ないなので、本番環境であれば、ちゃんと検討しよう。

出来上がったVPCは一覧で表示されるので、一覧で表示したら、
VPCのアクションで「DNS解決の編集」「DNSホスト名の編集」をそれぞれ「はい」にする。
これをしないと、パブリックDNSが割り当てられない。


# 5.VPCにネットワークを作ろう

出来上がったVPCは、ネットワークにつながってない引き籠もりなので、
とりあえず、インターネットに接続するルータを設置する。

VPCダッシュボードのメニューにインターネットゲートウェイという項目があるので、選択。
「インターネットゲートウェイの作成」ボタンを押すと、名前を入力して、これで終わり。

ただし、先ほど作ったVPCにこのインターネットゲートウェイを繋げてあげる必要があるので、
「VPCにアタッッチ」ボタンで、VPCにアタッチしてあげる。

次に、このインターネットゲートウェイというルータのルーティング処理を設定する。
VPCダッシュボードのメニューにルートテーブルという項目があるので、選択。

ルートテーブル一覧から、VPCを選択して編集フォームを開く。
編集フォームに「ルート」というタブがあるので、選択。
「編集」ボタンを選択すると、「別ルートの追加」ボタンが表示されるので、選択。
入力ホームに、「送信先」と「ターゲット」があるので、
「送信先」に、「0.0.0.0/0」と入力。（インターネットへの公開）
「ターゲット」に、先ほど作ったインターネットゲートウェイ名が補完されるので、選択。
「保存」を押して、完了。

最後に、サブネットを作成する。
VPCダッシュボードのメニューにサブネットという項目があるので、選択。
「サブネットの作成」ボタンを選択。
名前とVPCとCIDRブロックを入力する。
VPCは、今回作成したVPC名、CIDRブロックはVPCと同じで、「192.168.0.0/28」で良いと思う。


これをやらないと、サーバを作ってもインターネットから接続できない。

# 6.ようやくEC2

左上のオレンジ色の箱を選択するとTOPメニューに戻れるので、TOPメニューへ戻る。

EC2を選択。
「インスタンスの作成」ボタンを選択。
「ステップ 1: Amazon マシンイメージ（AMI）」が表示される。一番上にある
「Amazon Linux AMI」を選択。（これが通称：アミ。と呼ばれるやつ）

「ステップ 2: インスタンスタイプの選択」が表示され、一番安いやつ「t2.micro」を選択。
（他のは金がかかるし、後からでもスケールアップが可能）
「次の手順：インスタンスの詳細設定」ボタンを選択。

「ステップ 3: インスタンスの詳細の設定」が表示され、VPCとサブネットの項目を埋めて行く。
選択するだけなので、問題なし。
「自動割り当てパブリック IP」は「有効」に選択する。
有効にしていないと、パブリックIPが割り当てられないので、外部からアクセスできない。

他の項目は後からでも設定可能。
「次の手順：ストレージの設定」ボタンを選択。

「ステップ 4: ストレージの追加」が表示されるけど、ストレージが標準の８GBでよければ、
「次の手順：インスタンスのタグ付け」ボタンを選択。

「ステップ 5: インスタンスのタグ付け」が表示。「値」にサーバに名前を付けてあげてね。
「次の手順：セキュリティグループの設定」ボタンを選択。

「ステップ 6: セキュリティグループの設定」が表示。
初期はSSHしか許可されていないので、必要に応じて、HTTP、HTTPS、SMTPなどを追加。
Railsなんかは、3000番ポートを空けるておくと良いかも。

SMTPは、送信元の許可は「マイIP」にすること。まあ、本番はそれぞれで。
「確認と作成」ボタンを押す。

「ステップ 7: インスタンス作成の確認」が表示され、作成されるインスタンス（サーバ）の
内容が表示されるので、確認だけはしておく。

「作成」ボタンを押す。

「SSH鍵認証」用の鍵の確認ダイアログが表示され、
　　・新規に作成する
　　・既存のを使う
を選択する。

選択すると、インスタンスの作成と起動が行われる。（時間が少しかかる）

# 9.sshでログイン

鍵のファイルのアクセス権限を400にする。（MacやLinuxの場合、Windowsは読込専用）
ssh -i "鍵のファイル名" ec2-user@<インスタンスのパブリックIP>

sudoコマンドは使用可能。
sudo su - とすれば、rootユーザで操作も可能。

# 10.あとは普通のサーバセットアップ作業

あとは普通に、

・yum update
・yum install php.....

などでインストール。
Ruby on Railsの場合は、rbenvをgitから持って来てビルドしないといけないけどね。
通常であれば、yumのインストールでほとんど大丈夫。

# 11.おかねをたいせつに

VPSやレンタルサーバとの違いは、完全に従量課金制なので、使った分（動かしている分）だけ
お金がかかってしまう。

なので、使わない時はサーバを「停止」したり、
インスタンス（サーバ）の作成自体をプログラミング化（chefなど）してしまって、
使う度にインスタンスを作って消す、なんてことをすると良いかも。

まあ、chef自体が結構時間かかるので、あまりおすすめしないので、
自分は使わないときは「停止」派です。



AWS自体、レンタルサーバ屋さんじゃなくて、総合的なiDCソリューション屋さんなので、
他にも数え切れないくらいのサービスがあります。
自分にあったサービスを探すだけでも大変ですが、見つけられると新たな武器を手に入れられるかも。


詳しいことは、他のかたの投稿を参考にしてください。
明らかな間違いは修正しますので、コメントください。