ちょっと話題の記事

AWS再入門2018 素朴な疑問 -EC2- 編

自身が初めてAWSに触れたときから今までの間に感じた「これってどうなのかな?」や、よくある質問などを含めて周囲で見聞きした中からピックアップした EC2 に関する 10 の素朴な疑問をご紹介しようと思います。
2018.07.28

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは。池田です。今回は自身が初めてAWSに触れたときから今までの間に感じた「これってどうなのかな?」や、よくある質問などを含めて周囲で見聞きした中からピックアップした EC2 に関する 10 の素朴な疑問をご紹介しようと思います。

もくじ

インスタンスの稼働準備にはどれくらいの時間がかかる?

オンプレミス環境でいうハードウェアの電源をONにするに相当する操作がインスタンスの起動になります。この操作を実行してからそのインスタンスで起動シーケンスが開始されるのは通常10分以内と言われています。ただし、利用するAMIのサイズや作成(起動)するインスタンスの数など複数の要因により前後することがあります。また、初めて起動するイメージの場合は多少時間がかかる場合があるとされています。 オンプレミス環境でも例えばメモリの搭載量などハードウェア性能によって起動時間に差が生じるのと同じだと受け取って良いと思います。

ローカルインスタンスストアと、Amazon Elastic Block Store (Amazon EBS) どちらをルートデバイスに使えば良い?

Amazon EBS を使用すると、インスタンスの稼働状態に関わらずデータを永続的に保管できます。一般的なPCのローカルディスクにデータを保存するイメージです。逆に、ローカルインスタンスストアはインスタンスの停止や削除によって格納しているデータが消える仕組みです。EC2 インスタンスを起動する際に選択する AMI によってどちらを使用するかが決まります。一般的にマネジメントコンソール上から起動する場合に「クイックスタート」から選択できる AMI はルートデバイスタイプが EBS となっています。ローカルインスタンスストアを使用する AMI はコミュニティ AMI で多く見つけることができます(下図参照)。目的に応じた AMI を選択してください。

同時実行できるインスタンス数に制限はある?

オンデマンドインスタンスの同時実行数はインスタンスファミリー全体で20という制限があります。また、特定のインスタンスによってさらにリージョンごとに実行数や利用そのものに(当該リージョンでは提供されていないなどの)制限があるものがあります(詳細はEC2 サービスの制限のページで確認してください)。なお、個別に上限緩和申請を行うことで制限値を増やすことができるものもあります。

オンプレで利用しているメール送信の仕組みはそのまま使える?

送信できる量に制限があります。必要に応じて、制限緩和の申請をすることができます。システム構成によっては EC2 インスタンスからの送信ではなく、 Amazon SES を利用する方法に変更することも検討すると良いでしょう。Amazon SES を利用したメール送信のベストプラクティスというドキュメントも公開されています。

インスタンスファミリーやサイズの変更は簡単にできる?

対象インスタンスを停止させれば簡単に変更が可能です。ただし、インスタンスタイプによってはドライバの更新などの対応が必要なケースもありますので、目的のインスタンスタイプに関するドキュメントを事前に確認することをお勧めします。詳細は公式ドキュメントインスタンスタイプを変更するをご参照ください。

どんな種類のインスタンスが提供されている?

大きく分けて以下の5種類あります。

  • 汎用
  • CPU とメモリのバランスが多くのシステムに適した汎用的なタイプ
  • コンピューティング最適化
  • CPU リソースを重要視する大量の演算処理などを行うシステムに適したタイプ
  • メモリ最適化
  • 大量のメモリを必要とするデータベースやキャッシュなどを多く利用するシステムに適したタイプ
  • 高速コンピューティング
  • より高速な演算処理や機械学習、深層学習など並列処理能力を必要とするシステムに適したタイプ
  • 高性能な 3D グラフィック機能が利用できる GPU グラフィックインスタンスもここに含まれる
  • ストレージ最適化
  • SSD ベースのローカルインスタンスストレージを備えた I/O 負荷の高いアプリケーション向けのタイプ

実際に提供されている各インスタンスの詳細はこちらの公式ドキュメントにてご確認ください。

EC2 インスタンスのグローバル IP アドレスは起動のたびに変わる?

EC2 インスタンスが利用するグローバル IP アドレスはそのインスタンスが起動する際に自動的に、起動の都度ランダムに割り当てられます。これはセキュリティ確保のために社内システムなどとの通信を特定の IP アドレスでのみ許可したい場合などに困ってしまいます。インスタンスが利用するグローバル IP アドレスを固定させたい場合には、Elastic IP アドレスを利用するようにしましょう(デフォルトで1リージョンにつき利用可能な EIP は5つに制限されていますが必要に応じて上限緩和申請が可能です)。また、構築時にはこれらの制限も考慮した設計を行うようにすると良いでしょう。関連ドキュメント

EC2 インスタンスの MAC アドレスは起動のたびに変わる?

EC2 インスタンスが利用する MAC アドレスはそのインスタンスにアタッチされた Elastic Network Interface(ENI)に紐づいています。そのため、ENI を削除しない限りそのインスタンスの MAC アドレスは固定になると言えます。これはインスタンスを削除する際に一緒に削除されないよう設定することで継続利用できます。関連ドキュメント

稀にキャパシティ不足が原因でインスタンスが起動できないことがあると聞いたが回避策はある?

AWS はキャパシティが不足することのないよう、モニタリングと設備管理を行なっていますが、ミッションクリティカルなサービスを提供する場合には万が一に備えた体制をとっておきたいですよね。キャパシティ不足の問題は、リザーブドインスタンス(RI)をアベイラビリティゾーン(AZ)指定で購入しておくことで回避できます。或いは、一時的に他のインスタンスタイプでの起動という方法もありますが、RI を購入しておくとオンデマンド料金と比較して大幅な割引が適用されるのでコストメリットもありますのでお勧めです。関連ドキュメント

インスタンスを間違えて消したりしないようにできる?

インスタンスの削除保護を有効にすることで実現できます。この機能はデフォルトでは無効になっているため、インスタンス起動時に確認をして必要に応じて有効にするようにしましょう。手順等はこちらのドキュメントをご参照ください。

さいごに

筆者はちょうど1年前まではオンプレ環境ばかりに関わっていて、AWSには触れたこともないようなクラウド初心者でした。その後、縁あってクラスメソッドにJOINすることとなり今日に至っています。はっきり言って上級者の方々にとってこのシリーズは毎回物足りない内容だろうとは自覚していますが、いつでも誰でも必ず最初は初心者ですし、自分が多くの先輩たちに助けていただいてきたように、このAWS再入門2018シリーズがAWSを使い始めたどなたかの一助になれば嬉しいなと思いながら続けています。これからもよろしくお願いします。