昨今、何かしらのWebサービスやサイトを立ち上げる際、専用サーバなどを借りる手もありますが
そうするとどうしてもサーバ等のインフラ運用コストが増加してしまいます。
インフラ周りをAWS(アマゾンウェブサービス)に任せて、開発者は純粋に開発に集中する環境を提供するためにも
今後、EC2をはじめとしたAWSの活用は増えていくと考えています。
ということで、まずはEC2のインスタンスの作成・セットアップ方法をご紹介していきます。
目次
前準備:AWSにログイン
まずは、何をするにもAWSコンソールにログインします。アカウントをお持ちで無い方は作成してください。
EC2インスタンスを作成・セットアップ
サーバのロケール設定
まずはインスタンスを立ち上げるロケール(場所)を設定します。
国内のデータセンターに立ち上げたほうが当然レスポンスがいいので、画面右上の”ユーザ名”と”Support”の間のメニューをクリック。
そうすると、選択肢が出てきますので【Asia Pacific(Tokyo)】を選択してください。
EC2 インスタンスの作成します
今回はEC2を利用するので、【EC2】を選択。
ステップ1 インスタンスの起動・OSの選択
【Launch Instance】ボタンを押す。
そうすると、どんなマシンを立ち上げるかを選択する画面に移動します。
AWSはいろんなミドルウェアが用意されており
- Amazon Linux(AWSに最適化されたLinux)
- RedHat
- SUSE Linux
- Ubuntu
- Windows Server
など様々な環境をクラウド上に立ち上げることが可能です。
今回は基本的なLinuxを立ち上げるため、一番上の【Amazon Linux AIM …】を利用します。
ステップ2 インスタンスのタイプを選択
サーバに求められるスペックに応じて最適な環境を立ちあげられるようになっています。
インスタンスタイプの詳細はこちらの公式ドキュメントに記載されています。
今回はテストの立ち上げなので、「t2.micro」を選択し、「Next Configure Details」をクリックします。
※ 青色の「Review and Launch」をクリックすると、初期設定ですぐインスタンスが立ち上がります。
また、「Free tier eligible」と記載のあるものはAWSクラウド無料枠となっています。
テストとして気軽に立ち上げるのに便利ですね。
ステップ3 インスタンスの詳細設定
特に指定しなくても問題ありません。
インスタンスを継続的に利用する場合は画面中央下くらいにある「Enable termination protection」にチェックを付けておくと、誤ってインスタンスを削除してしまうことを回避することが出来ます。
ステップ4 ストレージの選択
サーバストレージの容量とタイプを選択します。
2015年3月現在、デフォルトがSSDになり、より高速化が図られています。
一般的なWebサーバとしての利用であれば、標準の「8GB」でしばらくは問題ないでしょうが、EC2内にログやDBも保存するようであればサイズを上げておく必要があるでしょう。
ステップ5 タグ設定
EC2は「Key」と「Value」という関連でさまざまな情報を管理しています。
デフォルトで「Name」というキーが登録されています。
これは「インスタンス名」ですので、管理しやすいよう名前を「Value」に入力しておきましょう。
入力後、「Next Configure Security Group」をクリックします。
ステップ6 セキュリティグループの設定
AWSはクラウドのサービスであり、ネットワーク上の全てのデータが設置されます。
ですので、セキュリティはしっかりと設定しておきましょう。
すでにEC2のインスタンスを立ち上げており、セキュリティグループの設定をお持ちであれば、画像矢印部分の「Select an existing security group」を選択し、既存のセキュリティグループを使用することも可能です。
今回は初めての利用になりますので、セキュリティグループを作成していきます。
既存設定では
Type | Port |
SSH | 22 |
となっており、SSHポートのみ公開されています。
今回はHTTPポートである80番と、Jenkinsの設置を行いたいため8080番ポートを公開設定に加えています。
自身の環境に合わせた設定を行った後「Review and Launch」をクリックします。
何やらブートをSSDで行うかどうかを尋ねられました。
おすすめのSSDを選択し「Next」をクリックします。
ステップ7 確認と起動
お疲れ様でした。これで基本的な設定は完了です。
自身の設定した項目を確認し、問題がなければ「Launch」をクリックします。
※ 何やら警告文が出ていますが、セキュリティ本当に大丈夫?って確認です。(矢印部)
接続鍵の登録・設定
先述のとおり、AWSはクラウド環境です。
誰でもアクセスされてしまうのは問題なので、SSH接続なども鍵方式でやり取りを行います。
インスタンスに対し、鍵を作成する画面が出てきます。
すでにインスタンスを立ち上げたことがあり、鍵を持っているのであれば「Choose an existing key pair」を選択し、その下のセレクタで鍵を指定してあげることでインスタンスへの鍵登録が完了します。
初回の場合は「Choose an existing key pair」部分を選択し、「Create a new key pair」に変更します。
そうすると、Key pair nameという入力ボックスが出てきますので、わかりやすい秘密鍵の名前を付けます。
名前をつけたら「Download Key Pair」ボタンをクリックすると、秘密鍵がダウンロードされます。
最後に「Launch Instances」をクリックすると、本当にインスタンスが立ち上がります。
インスタンスの確認
作成したインスタンスの情報・ステータスが表示されています。
「View Instances」をクリックすることで、所持しているインスタンスの一覧画面へ移動し、実際にインスタンスが作成できていることを確認することが出来ます。
また、画像の赤枠線内「Public DNS」の文字列がインスタンスURLとなり、このURLを用いてSSHやHTTPアクセスを行うことが出来るようになります。
鍵の登録・SSHでの接続
インスタンスを立ち上げたら、SSHで接続してみましょう。
AWSへの接続には上述の通り、鍵の設定が必要です。
SSH接続の際、下記のように-iオプションを用いて鍵を物理指定して接続することが可能です。
$ ssh -i MyAWSKey.pem ec2-user@[public DNS]
また、SSH接続の際にPermission(権限)設定で警告され接続できないことがあります。
その際は
$ chmod 600 MyAWSKey.pem
と権限設定を更新すると接続できるようになります。
SSH接続を簡単に
しかし、複数のインスタンスを持っていたり、毎回オプションを付けて接続するのは面倒なので、設定ファイルに記述を行います。
$ vi ~/.ssh/config
と記述し、ユーザのSSH設定ファイルを開きます。
Host aws user ec2-user HostName [public DNS] Port 22 IdentityFile MyAWSKey.pem
と追加記述してやることで、対象のDNSに接続する際は自動で鍵を利用してくれるようになります。
$ ssh aws
で接続ができたら設定成功です。
まとめ
ここ数年で急激に発展してきたAWS。
もう使わない理由は無いといってもいいほど、インフラ面・機能面で充実してきています。
まだまだ進化を続けるAWSや周辺環境をうまくキャッチアップして、技術者としてもマーケッターとしても成長していければと思います。