content【AWS】AWSの勉強AWS勉強メモ勉強した事をつらつらと書いています。東京リージョンでは、100Kmほど離れた場所にデータセンターがある。CloudAWS上に仮想ネットワークを作成できるサービスVPCはリージョンを跨いで構築することはできないサブネットVPCを細かく区切ったネットワークネットワークを区切りたい時に利用する。複数のアベイラビリティーゾーンを利用し、冗長性を確保することがベストプラクティスとして紹介されている。10.0.20.0/24ルーティングの説明インターネットでは、ルーターがIPアドレスの行き先を管理しているため、ネットワークとネットワークがIPアドレスを通じて接続することができる。ルートテーブルとは、「宛先のIPアドレス」と「次のルーター(AWSでは「ターゲット」という)」という形式で設定する。aws-and-infra-igwでインターネットゲートウェイを作成する作成後、まだVPCにアタッチされていない状態なので、作成したインターネットゲートウェイを選択し、アクションから、VPCにアタッチを選択する。先ほど作成したVPCを設定する。ルートテーブルの設定VPC設計のポイント作成後は変更できないので、大きめに設定しておいた方が良い(大きさは/16を推奨)オンプレミスや他のVPCのレンジと重複しないように気をつける(相互接続する可能性がある場合は、重複厳禁)VPCを分割するか?アカウントを分けるか?異なるシステムの場合は、アカウントを分ける同一システムの各環境は、VPCとアカウントのどちらを分けるか?環境が違う場合は同一の物を使用するのはダメアカウントをわけると、他の環境のリソースが見えず、作業しやすい。環境ごとにIAMの設定が必要VPCをわけると、IAMの設定が一度で良い。各環境のリソースが見えてしまい事故に繋がる。高可用性のために、2つ以上のアベイラビリティーゾーンを利用するEC2を構築するパブリックサブネットにサーバーを設置し、Apacheをインストールする。Imageの略OSのイメージ。IPアドレスEC2インスタンスのパブリックIPは、起動・停止すると別のIPアドレスが割り当てられる。IPの関連付けの解除及び解放EC2インスタンスを停止させるドメインを登録(Route53)注意点(実際にドメインを購入するため、お金がかかる)ドメインとはIPアドレスは数字の列なので、人にとっては覚えづらい。Systemネームサーバードメインメ名とそれと紐付くIPアドレスが登録されているサーバードメインの階層ごとにネームサーバーが配置され、そのネームサーバーが配置された階層のドメインに関する情報を管理するフルリゾルバ色々なネームサーバーに聞いてIPアドレスを調べて教えてくれるサーバーリソースレコードDNSは様々な情報を管理している。53AWSのDNSサービス。100%高速フルマネージドサービス。+short【RDS】DBサーバーを構築しようEC2を借りてDBを構築することも可能だが、今回は、RDSを利用する複数のアベイラビリティーゾーンに作れるように、プライベートサブネットを2つ作る必要がある。DBオプショングループの作成RDSのセキュリティーグループもEC2の設定を使う今回は、「MySQL」を利用する。今回は、aws-and-infra-subnet-groupのセキュリティーグループを作成する。パブリックサブネット上のEC2のIPアドレスで指定することも可能だが、AWSのセキュリティーグループも指定可能なので、今回は、AWSセキュリティーグループを指定する。RDSのサービスページに移動し、「サブネットグループ」を作成するページに移動するRDSを構築する前にマルチAZを構成するために、サブネットグループを作成する必要があります。今回は、1aと1cのプライベートサブネットを指定します。DBパラメータグループDBの設定を行うパラメータ数がとても多いため、今回は、ポイントになるパラメータのみ確認を行うオプショングループプラグインを使いたい等の設定が可能オプショングループを作成すると、デフォルトの物も作成されるが、今回は、自身で作成したグループを利用していく。今回は、MySQLの8.0.15を選択する。テンプレートという項目は、無料を選択する。RDSの停止は注意が必要RDSの起動時にリソースが余っていないと停止できない事が有る。-pコマンドを打ち、パスワードを入力する。'ryouta3110';%で接続元はどこでもOKとしている。下記のコマンドでユーザーが正しく追加されているかを確認する。mysql.user;hostの部分は%となり、どこからでも接続できるようになっている。MysqlやEC2はコマンドの誤操作が発生すると困るため、接続はすぐに解除するようにする。WordPressのインストールライブラリのインストールWordPressのダウンロードWordPressの解凍WordPressのプログラムをApacheから見える場所に配置WordPressファイルの所有者・グループを変更Apacheの再起動WordPressを動作させる為に、phpの最新版を取得する。yumでinstallすると、最新バージョンを手に入れられないので、下記のコマンドでインストールする。下記のコマンドでインストールされているphpにあった依存関係等を構築してくれる。~でルートディレクトリに移動する。https://ja.wordpress.org/latest-ja.tar.gzダウンロードしたファイルは圧縮されているので、解凍する必要が有る。wordpress/でWordPressのディレクトリに移動する。その後、下記のコマンドでファイルを移動する。/var/www/html/「/var/www/html/」はApacheが参照しているディレクトリ!外部からアクセスされたら、ここのフォルダのデータが表示される。下記のコマンドで、ファイルのアクセス権を変更する。-Rすべてのファイルの権限をApacheにした。下記のコマンドでApacheの実行状況を確認する。httpd.service現在、「実行中」なので、一旦再起動を行う。起動していない場合は、下記のコマンドで起動する。httpd.service実行中だった場合は、下記のコマンドで再起動する。ファイルを作成していく。Webページで作成する。◼️クライアントがHTTPレスポンスを送り、サーバーがHTTPレスポンスを返す。通信相手との間で通信を始める準備をしてから通信を行う。画像の保存場所は分離されていたほうがWebサーバーの台数を簡単に増やす事ができる。オブジェクトの保存場所。静的ウェブホスティングS3バケットの作成パブリックアクセスをブロックしないを選択する。⇒オブジェクトは公開可能となっているかを確認IAMの追加を行う最後の確認画面のcsvは重要なので必ず保存する。Storage」を選択する。上記のプラグインを動作させるためのライブラリをEC2にインストールする。php-xmlでライブラリをインストールする。httpd.serviceでサービスを再起動し、ライブラリを読み込むようにする。Media」という物を選択し、S3へのアクセス設定例をコピーして、「wp-config.php」ファイルに追記する。アクセスキーやシークレットキーは前述の手順でダウンロードしたcsvファイルの内容を利用する。Media」のページが変更されている。Server」を有効にする。効率的:オリジンサーバーに付加をかけずに配信できるCloudFrontが有ることで、高速化され、S3の負荷が軽減される。CloudFrontから配信する以下の順序で作業を行います。Path」はバケット内のフォルダ等を指定する項目だが、今回は、指定しない。Access」にチェックを入れる。Locations」にする。独自ドメインから配信する以下の順序で作業を行います。Mediaで独自ドメインを登録するSSL証明書を取得する作成したCloudFrontのIDを選択し、Editボタンをクリックする。ACM」をクリックして証明書を発行する。ドメイン名の部分に「*.starbucksblog.tokyo」と指定し、全てのサブドメインに証明書を発行する。「starbucksblog.tokyo」も下に追加します。(追加しないと、ドメイン本体に証明書が発行されない。)続行をクリックすると、検証ページに移行し、DNSの設定を行う必要がある。2つのドメイン共に一緒の値になっているはずなので、片方の設定を行う。53での設定ボタンを押す続行を押すAWSが検証を完了させるまで、待機します。作成したCloudFrontのIDを選択し、Editボタンをクリックする。Names」に配信したいドメイン名を記載する。今回は、「static.starbucks.tokyo」を指定する。Certificate」を選択し、発行したSSL証明書を選択する。その他はそのままで作成をクリックする。Frontのドメイン名を登録するレコードの作成を選択し、作成する。(CNAME)」という項目が存在するので、ONに変更し、「static.starbucksblog.tokyo」を入力し、設定を保存する。Webレイヤを冗長化しようWebサーバーを2台にしてELBを用いて冗長化する。■稼働率とは障害発生間隔と平均復旧時間で構成されている。平均復旧時間を短くするそのための手法として、「冗長化」する必要がある。スケーラブル:ELB自体にも負荷に応じて自動でスケールアウト・スケールインする。名前解決:ELBにはDNS名が割り当てられる。「aws-and-infra-public-route」を選択する。AMIの作成EC2のページの「アクション」から、「イメージの作成」を選択する名前を指定して、イメージの保存を行う。AMIの作成が完成したら、「起動」ボタンを押すインスタンスタイプは「t2.micro」を選択する。その後、「次の手順」ボタンを押し、更に設定を行う。「次のステップ」へストレージの設定はそのままで大丈夫セキュリティグループの設定へ「既存のセキュリティグループの利用」をチェックし、「aws-and-infra-web」を選択する。「起動」ボタンを押下すると、セキュリティキーの設定が必要なため、「既存のキーペアの選択」を選択し、以前発行したsshキーを指定する。ELBで負荷を分散しようEC2のロードバランサーから作成する。Balancer」を選択する。■アベイラビリティーゾーンVPC:aws-and-infra-vpcアベイラビリティーゾーン:1aと1cのそれぞれのPublicサブネットを指定するセキュリティーグループの設定は以下の設定にする次のルーティングの設定を下記の設定にする。ターゲットの登録に、起動中の2台を指定する。独自ドメインにアクセスが来た場合にELBへアクセスするように変更するRoute53の設定を変更する。Route53のコンソールにアクセスし、ホットゾーンの設定に行く今はAレコードにEC2のパブリックIPが選択されている。Aレコードの内容を編集していくエイリアスを「はい」に変更する指定する欄でalbを指定する。可用性の部分をここで扱うDBサーバーをマスタースレーブ方式にする事で、DBの冗長化を行うマスタースレーブの入れ替わりが発生した場合も、同じエンドポイントで接続できる為、操作を行う必要は無い。RDSの設定を変更するだけで、変更が可能になる2台分のRDSの料金が発生する。監視して、通知しなければならない。EC2のCPU使用率が60%を超えた場合、CloudWatchでアラームを出し、SNSで通知する構成を作る。以下の流れで設定します。グループIAMユーザーの集合体。ロール一時的にアクセス許可したアカウントを発行できる。upLoginユーザーは見つかりませんでした。