ソース設定を0.0.0.0/0からセキュリティグループID(sg-xxxxxx)に変更する時にエラーに引っかかりました。 下記のサイトを参考に試したらエラー解決ができました。
エラー対応お疲れ様でした!
ソース設定を0.0.0.0/0からセキュリティグループID(sg-xxxxxx)に変更する時にエラーに引っかかりました。 下記のサイトを参考に試したらエラー解決ができました。
エラー対応お疲れ様でした!
はじめに
構成図、とてもキレイで良い感じです! よくを言えば ・SSH(22) ・http(80) ・MySQL(3306) など、通信のポート番号を書いてあげるとよりよいと感じました!
構築が完了し、動作確認を実施。どちらかのインスタンスを停止しても、wordpressにアクセス出来ることを確認。 Auto Scalingも負荷を掛けてインスタンスの増減が発生していることを確認。
何はともあれ、無事に動作確認が完了したようで良かったです!後続のレッスンも頑張ってくださいね! お疲れ様でした!
rootでコマンドを実行したのが原因。
Slackで質問いただいていた件ですかね?
もしかしたら「ホームディレクトリの違い」によるものだったかと記憶しています。
【コマンド】 wget http://ja.wordpress.org/latest-ja.tar.gz ~/
このコマンドの最後の ~/ は何を表しているか整理しましょう。
「ec2-user」ユーザーで以下を実行してみてください cd ~/ pwd ⇨/home/ec2-user/ が表示
「root」ユーザーで以下を実行してみてください sudo su - cd ~/ pwd ⇨/root が表示
チルダ記号「~」は「今ログインしているユーザーのホームディレクトリ」を表します。
引き続き疑問点があればSlackで質問してみてくださいね!
EC2インスタンスを2台構築し、冗長構成を構築する。
構成図、シンプルで良いと思います! もし余力があれば公式アイコンなどを使ってあげると他エンジニアからの視認性も高まるかと思いますので、ぜひチャレンジしてみてください!
セキュリティグループの選択が誤っていたため、アクセス出来なかったのが原因。 接続が出来ない場合はセキュリティグループをまず確認と学習
あるあるですね! 私も現役エンジニア時代(そして今でもたまに…)セキュリティグループ設定ミスで時間を溶かしてしまった経験があります。
接続できない場合、 ルーティング 権限 など、自分なりにチェックするクセをつけておくと良いと思います!
キーファイルのプロパティからログインしているユーザ以外のアカウントを全て削除し、 ログインユーザの権限を「フルコントロール」に変更。 再度、ssh接続のコマンドを実行し、インスタンスへ接続することができた。
こちらはWindows特有の対応のようですね。 教材内で補足できずに失礼しました。
他の方もヒアリングしてみて、改めて教材に反映するか検討してみますね!情報提供ありがとうございます!
⇨失礼しました、コマンドラインから接続する場合ですね!ナイストライです!教材にも補足いたします!
「You may not specify a referenced group id for an existing IPv4 CIDR rule」と表示され、 設定が出来ない。解決策として、既存で作成されているインバウンドルールを削除し、 新たにインバウンドルールを作成し、作成したセキュリティグループを選択すれば設定が可能です。
こちら、既存ルールを一旦削除すれば解決されるとのこと、解決できて良かったです。 エラー調査お疲れ様でした!
■RDS(オンデマンド)
RDSは停止していても、1週間経過すると自動起動(!)するのでご注意ください。 https://www.t3a.jp/blog/infrastructure/rds-auto-startup/
■EC2(オンデマンド)→停止中にすること
大切です。 補足として、利用する時間(例:9:00〜18:00)のみ起動終了を制御するCloudWatch Eventsで作る仕組みもあります。仕組みで強制するのもひとつの手です。 https://qiita.com/t-toyota/items/5d7455568f1856fd2f4e
また、EC2を停止していても、EC2にアタッチされているEBSボリュームを保持しているだけでわずかな料金がかかります。ご注意ください。 https://aws.amazon.com/jp/premiumsupport/knowledge-center/ebs-charge-stopped-instance/
ハンズオン1の構築に必要な費用の一覧
こう見ると、一般的なWebシステム系の構成はほとんどがEC2とRDSで占められますよね。
構築の練習をしたいけど、実際どのくらい費用がかかるの!?と思い書きました。
ご自身で費用を調べるこのような視点、素晴らしいです!
インフラ系PMO歴半年でAWSクラウドプラクティショナーを取ったばかりの私
IT業界も半年でしょうか? それでプラクティショナー取得は素晴らしい!センスあると思います!
CloudWatch 監視設定
AutoScaling設定で監視を入れており、バッチリですね!
ポートフォリオとしてのアピールには別途、メモリ使用率やストレージ容量など基本的な監視設定が入っていると運用も考えられているなと高評価になりますので、ぜひチャレンジしてみてください!
通知もメールに飛ばす、Slackに飛ばすなど色々とエラーレベルに合わせて設定するとなおよしです!
くろかわ
GitHub・S3から必要なファイルのダウンロードなどの処理
EC2をプライベートサブネットに配置する場合、GitHubからのダウンロードを実現するためには一時的にインターネットの接続経路が必要なのでNATゲートウェイを利用する等の対応が必要です。 プライベートサブネットに配置する場合はご注意ください。
くろかわ
以下のような構成を目指します。
久保玉井さんのおっしゃる通り、EC2はプライベートサブネットに配置しても良さそうですね!
プライベートサブネットでyum updateはどうするか?ですが、S3のエンドポイントを設定することで実現できます。以下の記事を参照ください。
https://soypocket.com/it/ec2-yum-privatesubnet-s3endpoint/
他、インターネット向けの通信が必要な場合は、コスト的な面を考慮すると一時的にNATゲートウェイを配置するなどで対応するのが良いと思います。
くろかわ
この記事は AWS CloudTech の課題として作成しました。
まとめ記事作成ありがとうございました。 お疲れさまでした。
このままだとターゲットグループのヘルスチェックに失敗する状態となります。 原因は以下の2つです。
エラー原因についても事前説明記載されていてわかりやすいです。ナイス説明です。
【ユーザーデータ】
すごい盛りだくさんですね!まとめ記載お疲れさまでした。
ただ作業が多いのでゴールデンAMI作成して、それをAutoScaling用に利用するのも良さそうですね。
【補足】 2つ以上のアベイラビリティーゾーンでサブネットグループを構成しないと以下のエラーが発生し、作成できません。
このエラーの説明まで記載されているのが素晴らしいです。なぜエラーになるのかの原因も補足で記載されていてさすがです。
マイIP
なるほど。検証用とかの利用であればご自身環境からのみのアクセス限定ですね。
別AZ)
可用性を高める為にマルチAZ構成ですね。 さすがです!
以下のような構成を目指します。
わかりやすい構成図素晴らしいです。
ちょっとご提案です。ELBのみパブリックサブネットに設置。WebサーバやAPサーバはプライベートサブネットに設置という構成は如何でしょうか?
WebやAPサーバも安全性も高まるかと思います。
せっかくなので現在学習を進めているAWSに絡めて構築してみようと思います。
素晴らしい。学習効果が促進されると思います!
EC2を再起動するとIPが変更される認識でしたがされていませんでした。
再起動だとIPアドレスは変わりませんよね! AWSのビジネスから見ると、「EC2を起動しておらずお金が入ってこないのに貴重なIPアドレスを確保されている」ということで、停止すると自動解放されるのだと想定します。
①Privateに設定したRDSのSG編集にてエラー。
「既存のIPv4CIDRルールの参照グループIDを指定することはできません」 というエラーメッセージですね。。 私も英語で検索してみましたが、これといった情報がなく、おそらくAWS側のバグとみてよさそうです。
ルートアカウントは使用しない。(IAMユーザ作成済み。)
Administrator権限を持ったIAMユーザーですね! ルートユーザーを使わないところが明記されており、良いと思います!
構成図は以下の通りと致します。
構成図、バッチリです。 IGWからEC2へ、アクセスの矢印があるとなお良いと思います!
「アスキーアートを作成
ここにあったー!!www ありがとうございます。
今回作成したテンプレートには、AWSのベストプラクティス的には非推奨の構成があります。 お気づきですね、CLB(クラシックロードバランサー)の利用は好ましくありません。
おっしゃるように途中違和感がありました。ただCLBでも構成はできるのでそのまま記事を読んでいたのですが、最後で大納得です。あえて改良するのを意識してCLB→ALBへの切り替えさせるのですね。なるほど。
今回はAWS CLIを用いてデプロイを行ってみましょう。
デプロイ作業もスクリプト化することによって冪等性も保たれますね。コマンド叩くだけで作成されていくので凄い便利だと思います。素晴らしい!
簡単ですね、これをクロススタックと呼んだりします。
参照するために名前をつけて!ImportValueで呼び出すって感じですね。わかりやすい説明ありがとうございます。
ちなみに、このブロックの意味は 10.0.0.0/16は、10.0.0.0から10.0.255.255までの65,536個のアドレス 256 x 256 = 65,536 8 + 8なので第二オクテットまでという意味。
サブネットマスク計算の説明もあって基本情報技術者試験のようにわかりかったです。すばらしい。
では順にプロパティーを見ていきましょう。
ここから各要素の説明が始まっていくのが丁寧ですごくわかりやすかったです。
この宣言に関してはCloundFormationを記述する上で、例えばShell等のShebang的な役割を持っていて、どのバージョンで実行させるかと言うことを宣言できます。
この形式バージョンですが、現時点で2010-09-09が唯一の形式となってます。またAWSTemplateFormatVersion セクションは任意記載となりますので、「Shebang的」のような必須項目とはちょっと異なってくるかと思われます。
Shebangは記載ないとスクリプト動きませんよね?
ご確認いただければ幸いです。 https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/format-version-structure.html
一テンプレートにおいて極力一リソースまでを出力すると言うことを意識しました。
基本だと思うのですが、トラブル時に切り分けが一気にしやすくなるメリットも出てきますね。
YAMLで記述するとJSONと違ってコメントを記述できるので、アスキーアートを使ってコメントで看板的なものを記述してあります。ダラダラとDescriptionを記述するよりは視認性が上がって個人的にはいいんじゃないかと気に入っています
これめちゃくちゃ目立ってすぐ判りました! よければアスキーアート生成方法などの記述もあると読者ももっと喜ぶと思うかもしれませんw
どうも机上の空論で終わっている気がしたので、復習も兼ねて実際にCloudFormationをもっと実践的に記述していこうと色々やってみています。
まずはSAA合格おめでとうございます。
合格も凄いですが、知識の掘り下げを実践されているのがもっと凄いと思います。今後上位資格にトライする際にも有用な取り組みだと思います!さすがっ!
オンプレとクラウドにおけるネットワークに違いについての理解を深めたい
退避させて記事にまとめるのは非常に面白いアプローチですね!
AWSのNATの設定がオンプレと異なり、随分と設定がシンプルである。CiscoルータのNATでDynamicやStatic、NAT poolやらoverloadなどなどオンプレで設定することはAWSでは不要?
NAT poolなどIPアドレスの確保はAWSが管理してくれるのでユーザー側では不要となります。クラウドの利点ですね。
サブネットに分けると、オンプレではブロードキャストドメインを小さくすることでルータの処理負荷を減らすメリットがあるが、AWS(クラウド)ではこの部分はあまり関係がない?
論理的には多少影響はあると思われますが、システムのパフォーマンスに影響を及ぼすほどのものではなさそうですね。
/29以降だとAuto Scalingできないため
Auto Scalingもそうですが、ELBが最低限確保が必要なIPアドレス数に満たないためでもあります。
これはオンプレでいうところの、デフォルトゲートウェイに当たるもの。
IGWがオンプレのデフォルトゲートウェイという表現はなかなか面白い表現ですね! 厳密に言うとデフォルトゲートウェイは「ルーティングでデフォルトとなるルータ」を指す意味合いが強いと思いますので、誤解を防ぐ意味で「インターネットとの境界に設置されたルータ」などはいかがでしょうか?
ELBの設置
ハンズオン1の記事でElasticIPアドレスについて明記していましたが、こちらでELBを使う予定だったのですね。納得いたしました。
「フェイルオーバーで再起動しますか?」にチェックを入れ再起動
意外とこちらの作業をする際はドキドキします。
EC2のセキュリティグループの設定でHTTPフルオープンの代わりに、ELBのセキュリティグループからの通信のみを許可する設定にする
素晴らしい!安全性がより高まりますね。
*うまくいってなければ、パスを確認してみてください
ヘルスチェックトラブルに関して、確認項目も明記されていて流石です。
指定したファイルを作成する必要がある
Wordpressの場合ですとindex.phpファイルも存在するかと思います。
リスナーでHTTPSの設定をしていなければ、注意画面が出るが、あとで設定できるのでここはひとまず次へ進む
この注意表示ですが、初見の方は驚きますよね。明記されていて流石だと思います。ありがとうございます。
echo '<p>Web Server 2</p>'; に変更。
これでEC2インスタンスの区別がつくようになりましたね。
この記事はAWS初学者を導く体系的な動画学習サービス 「AWS CloudTech」の課題カリキュラムで作成しました。
引き続き、課題記事作成お疲れさまです。ありがとうございます。
この記事はAWS初学者を導く体系的な動画学習サービス 「AWS CloudTech」の課題カリキュラムで作成しました。
課題記事の作成および提出お疲れさまです。
EC2のパブリックIPをブラウザに貼り付けて接続
今回のネットワーク構成ですと、EC2を停止し改めて起動するとパブリックIPも変更になります。ElasticIPを付与し固定化する方法だとパブリックIPアドレスの変動は起こりませんので、ぜひ一度お試しになってください!(若干金額発生しますが)
しかし、RDSの設定を間違えたことに気づき作り直したら、データベース接続エラーになった
エラーについても記事内に記載されているのは非常に有用だと思います。成功ばかりではなくエラーも経験すると更に理解度が増すからです。素晴らしい。
おそらく元々のwordpressのキャッシュに最初に作成したRDSの情報があって、その情報と噛み合わないことが原因だったと思う。
/var/www/html配下にあるディレクトリを一旦削除し、ダウンロードしたWordpressを再度展開および/var/www/html 配下に設置してみるのも解決手法の1つです。ぜひ一度お試しください。
ルートテーブルにパブリックサブネットを関連づける
確認なのですが、プライベースサブネット分のルートテーブル作成&サブネット関連付けは行わないのでしょうか?
解決策:一旦デフォルトのルールを削除して、新しく追加すれば設定できる
参考記事まで掲載し、簡潔な説明で非常にわかりやすかったです!流石!
(任意で良いのかわからないけど、とりあえずwordpress)
最近ではセキュリティ対策として、データベース名も推測されない名称を指定するケースも出てきてます。wordpress以外のランダムなデータベース名を設定するのも対策としてありだと思います。
自分が構築して大事だと思った部分だけ記述します。
実際に手を動かして注意点を記事としてまとめる事により、より理解度が深まりますよね。取り組み素敵です!
504_Gateway_Timeoutとなり、WordPressの設定が上手くいかないですね。。
このエラーはまだ続いている状況でしょうか? なんでしょうね。。。Apacheは正常に起動できている状態ですかね?
お疲れ様でした。
お疲れ様です!
RDSの接続先を変更する。
EC2にアタッチしているセキュリティグループのみ許可する設定は良いですね!よりセキュアにもなりますし、EC2が増えた場合にも楽になるかと思います。
「You may not specify a referenced group id for an existing IPv4 CIDR rule」と表示された場合の対応方法
すべて消して保存して、ルールを追加する対応のやつですね!私もハマったことあります!
この記事はAWS初学者を導く体系的な動画学習サービス 「AWS CloudTech」の課題カリキュラムで作成しました。 https://aws-cloud-tech.com
課題作成ありがとうございます!
※RDSは従量課金制なので、使わない場合はRDSを削除すること。
ちなみに停止して7日後に自動起動してくるので、この仕様は覚えておくといいですね。
重要
DB インスタンスは最大 7 日間停止できます。7 日後に DB インスタンスを手動で起動しなかった場合、DB インスタンスは自動的に起動されるため、必要なメンテナンス更新が遅れることはありません。
【一時的に Amazon RDS DB インスタンスを停止する】 https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/USER_StopInstance.html
VPC内でしか設定されていない。
「VPC内のルートのみが設定されている」の方がより正しいですね
セキュリティグループの設定は以下の通り。
SSHのソースIPについては、SSHの接続元のIPが固定化されている場合、「0.0.0.0/0」ではなく、IPを指定する形の方がよりセキュアになりますね。
HTTPのソースIPに関しては、インターネットに公開されることが前提かと思うので、「0.0.0.0/0」で良いかと思います。
参考にしていただければ幸いです!
同様に、PrivateSubnet01を設定します
サブネット名とIPv4 CIDRは構成図に表記されているものに読み替える感じですね
AWS構築 - 完成全体像 -
本記事でのゴールが構成図として記載されていて、とても分かりやすいです!
この記事はAWS初学者を導く体系的な動画学習サービス 「AWS CloudTech」の課題カリキュラムで作成しました。
課題記事の作成と提出ありがとうございました。 丁寧な記事内容で理解しやすかったです。
SpringBootアプリケーションをデプロイ
APサーバへのSpringBootアプリケーション設置ですが、素朴な疑問としてElastic Beanstalkで出来るかな?と感じました。Fat JarとしてまとめてElastic Beanstalkへ配置すれば、APサーバの構築作業も軽減できるかな?と考えています。
参考記事 https://qiita.com/riversun/items/9d53238fef611ce7d466
アプリケーション側の知識に疎くて申し訳ないです
# APサーバに向ける。PublicIPでもいいが、PrivateIPを指定
APサーバインスタンスの停止、起動があるとIPアドレスの変動が起きてしまいソースコード修正が発生しちゃうので、Elastic IP指定でAPサーバを作成すると修正作業しなくて済みそうですね。
具体的な手順は以下
まったく同じ構成で準備を始めるのであれば、作成するインスタンス数を「2」で指定して作成するのも楽になりますね。
金額が気になるようなら「無料利用枠」でOK
このあたりコストが気になる方が多いので予め記載されてて素晴らしいです。
※RDSインスタンスの作成にはサブネットグループが必須です
そうですね。事前準備が必要になりますね!素晴らしい!
APサーバインスタンス用のセキュリティグループの作成
APサーバへのアクセスポートが8080となっておりますが、外部からもアクセス可能な状態になっているのが少し心配です。
アクセス元がWebサーバーのみであれば、APサーバー用のセキュリティグループを別途ご準備してみるのはいかがでしょうか?
VPCのメインルートテーブルはパブリック用で利用したので、新たにイチから作成する
プライベートサブネット用のルートテーブル作成は処理漏れしやすい箇所ですので、丁寧に記載されていて素晴らしいです。さすが!
具体的な手順は以下
展開して内容確認しました。丁寧な手順説明が素晴らしいです!
APサーバ
サービス利用時にAPサーバにエンドユーザーはアクセスしないのであれば、APサーバはPrivateSubnetに設置するのも良さそうですね。
それにしてもエンドユーザーがラーメン食べているのが可愛らしいw
開発環境でアプリは作れるし、泥臭いけどアプリを公開することができる! に変えることができる!
「泥臭いけど」と書かれていらっしゃいますが、個人的には”すごくかっこいい”と思います。行動されているのが素敵です。
VPCの画面に移動して、VPCが作成されていることが確認できればOK
想定した動きが実現できるととても面白いですよね!
Type: AWS::EC2::VPC
VPC以外のリソースのパターンも見てみたいですね。
新規フォルダを作成する
自身の中でCloudFromationのテンプレートを作成する場所をルール化しておくのも良いですね
テンプレート作成準備
設定内容の記載ありがとうございます。 これは参考になる人が多いきたいと思います!
start
この機能はとても便利ですよね!
この記事はAWS初学者を導く体系的な動画学習サービス 「AWS CloudTech」の課題カリキュラムで作成しました。
課題作成ありがとうございます!
0.0.0.0/0
ちなみにここはフルアクセスではなく、一部のグローバルIPにしぼって公開するようなルールにすると、証明書の自動更新処理に失敗します。 参考としてコメントしておきます!
https://blog.serverworks.co.jp/tech/2018/12/13/acm-certification-auto-renewal/
AWS Certificate Manager
AMCで発行されたSSL証明書に関しては(DNS検証の場合)、自動的に更新がされます。 自動更新にはいくつかの条件が満たされている場合に限るので、詳細はドキュメントを参照いただければ幸いです。
【ACM 証明書の管理された書き換え】※タイトルは翻訳がおかしいです。。。 https://docs.aws.amazon.com/ja_jp/acm/latest/userguide/managed-renewal.html
WordPressの対応
WordPress側の対応記載いただきありがとうございます!
Route53の画面に移り、更新ボタンを選択、検証用のDNSレコードが追加されていることを確認する。
DNSレコード(CNAME)が追加されていることと合わせて、検証状態を確認する手順を入れた方がより良くなりますので、参考にしてみください!
【ACMの証明書をDNS検証にする】 https://blog.kozakana.net/2019/03/aws-dns-validate/
必要な証明書
ACMで発行できる証明書の種類は「ドメイン認証(DV: Domain Validation)型SSLサーバ証明書」のみとなります。 利用すべき証明書の種類によっては、ACMが利用できない場合もあるので、今後の参考にしてみてください!
【ACM 証明書の特性】 https://docs.aws.amazon.com/ja_jp/acm/latest/userguide/acm-certificate.html
【SSLサーバ証明書の種類と比較】 https://www.websecurity.digicert.com/ja/jp/theme/ssl-compare
よりセキュアなHTTPS
ブログだとしてはHTTPS化は必ずやっておきたいですね
この記事はAWS初学者を導く体系的な動画学習サービス 「AWS CloudTech」の課題カリキュラムで作成しました。
課題作成ありがとうございます!
設定した機能を確認
ここは動作確認は必ずやっておきたいポイントですね!
)
クリックしただけでは、閲覧ができませんでしたー ここは必ず修正しましょう!
現在の設定により、このバケットとバケット内のオブジェクトが公開される可能性があることを承認します。
この設定をする時、いつもドキドキします
取得したドメイン名をブラウザのURL欄に貼り付けて、ブログにアクセスできることを確認する。
動作確認大事です!
ルーティングポリシーはシンプルルーティングを選択して次へ進む
ウィザードで作成する方法ですね。 ウィザード作成とクイック作成の2つ方法があるので、今回はどちらの方法かを記載すると、より分かりやすくなると思います!
上記の作業は、「取得したドメインは、Route53で管理します。」とFreenomに教えてあげているイメージになります。
最後にnslookupコマンドなどでNSレコードが設定した内容に反映されているか確認するようにすると、より良くなるかと思います。
以下はWindowsでのnslookupに関する記事ですが、参考にしてみてください。
【nslookupコマンド】 https://www.n-study.com/tcp-ip/nslookup/
レコードの値/トラフィックのルーティング先の4つの値を1つずつ先ほどのFreenomのネームサーバーの記入箇所にコピーする。
ここはFreenom側での作業になると思うので、以下のような章立て?にすると、とても分かりやすくなるかと思います。
1.Freenomでのドメイン取得 <br> 1-1. <br> 1-2. <br> <br> 2.Route 53でのホストゾーン作成 <br> 2-1. <br> 2-2. <br> <br> 3.Freenomで NSレコードの修正 <br> 3-1. <br> 3-2. <br>
準備
止めていたものを起動したりすると、なぜかうまく動作しないことありますよね。考慮不足だったりしますが、ドキドキするところです
セカンダリに通信を流す設定を行います。
S3にアップしたSorryサイトが表示されるということですね
この記事はAWS初学者を導く体系的な動画学習サービス 「AWS CloudTech」の課題カリキュラムで作成しました。
課題作成ありがとうございます!
サブネットはパブリックのものを2つ選択
是非冒頭に記載した資料を参考にしてみてください!
有効化
冒頭にも記載しましたが、ELBを利用する構成の場合、EC2はプライベートサブネットに配置することがよりセキュアな構成になります。 プライべートサブネットの場合、ここの設定は 無効化 になるので参考にしてみてください。
実施手順
実施手順の記載ありがとうございます!
すべては厳しいと思いますが、ポイントを絞った形でマネジメントコンソールの画像を貼るとより分かりやすくなるかと思います。 例えば、各手順の最後に表示される画面など、想定している結果の画面ですね。
ELBを配置しているので、2台のEC2インスタンスに対しては通信を分散して振り分けてくれる構成でした。
ELBを配置する構成の場合、振り先となるEC2に関してはプライベートサブネットに配置するとよりセキュアな環境になります。
以下のイベント資料のP20にベストプラクティスの構成になるので、参考にしてみてください!
Auto Scalingを設定してEC2を条件に合わせて増減してくれるように構成
コスト管理の強化にも繋がるので、要件に応じて使っていきたい機能ですね
インスタンスを終了するだけだと、Auto Scalingの機能で再びインスタンスが立ち上がってしまうので、Auto Scalingを削除した後にインスタンスを終了してください。
ここは大事なポイントですね!
この記事はAWS初学者を導く体系的な動画学習サービス 「AWS CloudTech」の課題カリキュラムで作成しました。
課題作成ありがとうございます!
2018年夏に「人生変える!」と決意してひたすら勉強中です
「人生変える!」って凄い意気込みだと思います。頑張ってください!
あとはEC2でwebサーバーなどを設定すればインターネットに公開可能ですが、ドメイン名をつける場合はRoute53を使います。
Route53で簡単にドメイン名の購入や設定が出来ますが、実はEC2にドメイン名割り当てて使用する場合には、AWS以外のドメインレジストラの利用も可能だったりします。
RDS
Amazon Relational Database Serviceで「RDS」ですね。
「ここはうちのエリアです」
判りやすい! ちなみに「うちのエリアは1つだけでなく、複数あるんだよ」的に、VPCも複数作成可能です(最大値制限はありますが)
※この記事はAWS初学者を導く体系的な動画学習サービス 「AWS CloudTech」の課題カリキュラムで作成しました。 https://aws-cloud-tech.com
まとめ記事作成ありがとうございました。
インターネットに公開する場合はElasticIPアドレスを割り当ててあげます。
ELBなどを使うと、EC2に固定IPを割り当てずにELB側でIPが固定化されますので、EC2側は柔軟に交換切り替えなどが可能になりますよ。お試しください。
出ましたねElastic!
AWSではいくつかのサービスがありますが、EC2はご認識のとおり重要なサービスの1つです。
このあたりは試験でも取り上げられますので要チェックですね。
東京は4箇所です。
東京のAZは通常利用可能なのは3つとなります。1つは現在新規利用できませんのでお気をつけください。
AWSにはパブリックサブネットとプライベートサブネットの2つがあり、パブリックはインターネットと接続するエリア、プライベートはそうでないエリアです。
簡潔な説明で理解しやすいです。素晴らしい。
そして更に!「1年間の無料枠」というハンパではない大盤振る舞いがあります。
一年間無料は学習を行う際に非常に助かりますね。 私も以前AWSで独自ドメインでブログ運営していましたが、一年間は黒字継続できて助かりました。 (2年目からは収支逆転したのでAWSから他の固定額サービスへ乗り換えしましたが・・)
使った分だけの従量課金になります。
こちらでちゃんと記載されていますね。安心致しました!流石です!
クラウドサーバーをサブスクで使えるサービス
とても判りやすい説明なのですが、少しだけニュアンスが違う感じがしました。
サブスクだと定額課金になりますが、AWSの場合ですと「使った分だけ課金」になります。場合によっては無料の機能もありますので、そのあたりご認識はご注意ください。
Amazon Web Service
複数のサービスの集まりになりますので、最後に複数形の「s」が付きます。ご確認ください。
正:Amazon Web Services 誤:Amazon Web Service
大切なAWS用語をこれ以上ないほど簡単に説明します。
用語の説明をまとめると言う記事は、たしかに初学者向けには必要だと思います。何気なく3文字の省略用語を使うのが多いですので、初心にもどって改めて確認致します!
初学者向けに「賢く、超簡単に」とモットーに投稿していきたいと思います。
「賢く、超簡単に」というのが良いですね。興味惹かれます!頑張っていきましょう。
パブリックアクセス可能:「なし」を選択
プライベートサブネットに配置するので、ここは「なし」ですね
ブラウザからWordPressを確認する
WordPressの初期設定手順の記載ありがとうございます!
パブリックサブネットをもう1つ作成
次回作に向けた下準備でもう一つ作成といったところでしょうか?
ルートテーブルの設定
認識済みかもしれませんが、ルートテーブルで
0.0.0.0/0 (デフォルトゲートウェイへの通信) がインターネットゲートウェイに設定されているのが「パブリックサブネット」 設定されていないのが「プライベートサブネット」
と認識しているとより理解が深まるかと思います!
プライベートサブネットの作成
RDSを配置するプライベートサブネットですね。 とても良いと思います!
パブリックサブネットの作成
EC2を配置するようのパブリックサブネットですね
今回の構成だとEC2に障害が発生した場合、サービス全体が停止してしまうため、次回はAZ 1cに新たにEC2とRDSを構築したいと思います。
次回の記事も楽しみにしております! 絶賛確認中です!
WordPressをインストールする
各コマンドの挙動についても記載していて、理解が深まりやすいと思いました。
元々あるIPアドレスを消去して、作成したインスタンスのセキュリティグループを入力(インスタンスの「セキュリティ」タブから確認)
セキュリティグループでの選択はとても良いと思います!
このレッスンのゴール
構成図が記載されており、とても良いと感じました!
この記事はAWS初学者を導く体系的な動画学習サービス 「AWS CloudTech」の課題カリキュラムで作成しました。
課題作成ありがとうございます!
まず、セキュリティグループで対策を行い、それでも対応できなければネットワークACLを使う
私も実務ではそのような考えで設計していますね
サブネットには、パブリックサブネットとプライベートサブネットの2種類ある。
この違いは把握しておきたいポイントですね!
セキュリティグループ(SecurityGroup)
ネットワークACLとの理解を把握した上で、利用したい機能ですね。
アタッチしていないと料金がかかるため、不要なElastic IPアドレスは 解放しよう。
うっかり解放忘れはあるあるですね...
デフォルトVPCは基本的に利用せず
私は実務ではデフォルトVPCは削除しちゃいますね。
「デフォルトVPC」を作成することも出来たりしますね。 https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/default-vpc.html#create-default-vpc
1つ以上のデータセンターの集まり。
1AZあたり、1つ以上のデータセンターの集まりですね。 認識合ってるかもしれないですが、念のためのコメントです!
古い動画ですが、こちらも参考になると思いますので是非見てください! https://youtu.be/JIQETrFC_SQ?t=1428
勉強のためなどで特にリージョンにこだわりがないのであれば東京リージョンを選んでおくといいかも。
利用料を出来る限り抑えたい、という場合、海外リージョンを利用する手もありますね。 EC2ではインスタンスタイプにもよりますが、バージニア北部の場合、東京リージョンと比べて20%くらい安く使えたりします。
以下のページでリージョンごとの料金が分かるので参考にしてみてください! https://aws.amazon.com/jp/ec2/pricing/on-demand/
この記事はAWS初学者を導く体系的な動画学習サービス 「AWS CloudTech」の課題カリキュラムで作成しました。
課題作成ありがとうございます!
この記事は AWS CloudTech の課題として作成しました。 動画やハンズオン等で学習を進めることができるので、AWS初学者にはおすすめです。
課題作成ありがとうございました!
最終的な構成図は以下の通りとなります。
わかりやすい構成図ありがとうございます。 補足ながら通信経路となる接続線もあると更に理解が深まるかもしれません。ご検討ください。
プライベートサブネット用にルートテーブルを別途作成し、関連付けます。 画面左メニューで[ルートテーブル]をクリックします。
なるほど! こちらで最終的にプライベートサブネット用のルートテーブル作成されていたのですね。納得しました。
※Elastic IP アドレスを別途作成する場合はインスタンス等に割り当てしていない状態だと課金されます。
課金条件も明示素晴らしいです。
デフォルトのルート設定によって許可されています。
おっしゃるとおりVPC作成時点で作成されるデフォルトのルート情報でVPC内の経路は定められていますね!流石です。
「パブリックサブネット作成」のサブネット作成手順を参照します。 今回はパブリックサブネットと同じアベイラビリティーゾーン(AZ)にプライベートサブネットを作成します。
こちらですが、パブリックサブネットと同じルート情報になっていませんでしょうか?
パブリックサブネットで編集したルート情報はデフォルトの経路情報になるため、プライベートサブネットは別のルート情報を設定する必要があります。
このままですとプライベートサブネットではなくパブリックサブネットになりますので一度ご確認ください。
NATゲートウェイは時間単位、処理データ1GB単位で料金が発生する 1時間あたりの料金:0.045USD (約4.95円) 処理データ1GBあたりの料金:0.045USD (約4.95円)
金額概算も掲示されて丁寧ですね。凄いいいです。
今回の場合は「Permissions 0644 for 'ec2-test.pem' are too open.」とあるように、プライベートキーファイル[ec2-test.pem]に対して、パーミッションが「644」では緩すぎるということになります。 ここではパーミッションを「400」に変更し、再度SSH接続をしてみます。
補足ですがWindowsの場合だとこのパーミッション設定がなかったりします。
UnixライクなOSの場合に必要な操作になりますね
※[インスタンスの作成]をクリックするとインスタンス作成が開始し、インスタンスが起動するため、課金が発生します。
課金スタートのタイミングまで記載されて凄い! コスト意識高いですね。素晴らしい!
インターネット(0.0.0.0/0)からのSSHを許可するルールが自動的に追加されています
この構成ですと実はちょっと危険でして、すべての場所からSSH接続が可能となります。
よってソースの部分はマイIPなどにし、SSH接続を行う箇所を限定的にしたほうがより安全度が高まります。
一度お試しください
今回は管理しやすくするためにNameタグを付けます。
今回の構成ではインスタンスが複数台設置されますので区分しやすくするためにもタグで分類は良い方法ですね。
プライベートサブネットからインターネットにアクセスするにはNATゲートウェイを構成する必要がある(NATゲートウェイについては後述する)
経路情報を元にNATゲートウェイが必要と明記されていてわかりやすいです。
現状の構成図は以下の通りです。
作業内容を元にして現時点での構成図を提示されているので非常に丁寧で理解しやすいです。素晴らしい!
インターネットに接続するためにはサブネットに関連付いたルートテーブルにインターネットゲートウェイへのルートを追加する必要があります。
見落としがちな設定箇所ですね。ちゃんと明記されていて素晴らしいです
使用可能な VPC"で先ほど作成したサブネット
こちらですがサブネットを選択するのではなく、VPCを選択となります。
一度試して欲しいのですが、サブネット作成せずにVPCへインターネットゲートウェイをアタッチされてみてください。サブネットなしでもアタッチ可能です。
IPv4
こちらもしかすると全角で「v」と混在入力されているかもしれません。
アベイラビリティーゾーン(AZ)とは複数のデータセンターから構成される単位となります。 各リージョンは複数のAZから構成されることで冗長性を確保しています。
AWSのグローバルインフラストラクチャ構成についての補足説明流石です!
パブリックサブネットとは インターネットゲートウェイにルーティングされているサブネット VPCに紐づけて作成し、VPCのCIDR範囲内でサブネットのCIDRを指定 サブネットの作成には料金は発生しない インターネットゲートウェイとは VPCとインターネットとの通信を可能にするコンポーネント VPCに対して一つだけアタッチすることができる インターネットゲートウェイの作成には料金は発生しない
用語の細かい作成?素晴らしいです!
【別の方法】 検索バーを使用して、サービスを検索することも可能です。
検索するのが手っ取り早いケースもありますので別の方法をしっかり説明されているのが好印象です。
VPC自体の作成には料金は発生しない
こちら意外と大事な所ですね。 VPCやサブネットなどの作成では利用料金発生しませんげ、NATGatewayやEIP利用の場合には利用料金が発生しますので要注意ですね。
以下の図のような環境の構築を目指します。
最初に構成図があるので理解しやすいですね。流石です!
今回の記事ではAWS上での基本的なネットワーク環境の作成、EC2インスタンスの作成について記載します。 作成手順がベースとなりますが、随時補足しながら記載していきます。
今回添削するにあたり事前に内容確認しましたが、超大作ですね。まとめ作業おつかれさまでした!
下図が今回の構成になります
構成図分かりやすいかと思います。 RDSを配置するサブネット(10.0.2.0/24)がPublicSubnetになっていますが、PrivateSubnetになるか思うので確認お願い致します。
これによってWebサーバーを持っているリソースからしかアクセスできないようにしました。
ここは
「セキュリティグループが設定されているリソースから」
が正しいかと思います。
必要なものをインストールします。
コマンドの列挙ありがとうございます!
webサーバーに設定されているセキュリティグループに設定します。
ここは記載通りのセキュリティグループでの設定にしたいですね!Webサーバを増やす要件が発生した際に対応しやすくなります。
プライベートサブネット(10.0.2.0/24)を作成します。
冒頭でも触れましたが、RDSを配置するサブネットは手順の記載通りプライベートサブネットが好ましいです! 構成図の修正を検討ください!
基本知識
各用語解説とても良いと感じました! これらの用語はおさえておきたいポイントですね。
うまくインストールできたらこちらの画面が表示されると思います。
EC2のパブリックIPにブラウザでアクセスする旨を記載するとより分かりやすくなるかと思うので、参考にしてみてください。
この記事はAWS初学者を導く体系的な動画学習サービス 「AWS CloudTech」の課題カリキュラムで作成しました。 https://aws-cloud-tech.com
課題作成ありがとうございます!
普段の業務を振り返る機会を作っていきたいと思います!
自己研鑽にもつながるので、とても良いと思います。 まとめ記事作成おつかれさまでした。
設定できるのできる。
こちらもtypoかもしれません
誤:できるのできる 正:できる
手動により取得されたバックアップはDBインスタンスを削除した場合でも、対象となるスナップショットは削除されない。
こちらですが課金対象となりますので、DBインスタンス削除後にずっと残しずつけて課金され続けるケースを見たことあります。要注意ポイントですね
手動によるアップデートが一番安全!!
実運用を考慮したアドバイス内容が記載されてあって流石です。
本記事を読まれた方にとって有用だと思います。
通常業
こちらはtypoでしょうか?
誤:通常業 正:通常業務
セカンダリインスタンスへの切り替え時間は通常60〜120秒で完了する。
長いトランザクションが常時走っている場合ですと、もう少し時間がかかる恐れがあります。
Amazon RDS のフェイルオーバープロセス https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/Concepts.MultiAZ.html
ただ費用面で折り合いが付かずシングル構成となる案件も結構ありはします。。
このあたりは悩ましい問題ですね。費用面を抑えて構築する際に、サービス停止の許容レベルを前もって決めておかないと実際停止した際に「なんで停止してるんだ!プンスコ」ってなる依頼主を何度か見たことあります。
実装前の段階で折り合いがちゃんとつけば、世の中もっと穏やかになるのですが・・
個人的にまとめておきリファレンスとして活用すべく作成しようと思いました。
とても素晴らしいと思います。あとあと自分自身で活用されるはずなので未来の自分へのプレゼントになりますね。素晴らしい!
cloudformationテンプレート
テンプレート公開ありがとうございます! 私も参考にさせていただきます!
しかし、アプリ公開のためには別途、今回作成したEC2内で各種設定をし、デプロイをしていく必要がありますので、またの機会に記事として残したいと思います。
次回作お待ちしております!
「Use custom nameservers (enter below) 」を選択し、Nameseverの欄に先ほど控えた値を入力し、「Change Nameservers」を押下する。
どの情報をどこに入れるべきはとてもイメージしやすかったです!
※ 踏み台ホスト (EC2)の作成
踏み台ホストは実業務でもよく出てきますね。 よりセキュアに、よりコスト管理を強化したい場合、SSM セッションマネージャーの利用を検討すると良いですね。参考にしてみてください。
【セッションマネージャー越しにSSHアクセスすると何が嬉しいのか】 https://dev.classmethod.jp/articles/ssh-through-session-manager/
独自ドメインの取得は完了です
取得の流れが分かりやすかったです!
■ 環境の特徴
構成の特徴が細かく記載されていて、とても良いと感じました!
今回、CloudFormationでコード化したAWS環境の構成は以下の通りとなります。
構成図がとても分かりやすいです!
大まかな手順を整理します
整理ありがとうございます!
尚、この記事はAWS初学者を導く体系的な動画学習サービス「AWS CloudTech」の課題カリキュラムで作成しました。
課題作成ありがとうございます!
<<手順>>
マネジメントコンソールの流れを画像で記載いただくとより良くなると感じました。参考にしてみてください!
デモで作成したRDSはそのままだと料金が発生するのでスタックごと削除します。
これは大事!
設定ファイルと分けるメリット
これは利用できる場面は多そうですね!
AWS CLIを使用したスタックの基本操作
GUIだけではなく、 AWS CLIの操作方法も押さえておきたいですね。記載とても良いと感じました!
クロススタックを行うにはOutputsという他のテンプレートから参照させる準備の領域が必要でこの設定を参照元に書いていく。
クロススタックを行ない場合には必ず覚えておきたいポイントですね!
その中で、お互いのリソースを参照し合うような状態(例: !Ref関数)が発生する事がある。 これをクロススタックという。
画像と合わせて記載していて、とても分かりやすいです!
テンプレートファイル (ver 1)
テンプレートの内容を記載いただきありがとうございます!
必要なプロパティなどは公式ドキュメントを読みながら記述していく。
ドキュメントのリンク記載ありがとうございます!
この差分を検知してくれる機能をDrift Detectionと言い、どこに差分があるのか検出できます。
どこまでCloudFormationでインフラを管理するかにもよりますが、押さえておきたい機能ですね!