忘備録

日々の調べ物をまとめる。アウトプットする。基本自分用。

AWSを体験してみた

Amazon Web Services 基礎からのネットワーク&サーバー構築』を
参考に仮想サーバマシンを構築してみました。

やること

  1. VPCにネットワーク構築
  2. EC2で仮想サーバマシンを構築
  3. sshで接続する

1.VPCにネットワーク構築

  1. VPCの作成
  2. ネットワーク(サブネット)の設定
  3. インターネットゲートウェイの設定

EC2で仮想サーバマシンを構築

AMIはRedhat7を選択
ストレージの無料枠30GBまでらしい(2015/12/8 現在)
※ストレージの追加について
http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2-add-volume-to-instance.html

3. sshで接続する

参考:インスタンスへの接続 - Amazon Elastic Compute Cloud

# iオプションで公開鍵を選択,ec2-userはEC2が作成するデフォルトユーザ
ssh -i key.pem ec2-user@xxx.xxx.xxx.xxx

下記エラーが出る場合は、公開鍵のアクセス権限を変更しないとダメみたいです(公式のガイドにちゃんと書いてありました。。)

Makoto-MacBook-Air:~ makoto$ ssh -i /Users/makoto/Documents/sshpairkey/aws_keypair_001.pem ec2-user@52.69.20.38
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0640 for '/Users/makoto/Documents/sshpairkey/aws_keypair_001.pem' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: /Users/makoto/Documents/sshpairkey/aws_keypair_001.pem
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
# 公開鍵を所有者だけが読込みできるようにアクセス権限を変更
chmod 400 pairkey.pem

※パスワード方式によるログイン

公開鍵によるログインの方がセキュアだけど、
止むを得ずパスワードによるログインが必要なこともあるかと。
その時のためのメモ。

# sshd_configの編集(要root権限)
vi /etc/ssh/sshd_config
#========================================================
# 「PasswordAuthentication」を「yes」に変更すると、
# パスワードによるログインが可能になる
#========================================================
# sshdの再起動
systemctl restart sshd

参考:AWS EC2で鍵認証からパスワード認証に変更するには - mikurassのブログ

やってみた感想

仮想マシンを構築するだけなら超簡単ですね。
10分くらいでできちゃいます。
自前のマシンに同じようような環境を作った時は丸1日くらいかかった気がする。。。(ずぶの素人だったこともあるが)
当面はNginx入れて、php勉強したいですね。
無料枠でどこまでできるかわかりませんが、スケーラビリティの自動化とか実践てきなことも試してみたい。。。

基本的な用語

VPC (Virtual Private Cloud)

Amazon VPC とは? - Amazon Virtual Private Cloud

Amazon Virtual Private Cloud(Amazon VPC)を使用すると、定義した仮想ネットワーク内にアマゾン ウェブ サービス(AWS)リソースを起動できます。仮想ネットワークは、ご自身のデータセンターで操作していた従来のネットワークとよく似ていますが、AWS のスケーラブルなインフラストラクチャを使用できるというメリットがあります。

EC2 (Elastic Compute Cloud)

Amazon EC2 とは - Amazon Elastic Compute Cloud

Amazon Elastic Compute Cloud(Amazon EC2)は、アマゾン ウェブ サービス(AWSクラウドでサイズが変更できるコンピューティングキャパシティを提供します。Amazon EC2 の使用により、ハードウェアに事前投資する必要がなくなり、アプリケーションをより速く開発およびデプロイできます。Amazon EC2 を使用すると、必要な数(またはそれ以下)の仮想サーバーを起動でき、セキュリティおよびネットワーキングを構成でき、ストレージを管理できます。Amazon EC2 により、要件変更や需要増に対応して拡張または縮小できるため、トラフィック予測が不要になります。

AMI (Amazon Machine Image)

Amazon マシンイメージ(AMI) - Amazon Elastic Compute Cloud

Amazon マシンイメージ(AMI)は、クラウドの仮想サーバーであるインスタンスの起動に必要な情報を提供します。インスタンスを起動するときに AMI を指定します。AMI からは、必要な数のインスタンスを起動できます。必要に応じて、異なる種類の AMI からインスタンスを起動することもできます。

EBS

Amazon Elastic Block Store (EBS ) EC2用ブロックストレージ | アマゾン ウェブ サービス(AWS 日本語)

Amazon Elastic Block Store(Amazon EBS)は、AWS クラウドAmazon EC2 インスタンスで使用するための永続的なブロックレベルのストレージボリュームを提供します。コンポーネントに障害が発生した場合でも高い可用性と耐久性を提供できるように、各 Amazon EBS ボリュームはアベイラビリティーゾーン内で自動的にレプリケートされます。Amazon EBS ボリュームは、作業負荷の実行に必要な安定した低レイテンシーのパフォーマンスを提供します。Amazon EBS を使用すると、使用量の拡張または縮小を分単位で行うことができます。プロビジョニングしているサイズに合わせて、低料金でご利用いただけます。