LoginSignup
0
0

More than 3 years have passed since last update.

AWS/EC2 + nginxを使って、Swagger-ui,Swagger-editorの環境構築をする1/2

Last updated at Posted at 2020-11-30

目的

AWSのEC2上にnginxを経由してSwagger-ui,Swagger-editorを配置、使用できるようにします。
かなり苦労しながら2日くらいかけて、調査、環境構築を終わらせたので、
同じように悩んでいる人の助けになれれば幸いです。

長くなりそうなので、二部構成にします。(今回は前編/AWS編です)

AWSのEC2インスタンス作成はできているという方は、後編のnginx,swagger編から読んでください。

 対象読者

  • Macユーザー
  • AWSを使ったことがない方
  • nginxを使ったことがない方
  • swaggerを初めて使ってみたい方

目次

環境構築手順 ~AWS編~

1.VPC作成

1.a AWSマネジメントコンソールにログイン

AWSマネジメントコンソール

※ログイン時には、必ず多要素認証を設定するようにしてください。

スクリーンショット 2020-11-28 1.55.33.png

セキュリティが、ガバガバだと多額の請求が来たりするらしいので、少しでもセキュリティレベルは高めておくのが吉です。
こわ〜い話の一部をどうぞ。。
初心者がAWSでミスって不正利用されて$6,000請求、泣きそうになったお話

AWSが不正利用され300万円の請求が届いてから免除までの一部始終

AWS請求額5千ドル : アカウントのセキュリティ設定は「絶対に」端折るな

二段階認証を含む、アカウントのセキュリティレベルを上げる方法は、以下の記事が参考になります。
AWSアカウントを取得したら速攻でやっておくべき初期設定まとめ

1.b VPC一覧画面に遷移

左上の「サービス▲」をクリックし、検索欄に「VPC」と入力する。
そして、一番上に出てきた「VPC」をクリック
スクリーンショット 2020-11-30 23.04.55.png

下記画像が表示された後、もう一度「VPC」をクリック

スクリーンショット 2020-11-28 15.43.39.png

下記のような画像が表示されれば、問題なくVPC一覧画面に遷移できています。
スクリーンショット 2020-11-28 15.47.26.png

1.c VPCを作成する

上記画像、右上に位置するオレンジ色の「VPCを作成」ボタンをクリック
下記のVPC作成画面が表示される事を確認する
スクリーンショット 2020-11-28 15.54.08.png

  • 名前タグ(オプション)

    任意の名前を追加する(今回は「vpc-swagger」とします。)

  • IPv4 CIDRブロック
     今回は、あくまでもswaggerを動かす事だけが目的なので、
     あまり深く考えず、10.0.0.0/16を入力してください。
     本当は、色々と考えて設定しないといけないらしいです。。
     (よかったらコメント欄でCIDRブロックについて教えてください)

  • IPv6 CIDRブロック
     「IPv6 CIDRブロックなし」を選択してください。

  • テナンシー
     デフォルトを選択してください。

上記の設定が終わりましたら、右下にある「VPCを作成」をクリックしてください。

スクリーンショット 2020-11-28 23.23.42.png
上記画像のように表示が出れば、作成完了です。

2.作成したVPCにサブネットを作成

2.a サブネット一覧画面に遷移する

左側のサイドメニューの「サブネット」をクリックしてください。
以下の画像のような、サブネット一覧画面が表示されることを確認してください。
スクリーンショット 2020-11-28 23.28.12.png
サブネット作成が初めてであれば、サブネット一覧画面には何も表示されません。

2.b サブネット作成画面に遷移する

サブネット一覧画面右上に位置する「サブネットを作成」をクリック
以下の画像のような、サブネット登録画面が表示されることを確認してください。
スクリーンショット 2020-11-28 23.37.05.png

2.c サブネットを作成する

まずは、上部のVPC欄設定から進めて行きます。

VPC ID欄は、プルダウン形式でどのVPCにサブネットを作成するか選択します。
今回は、先ほど作成した「vpc-swagger」のVPCにサブネットを作成するので、
「vpc-swagger」を選択してください。

続いて、下部のサブネットの設定です。
サブネット名に関しては、vpcの名前タグ同様に好きな名前を入力してください。
今回は、「public-subnet-swagger」と入力します。

アベイラビリティーゾーンも好きなゾーンを選択して構いません。
今回は、「アジアパシフィック(東京)/ap-northeast-1a」を選択します。

IPv4 CIDR ブロックは、「10.0.1.0/28」と入力してください。

タグに関しては、サブネット名入力の際に自動で生成されているので、そのままで大丈夫です。

スクリーンショット 2020-11-28 23.47.57.png

上の画像のように、入力が完了した後、「サブネットの作成」ボタンをクリックしてください。
「1件のサブネットが正常に作成されました」と表示されれば、完了です。
一応、サブネット一覧画面に戻り、本当に作成したサブネットがあるかどうか確認してください。

スクリーンショット 2020-11-28 23.51.33.png

3. インターネットゲートウェイを作成して、VPCにアタッチする

3.a インターネットゲートウェイ一覧画面に遷移する

左側のサイドメニューから、「インターネットゲートウェイ」をクリックしてください。
下記のような、インターネットゲートウェイ一覧画面が表示されることを確認してください。
AWSを使用するのが初めての方の場合、一覧画面に表示されている
インターネットゲートウェイの数は1つです。
 スクリーンショット 2020-11-29 12.50.33.png

3.b インターネットゲートウェイ作成画面に遷移する

左上の「インターネットゲートウェイの作成」ボタンをクリック
下記のような、作成画面が表示されていることを確認してください。
スクリーンショット 2020-11-29 22.59.12.png

3.c インターネットゲートウェイを作成する

スクリーンショット 2020-11-29 23.39.23.png

名前タグに任意の値を入力してください。
今回は「igw-swagger」とします。

タグに関しては、名前タグを入力すると自動で設定されます。

名前タグの入力後、右下の「インターネットゲートウェイの作成」をクリックしてください。
次のインターネットゲートウェイが作成されましたと表示されれば、OKです。
スクリーンショット 2020-11-29 23.51.37.png

3.d インターネットゲートウェイをVPCに紐付ける

インターネットゲートウェイは、VPCに紐付けて初めて効果を発揮するものです。
作成したインターネットゲートウェイ(igw-swagger)を作成したVPC(vpc-swagger)に紐付けましょう。

インターネットゲートウェイ一覧画面で、先ほど作成したigw-swaggerを選択し、
「アクション」をクリック、その後「VPCにアタッチ」をクリックします。
スクリーンショット 2020-11-30 0.04.12.png

そして、使用可能なVPC欄に、「vpc-swagger」を選択してください。
AWSコマンドラインインターフェイスコマンドは触らなくても大丈夫です。

正しいVPCが選択できたら、左下の「インターネットゲートウェイのアタッチ」をクリックしてください。
「インターネットゲートウェイが正常にアタッチされました」と表示されればOKです。
スクリーンショット 2020-11-30 0.09.59.png

4.ルートテーブルを作成する

4.a ルートテーブル一覧画面に遷移する

左側のサイドメニューの、「ルートテーブル」をクリックしてください。
下記画像のような、ルートテーブル一覧画面が作成されることを確認してください。
スクリーンショット 2020-11-30 0.16.24.png
そして、「ルートテーブルの作成」をクリックしてください。

4.b ルートテーブルを作成する

ルートテーブル作成画面は下記画像のようになっています。
スクリーンショット 2020-11-30 0.30.12.png

「名前タグ」には、これまで同様、任意の名前を入力してください。
「VPC」入力欄には、vpc-swaggerを選択し、入力してください。

上記入力が完了した後、右下の「作成」ボタンをクリックしてください。
「次のルートテーブルが作成されました。」と表示されればOKです。
スクリーンショット 2020-11-30 0.37.53.png

4.c ルートテーブルにインターネットゲートウェイのルートを登録する

ルートテーブル一覧画面に戻り、先ほど作成したルートテーブルを選択する
一覧画面下部に、下記画像のようなルートテーブル詳細画面が表示されるので、
そこから、ルートを選択する
スクリーンショット 2020-11-30 12.53.52.png
そして、「ルートの編集」をクリックし、インターネットゲートウェイ(igw-swagger)を追加する
スクリーンショット 2020-11-30 12.56.51.png

最後に、「ルートの保存」をクリックすれば完了です。

5.セキュリティグループを作成する

5.a セキュリティグループ一覧画面に遷移する

左上に位置する「サービス▲」を選択し、検索欄に「EC2」と入力してください。
その後、検索結果の一番上に出てくる「EC2」をクリックしてください。
スクリーンショット 2020-11-30 0.46.29.png

左側のサイドメニューから、「セキュリティグループ」をクリックしてください。
下記画像のような、セキュリティグループ一覧画面が表示されればOKです。
AWSを使用するのが初めての方の画面には、デフォルトで1つセキュリティグループが用意されているはずです。
スクリーンショット 2020-11-30 0.53.35.png

5.b セキュリティグループ作成画面に遷移する

セキュリティグループ一覧画面、右上に位置する「セキュリティグループを作成」をクリックしてください。
下記画像のような、作成画面が表示されればOKです。
スクリーンショット 2020-11-30 23.03.19.png

5.c セキュリティグループを作成する

スクリーンショット 2020-11-30 9.51.35.png

基本的な詳細

セキュリティグループ名には、任意のグループ名を入力してください。
(今回は、「securityGroupSwagger」とします。)

説明欄は、書いても書かなくても大丈夫です。
※書いた方が、セキュリティグループが増えてきたときに、管理しやすくなります。

VPCには、先ほど作成した「vpc-swagger」を選択、入力します。

インバウンドルール

作成画面遷移時は、何もインバウンドルールが書かれていないと思うので、
2つ追加してください。

1)タイプ:HTTP,プロトコル:TCP(自動入力),ポート範囲:80(自動入力),ソース:任意の場所(0.0.0.0/0・::/0)
2)タイプ:SSH,プロトコル:TCP(自動入力),ポート範囲:22(自動入力),ソース:マイIP
アウトバンドルール

特に初期状態から、操作を行う必要はないです。

以上の入力が終わりましたら、作成画面右下にある「セキュリティグループを作成」をクリックしてください。
そして、下記画像のように表示が出ればOKです。

スクリーンショット 2020-11-30 10.02.00.png

6.EC2インスタンスを作成する

6.a EC2インスタンス一覧画面に遷移する

左側のサイドメニューの、「インスタンス」をクリックしてください。
下記画像のような、一覧画面に遷移します。
AWS使用するのが初めての方は、一覧画面にEC2インスタンスは1つもないはずです。
スクリーンショット 2020-11-30 10.14.27.png

6.b EC2インスタンスを作成する

一覧画面右上の、「インスタンスを作成」をクリックしてください。
ここから1ステップごとの設定項目を見て行きましょう。

ステップ1 Amazon マシンイメージ (AMI)

Amazon Linux 2 AMI (HVM), SSD Volume Type 64bit(x86)
スクリーンショット 2020-11-30 10.50.11.png

ステップ2 インスタンスタイプの選択

「t2.micro」(初期値)
スクリーンショット 2020-11-30 10.51.55.png

ステップ3 インスタンスの詳細の設定

ネットワーク:vpc-swagger
サブネット:public-subnet-swagger
自動割り当てパブリックIP:有効
それ以外の項目は初期値のままで大丈夫です。
スクリーンショット 2020-11-30 10.59.07.png

ステップ4 ストレージの追加

全て初期値のままで大丈夫です。
スクリーンショット 2020-11-30 11.01.36.png

ステップ5 タグの追加

ここも特に設定する必要はありません。
スクリーンショット 2020-11-30 11.02.48.png

ステップ6 セキュリティグループの設定

セキュリティグループの割り当て:既存のセキュリティグループを選択する
セキュリティグループ選択:securityGroupSwagger
スクリーンショット 2020-11-30 11.03.37.png

ステップ7 インスタンス作成の確認

ステップ1〜6までの内容が適切に入力されていることをこの画面で確認してください。
確認後、右下にある起動ボタンをクリックします。
スクリーンショット 2020-11-30 11.08.35.png

6.c キーペアを作成する

キーペアは、EC2インスタンスにログインするために必要となるものです。
既存のキーペアを使い回すこともできますが、今回は新しいキーペアを作成します。
新しいキーペアの作成
キーペア名:keypair_swagger(任意)
必ずキーペアのダウンロードを忘れずにしてください!!!
ダウンロードしたキーペアは安全な場所に保管しておきましょう。
スクリーンショット 2020-11-30 11.11.54.png

6.d 作成したEC2の状態を確認する

EC2インスタンス一覧画面に戻り、作成したEC2のステータスチェック欄を確認します。
「 2/2 のチェックに合格しました」と表示されていれば、EC2インスタンスの作成完了です。
スクリーンショット 2020-11-30 11.20.01.png
チェックに合格するまでには、数分時間がかかります。(気長に待ちましょう)

7.作成したEC2にSSH接続する

7.a ターミナルを開く

Macに最初から入っているターミナルを開いてください。

7.b pemファイルを保存してあるディレクトリに移動する

cd ~

~」を任意のディレクトリ名に変えてあげると、好きな場所に移動できます。

7.c EC2インスタンスにログインする

ssh -i keypair_swagger.pem ec2-user@※※※※※※※※

と入力してください。
ec2-user@の後ろには、自身のパブリックIPv4アドレスを入力しましょう。
下記画像のように、インスタンス一覧画面に表示されているはずです。
スクリーンショット 2020-11-30 12.25.49.png

上記コマンド入力後、下記画像のように表示されれば接続成功です。
お疲れ様でした。

スクリーンショット 2020-11-30 13.05.07.png

EC2にログインできない場合の対処法

下記URLが参考になります。1つずつ確認してみてください。
https://dev.classmethod.jp/articles/creation_vpc_ec2_for_beginner_1/

スクリーンショット 2020-11-30 13.00.23.png
上の画像のような表示が出る場合は、
pemファイル(キーペア)に付与されている権限が緩すぎるという警告です。
pemファイルの権限を少し強めましょう。
pemファイルを置いてあるディレクトリ上で、

chmod 600 keypair_swagger.pem

と入力すると権限変更ができます。

nginx/swagger編に続く

次回は、作成したEC2上にnginxをインストールし、
nginxを使ってswagger-editor,swagger-uiを動くようにします。

ここまでで、質問・不明点などございましたら、コメント欄によろしくお願い致します。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0