MENU
  • サービス
  • AWS導入支援
  • AWS運用代行
  • WordPress
    • WordPress高速化
    • WordPress脆弱性対策
  • 導入事例
  • 良くあるご質問
  • AWS技術知見
  • お問い合わせ
AWSの導入・クラウド運用を総合支援【CapsuleCloud】
  • サービス
  • AWS導入支援
  • AWS運用代行
  • WordPress
    • WordPress高速化
    • WordPress脆弱性対策
  • 導入事例
  • 良くあるご質問
  • AWS技術知見
  • お問い合わせ
AWSの導入・クラウド運用を総合支援【CapsuleCloud】
  • サービス
  • AWS導入支援
  • AWS運用代行
  • WordPress
    • WordPress高速化
    • WordPress脆弱性対策
  • 導入事例
  • 良くあるご質問
  • AWS技術知見
  • お問い合わせ
  1. ホーム
  2. AWS技術知見
  3. AWS機能を網羅してみよう2.2 EC2編「接続&アプリ構築」

AWS機能を網羅してみよう2.2 EC2編「接続&アプリ構築」

2022 8/17
AWS技術知見
2022年8月17日
目次

はじめに

前回、EC2の各種設定を行い起動させるところまで実行しました。
今回は起動したサーバーに接続し、簡単なアプリケーションを動かしてみたいと思います。

EIPとは?EIPの取得と付与

本題に入る前に、前回盛込みきれなかった部分にEIP(Elastic IP Address)の話があります。
EIPはインターネット経由でアクセス可能な固定グローバルIPを取得し、インスタンスに付与することができます。
一旦設定しておけば、削除するまでIPアドレスを保持することが可能です。
Public IPアドレスの機能にも似ていますが、インスタンスを停止・起動をすると変わってしまう点で異なります。

接続

さぁ本題です。前回立ち上げたサーバーに接続してみましょう。
前提として、UNIX系のターミナル経由の場合です。あなたのPCが、MacやLinuxの場合ですね。
まずは、ターミナルを開いてください!

そしたら、早速sshで接続です。

$ssh -i first-keypair.pem ec2-user@あなたのEC2のIPアドレス

-iオプションは秘密鍵があるパスを指定してください。
今いるディレクトリが秘密鍵の存在するディレクトリであれば上記のままでOKです。

初めてのサーバーにアクセスするときは、以下を聞かれると思います。
yesを入力してエンターを押しましょう。

Are you sure you want to continue connecting (yes/no)?

すると、以下のようなWARNINGが出て接続に失敗すると思います。
要は、秘密鍵に対するパーミッションがいけてませんということですね。

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for 'first-keypair.pem' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "first-keypair.pem": bad permissions
Permission denied (publickey).
$ls -ll

でパーミッションを見てみると、

-rw-r--r--@ 1 koichi staff 1696 5 7 17:51 first-keypair.pem

ファイルで、本人は読み書き可、グループは読みのみ可、他人は読みのみ可の設定です。
もっと秘密にしなきゃなので、以下を実行してパーミッションを変更。

$chmod 600 first-keypair.pem

もう一度

$ls -ll
-rw-------@ 1 koichi staff 1696 5 7 17:51 first-keypair.pem

オッケー、秘密になりましたね!
では、気を取り直してもう一度実行

$ssh -i first-keypair.pem ec2-user@あなたのEC2のIPアドレス

__| __|_ )
_| ( / Amazon Linux AMI
___|\___|___|

こんなのが出たら、接続成功です!!ヤター!

アプリケーション準備

サーバーのアップデート

接続が完了すると、以下の文言も表示されていると思います。

Run "sudo yum update" to apply all updates.

言われるがままにRunしてみましょう。
-yを入れます

sudo yum -y update

最後に「完了しました!」が表示されたらOKです。

nginxのインストール

今回はWebサーバーとしてnginxを利用しましょう!
nginxはパッケージが用意されているので、簡単にインストールが可能です。

$sudo yum -y install nginx

これまた最後に「完了しました!」が表示されたらOKです。

Webサーバーを起動してみましょう。

$sudo service nginx start
Starting nginx: [ OK ]

ここまでできれば、該当のEIPを入力してみましょう。
http://XXXX.XXXX.XXXX.XXXX
「Welcome to nginx on the Amazon Linux AMI!」のページが表示されたでしょうか。
もし Welcome To The Jungle になってたら、あなたは80年代好きです。

MySQLのインストール

本日の折り返し地点になります。
次にデータベースサーバーとしてMySQLをインストールします。
こちらもnginx同様、パッケージがあるので簡単に準備できます。

$sudo yum -y install mysql-server

最後に「完了しました!」が表示されていますか?

mysqlを動かしておきましょう。

$sudo service mysq
ld start
Starting mysqld:

になればOKです!
一応試しに接続しておきましょうか。

$mysql -u root
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.5.54 MySQL Community Server (GPL)

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
+--------------------+
4 rows in set (0.00 sec)

バッチ、ぐー!
mysql> quit
で抜けておきましょう。

アプリケーション作成

さぁメインのアプリケーションですが、サクッと作りたいのでRailsでいきましょう。
ビルドのためのパッケージをインストールします。

$sudo yum -y groupinstall 'Development Tools'

RubyとMySQLのライブラリもインストール

$sudo yum -y install ruby-devel mysql-devel

RailsではJavaScriptランタイムとしてNode.jsが必要になります。
デフォルトではないため、EPELからインストールします。

$sudo yum -y --enablerepo=epel install nodejs

ここまででRailsをインストールする準備が整いました。
早速Railsをインストールしましょう。

$gem install rails io-console --no-rdoc --no-ri

完了したら、Railsのバージョンを確認してみましょう。

$rails -v
-bash: rails: コマンドが見つかりません

あれ?よく見ると、
$gem install rails io-console –no-rdoc –no-ri
でエラーが発生していたようです。
ERROR: Error installing rails:activesupport requires Ruby version >= 2.2.2.

rubyのバージョンが古い模様です。
gitは既にインストールされているので、rbenvをインストールしてrubyのバージョンを上げましょう。

$git clone git://github.com/sstephenson/rbenv.git ~/.rbenv
$mkdir -p ~/.rbenv/plugins
$git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
$cd ~/.rbenv/plugins/ruby-build
$sudo ./install.sh
$echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
$echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
$source ~/.bash_profile
$sudo yum install -y readline-devel
$rbenv install 2.3.4
$rbenv versions
$rbenv rehash
$rbenv global 2.3.4

思わぬ罠がありましたね…。

$ gem install rails
$rails -v
Rails 5.1.1

問題なく最新がインストールされました。

プロジェクトを作成して、起動してみましょう。

$rails new first-app --database=mysql --skip git --skip-javascript --skip-spring --skip-test-unit
$cd first-app
$rake db:create
$rake db:migrate

確認

準備は整いました。

$rails server -b 0.0.0.0

で、railsを立ち上げて、ブラウザからアクセスしてみましょう。
Rialsの初期画面が表示されれば成功です!

EC2を立ち上げてアプリケーションを動かすところまでできました。
あとは、アプリケーションを作り込めばいいだけです。

AWS技術知見
aws ec2 nginx rails アプリケーション

関連記事

  • aws-route53
    AWS機能を網羅してみよう3.3 Route53編「実践」DNSフェイルオーバー
  • AWSのクラウドセキュリティ「責任共有モデル」とは?
  • ansible
    AWSのためのAnsible入門
  • aws-s3
    Amazon S3でGlacierを活用したコスト削減法
  • aws-route53
    AWS機能を網羅してみよう3.2 Route53編「実践」
  • aws-s3
    Amazon S3で署名付きURLを使ったアクセス制御
  • aws-route53
    AWS機能を網羅してみよう3.1 Route53編「概要」
  • aws-waf
    AWS WAFでSQLインジェクションと特定URLをブロック
検索
clouddx003-low.pdf - 1.8MB
資料ダウンロードはこちら
人気記事
  • terraform
    Terraformと変数(variable)のお話
    Terraform
  • aws-s3
    Amazon S3で署名付きURLを使ったアクセス制御
    AWS技術知見
  • AWS導入支援
    amazonクラウド、AWSとは?何ができるかデメリット含めわかりやすく説明
    AWS導入支援
  • WordPress高速化!6つの簡単な方法で重さを改善
    WordPress
  • ansible
    AWSのためのAnsible入門
    AWS技術知見
  • WordPress脆弱性の原因とやっておくべき7つの対策
    WordPress
  • 【実例20選】AWS導入企業、活用事例をご紹介
    AWS導入支援
新着記事
  • AWS運用代行企業5選!企業選びのポイントを解説
    AWS運用代行
  • AWS運用代行のサービス内容やメリットについて
    AWS運用代行
  • 10分でスタート!AWSの利用開始までを解説
    AWS導入支援
  • WordPress脆弱性の原因とやっておくべき7つの対策
    WordPress
  • WordPress高速化!6つの簡単な方法で重さを改善
    WordPress
カテゴリー
  • AWS導入支援
  • AWS技術知見
    • Rancher
    • Terraform
  • AWS運用代行
  • WordPress
タグ一覧
AI (3) aws (25) aws-cli (3) CloudFormation (1) CloudSearch (3) DeepLearning (1) DNS (2) Docker (4) EBS最適化オプション (1) ec2 (7) ElasticBeanstalk (1) Geo Routing (1) Gitlab (1) HA (1) infrastructure-as-code (1) keypair (1) load-balancer (1) nginx (2) OpenAM (3) Rancher (8) Rekognition (2) Route53 (3) s3 (2) secrets (1) security-group (1) Terraform (6) terragrunt (2) tfvars (1) variable (1) vault (1) VPC (1) wordpress (3) アプリケーション (1) オンプレミス (2) クラウド (2) サインアップ (1) シングルサインオン (3) セキュリティ (1) セキュリティグループ (1) ネットワーク設計 (1) 人工知能 (2) 初心者 (1) 本番運用 (1) 画像認識 (3) 起動 (1)
アーカイブ
  • 2022年9月
  • 2022年7月
  • 2022年6月
  • 2022年5月
  • 2022年4月
  • 2017年7月
  • 2017年6月
AWSエンジニア積極採用!
採用情報
フリーランスの求人情報!
テックブレイン

スーパーソフトウエアはAWSパートナーネットワーク(APN)のコンサルティングパートナーです。

スーパーソフトウエアはRancherパートナーネットワークのコンサルティングパートナーです。

logo

カプセルクラウドはAWSクラウドのマネージドサービスです。AWSを安心かつ迅速に導入し、負荷分散・セキュリティ・DevOps・コスト削減など、クラウドサービスのメリットを活かした豊富なベストプラクティスをご提供いたします。

Contents

  • サービス
  • 導入支援
  • WordPress
  • 導入事例
  • ブログ
  • Q&A
  • お問い合せ
  • 資料ダウンロード

お問い合わせ

株式会社スーパーソフトウエア
東京 03-6721-7105
大阪 06-4707-6001
info-capsulecloud@tokyo.supersoftware.co.jp

  • プライバシーポリシー
  • 免責事項
  • 契約約款
  • 特商法に基づく表記
  • 会社情報
  • サイトマップ

© Supersoftware 2017. All rights reserved.

目次