質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

解決済

2回答

7128閲覧

AWS ECSの料金計算について

genki0126

総合スコア33

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

1グッド

3クリップ

投稿2022/02/04 11:35

概要

ポートフォリオ用のwebアプリをruby on railsで製作中です。
railsの実行環境としてawsのecsを利用する想定ですが、
起動タイプをec2かfargateのどちらにするかを料金によって判断したいです。
aws price calculatorで計算しているのですが、各項目が正しく理解できている自信がありません。
条件と設定を記載したので、下記の設定で正しいか教えていただきたいです。

計算に使用したツール
https://calculator.aws/#/createCalculator/EC2
https://calculator.aws/#/createCalculator/Fargate

条件

・1日中起動しっぱなし
・ポートフォリオ用のwebアプリなので
集客や多数のユーザーが利用することなどは考慮しない
・スペックは最低

ecs fargateを使用する場合

(設定項目:設定値)
タスクまたはポッドの数:1/月
(1つのタスクを起動したままにするので、月当たりのタスク数は1の想定)
平均期間:30/日数
(1ヶ月を30日として入力。起動したままなので30日の想定)
割り当てられたvCPUの量:0.25
割り当てられたメモリ量:0.5GB
Amazon ECSに割り当てられたエフェメラルストレージの量:20GB

・金額
8.89USD

ec2を使用する場合

(設定項目:設定値)
オペレーティングシステム:Linux
インスタンスタイプ:t2.micro
数量:1
使用率:100%

EBS部分
各EC2インスタンスのストレージ:汎用SSD(gp2)
ストレージ量:30GB

・金額
11.12USD

Taste_Bitter👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

コストの前に、まず本当にその構成で行けるのかを考えましょう。

  • vCPU0.25.メモリ0.5GBでRailsは動かせるのか?
    • ぶっちゃけt2.microも結構しんどいことがあります
  • Fargateにした場合、データの永続化はどうするのか
    • DBをどこに作るかは考慮されてないのでコンテナを落としたらデータ消えちゃいますけど大丈夫ですか?
  • ディスク容量はそんなに必要か
    • デフォルトの8GBは油断するとすぐ埋まってしまうのでログローテーションをちゃんとやるのと古いソースや使っていないライブラリはなるべく消しましょう

などなど…
まず先にそのあたりを考えましょう。
指定した条件でそもそも動かないのであれば意味がありません。
コストはその後です。

また、用途を考えると1日中起動しっぱなしである必要もなさそうなので夜間は落とすなどしておけばいいと思います。

また、EC2はアカウント開設から12ヶ月無料枠が存在するのに対し、ECSには無料枠がないのでコストを気にするならそのへんも考慮しておきましょう。
どのサービスにどういう無料枠があるのかは下記から調べられます。
AWS 無料利用枠
多くは12ヶ月までしか使えないことにご注意ください。

そのあたりを考慮すると、何もわからないうちにいきなりECSに手を出すのではなくまずEC2で普通に構築すべきかと思います。

投稿2022/02/04 11:55

yu_1985

総合スコア7586

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

genki0126

2022/02/04 12:41 編集

迅速な回答ありがとうございます! >vCPU0.25.メモリ0.5GBでRailsは動かせるのか? >ぶっちゃけt2.microも結構しんどいことがあります 考慮できていませんでした。。。 計測して訂正します。。。 >Fargateにした場合、データの永続化はどうするのか >DBをどこに作るかは考慮されてないのでコンテナを落としたらデータ消えちゃいますけど大丈夫ですか? わかりづらい記載になってしまってすいません、 FargateとEC2の料金計算方法がメインで知りたかったので省略していました。 データの格納には別途RDSを利用する予定です。 >ディスク容量はそんなに必要か ECSのエフェメラルストレージでしょうか?EBSのストレージでしょうか? ECSの方は最初の 20 GB は追加料金なしで利用できるようで計算ツール上では最低20GBの設定になっていました。 EBSは規定値のまま特に触っていませんでしたね。3.60USDなのでまぁいいかな程度に捉えてました。 >また、用途を考えると1日中起動しっぱなしである必要もなさそうなので夜間は落とすなどしておけばいいと思います。 ご指摘ありがとうございます!参考にします! >また、EC2はアカウント開設から12ヶ月無料枠が存在するのに対し、 実は前に勉強しようとして挫折したことがありまして、無料期間はそのときになくなってしまいました。。。 ちなみに、 「タスクまたはポッドの数」や「平均期間」の捉え方は合っているということでよろしいでしょうか?
yu_1985

2022/02/04 16:18

> タスクまたはポッドの数」や「平均期間」の捉え方は合っているということでよろしいでしょうか? 合ってます。ただ、これはus-east-1の料金ですね? また、料金を気にするならgravitonのインスタンス(Arm系)を使うのもありです。 ただ、Intel系CPUのアーキテクチャ内でビルドしたものはArm系では動かないと思うべきで同じ環境でビルドしてやる必要があります。 リモートサーバ上でビルドするなら関係ないですが、そうするとビルド時にメモリを結構使うのでmicroだと厳しくなります。swap領域をディスクに作ればギリギリなんとかなるくらいかなと。 Intel系でもt2よりt3のほうが安いです。 また、EBSを使うならgp2ではなくてgp3のほうが性能が高い上に安いです。 swap領域を作ることを考えたらその分のディスク容量はほしいです。 ちゃんとログローテーションなり古いソースなりを消すとかすればいいのですが、わからなければ15〜20GBくらいにしておくといいです。 正直コンテナ1台で運用するような規模だとFargateのほうが割高ですね。 ECS+Fargateがどんなもんか試してみたいというなら止めませんが、値段で考えるなら素直にEC2インスタンス1台でやったほうがよいでしょう。 ALBを使ってコンテナを複数台使うようになるとFargate Spotを使ってコストを抑えつつ運用負荷を減らすことでメリットが享受できるでしょう。 0.25vCPU、メモリ0.5GBでRailsが全く問題なく動くというのであればFargateでもいいと思いますが、個人的には多分きついと思います。
genki0126

2022/02/05 02:09

ご返信ありがとうございます! >合ってます。ただ、これはus-east-1の料金ですね? >また、料金を気にするならgravitonのインスタンス(Arm系)を使うのもありです。 >ただ、Intel系CPUのアーキテクチャ内でビルドしたものはArm系では動かないと思うべきで同じ環境でビルドしてやる必要があります。 自分のPC(Intel系のCPU)でイメージをビルドする想定なので現状のものにしようと思います。 >Intel系でもt2よりt3のほうが安いです。 >また、EBSを使うならgp2ではなくてgp3のほうが性能が高い上に安いです。 性能が高いものの方が安い場合もあるんですね! >正直コンテナ1台で運用するような規模だとFargateのほうが割高ですね。 >ECS+Fargateがどんなもんか試してみたいというなら止めませんが、値段で考えるなら素直にEC2インスタンス1台でやったほうがよいでしょう。 Fargateの触ってみたさが勝つので今回はFargateにしようと思います。 >ALBを使ってコンテナを複数台使うようになるとFargate Spotを使ってコストを抑えつつ運用負荷を減らすことでメリットが享受できるでしょう。 Fargate Spotは気になりますが、計算ツールが対応していないので一旦見送ろうかと思います。 >0.25vCPU、メモリ0.5GBでRailsが全く問題なく動くというのであればFargateでもいいと思いますが、個人的には多分きついと思います。 実際に構築するときはスペック少し高めにして平日の9-21時のみ起動で料金調整しようと思います。
yu_1985

2022/02/05 09:53

> 性能が高いものの方が安い場合もある 基本的に、同じ系統のインスタンスは新しいもののほうが安いことが多いです。実際のところは公式の料金ページを確認してみてください。 > Fargate Spotは気になりますが どのみちコンテナ1つのみで使うなら安定的に起動することが保証されないFargate Spotは選択肢に入らないと思います。 > 実際に構築するときはスペック少し高めにして平日の9-21時のみ起動 FargateにはEIPを割り当てることができないので毎回Public IPが変わってしまう点についてご注意ください。 EC2インスタンス1台構成で十分なものでFargateを使うメリットが薄い理由の一つです。 料金について気にされていたのでALBは使わない想定で話していましたが、ALBを使うならALBのエンドポイントさえ見ればいいのでここの問題は解消されるでしょう。 気になるのは本当にRailsのコンテナしか使わないのか、ということで、例えばnginxのコンテナを一緒に使うなどはあり得ますか?
genki0126

2022/02/05 13:12

>FargateにはEIPを割り当てることができないので毎回Public IPが変わってしまう点についてご注意ください。 そうだったんですね。。。それも考慮出来てませんでした >料金について気にされていたのでALBは使わない想定で話していましたが、ALBを使うならALBのエンドポイントさえ見ればいいのでここの問題は解消されるでしょう。 >気になるのは本当にRailsのコンテナしか使わないのか、ということで、例えばnginxのコンテナを一緒に使うなどはあり得ますか? おっしゃる通り料金の関係でALBは省略しようと思っていました。 IPの問題もあるならALBかnginxのどちらかは入れた方が良さそうですね。 そのあたりの構成を見直してみます!
yu_1985

2022/02/05 13:59

nginxを入れたところでそれもコンテナなのでIPが固定できないのは変わりません。 またコンテナが増えるので当然その分料金が増えます。 もっとも、ただ表示できればいいのでRailsのコンテナだけあればいいと思いますけれど。 一般に広く公開するようなサービスではないのでnginxを立てないというのも一つの考えです nginxをなぜ挟むのかについてはやや難しいところなのですが、例えばここに書いてあることが参考になります。 https://blog.mothule.com/web/nginx/web-nginx-getting-started-step3-on-mac ALBがあればいらないのでは?という疑問が生まれるのももっともで、自分も疑問に思ったことがあります。 フレームワークの特性やコンテンツの特性によっては不要かもしれませんが、個人的にはRailsは多くの場合nginxも使っておいたほうが無難だと思っています。 https://dev.classmethod.jp/articles/webserver-iru-iranai/ あくまでも現時点の個人的な考えであるのと、アップデートや性能向上によって必要なくなる可能性がなくもないのでご注意ください。 ということを踏まえると、コンテナを複数立ててスケールさせる用途でもなく、1台だけで利用するのにFargateを使うのはやっぱりtoo muchではないかなと思いますね…。 あくまで勉強のためというならそれも良いと思いますが、「なぜあえてこの構成を選ぶのか」についてはきちんと説明出来るようにしておきましょう。
genki0126

2022/02/10 12:41

情報提供ありがとうございます! >nginxを入れたところでそれもコンテナなのでIPが固定できないのは変わりません。 起動タイプをEC2にして常時起動でも難しそうでしょうか? >ということを踏まえると、コンテナを複数立ててスケールさせる用途でもなく、1台だけで利用するのにFargateを使うのはやっぱりtoo muchではないかなと思いますね…。 >あくまで勉強のためというならそれも良いと思いますが、「なぜあえてこの構成を選ぶのか」についてはきちんと説明出来るようにしておきましょう。 「転職用のポートフォリオなので多数の利用者を呼び込むつもりはない」 「Webよくある構成にしたい」 「Fargateとコンテナ使ってみたい」 というのが大まかな考えですが、それぞれが相性悪くて用途にフィットした設計にならないんですよね。。。 素直に話しても多分認めてもらえなさそうですよね。
guest

0

AWSをどれくらい利用されているのか分かりませんが、コメントを見る限り、見落としている部分がいくつかありそうな気がします。

単純に質問タイトルに対する回答ですと、大きく見誤ってはいないと思います。
ただ、あくまでサーバーの価格なので、その他構成要素によって金額感は変わります。

フロントから考えると

  • ドメインどうするか(固定IPでいいのか?)
    • 面倒なことにElastic IP(固定IP)を使用するとインスタンス停止時に料金がかかります
  • SSL証明書(HTTPS)通信をするか否か
    • コンテナを使うとSSL末端の問題で引っかかる場合がある
  • LBどうするか(ALB or NLBどちらでもIPは固定可能)
  • サーバーをEC2, Fargateどうするか
  • DBなどコンテナデータの永続化は必要か否か
    • (ポートフォリオなので不要そうですが、問題発生時用にログとかはとりたいと思います)
  • セキュリティの関係上、DBを分けるか
    • (外部からアクセス不可のネットワークを構築した場合、NATが必要の場合あり)
  • DBの永続化をするか(Fargateの場合EFSを使うか、EC2上に保存するか)
  • コンテナイメージはどこから持ってくるか
    • ECR(多少費用かかるはず)を使うのか、DockerHubを使うのか

どのような経緯でコンテナを利用する方向になったかは分かりませんが、コンテナは扱いが面倒なところが多い印象です。(データの永続化ができない、固定IP振れない、起動に失敗すると永遠に起動/停止を繰り返す、問題があった時に(基本的に)直接コンテナ内に入れない(Fargateのみ))
単純にポートフォリオを立てたいのであれば、(金額は未確認ですが)Amazon Lightsailを活用したほうが圧倒的に作業が楽ですし、知識も不要です。
もっと言うと、S3にページ(HTML/CSS/JS)だけ置くという手もあります。

ECSを使ってみたいのであれば、いくつかコメントされている情報を元に環境を構築してみるのはありだと思います。
(ただ、ECS以外にも費用は掛かります)

EC2を使ったことが無ければ、EC2の方が仮想マシン感覚で使えるので使い勝手は良いともいます。

特に理由がなければAmazon Lightsailや最悪S3にページを置く方法を考えるのも手かと思います。

投稿2022/02/08 04:05

YuuT

総合スコア673

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

genki0126

2022/02/10 12:24

ご返信ありがとうございます! 一応SEはやっていたのですが、AWSはおろかアーキテクチャについて 考える機会がなかったので、見落としはかなり多いと思います。。。 >ドメインどうするか(固定IPでいいのか?) ELB(NLB?)かWebサーバのインスタンスにElasticIP割り振る予定です。 >面倒なことにElastic IP(固定IP)を使用するとインスタンス停止時に料金がかかります 関連づけを解除しないとってことですよね? >SSL証明書(HTTPS)通信をするか否か >コンテナを使うとSSL末端の問題で引っかかる場合がある 上記は考慮できていませんでした。。。 >DBなどコンテナデータの永続化は必要か否か >(ポートフォリオなので不要そうですが、問題発生時用にログとかはとりたいと思います) DBは永続化しようとしていましたが、コンテナデータはする予定はありません。 >セキュリティの関係上、DBを分けるか >(外部からアクセス不可のネットワークを構築した場合、NATが必要の場合あり) DBは分けるかEC2に含めるかは検討中ですが、どちらにせよprivateサブネットに置く予定です。 publicにWebサーバかELBを立てるつもりなのでNATは使わない想定です。(NAT高いですし。。。) >コンテナイメージはどこから持ってくるか >ECR(多少費用かかるはず)を使うのか、DockerHubを使うのか ECR使用する予定です。 >どのような経緯でコンテナを利用する方向になったかは分かりませんが、コンテナは扱いが面倒なところが多い印象です。(データの永続化ができない、固定IP振れない、起動に失敗すると永遠に起動/停止を繰り返す、問題があった時に(基本的に)直接コンテナ内に入れない(Fargateのみ)) コンテナ技術に興味があるので、それを利用している企業に アピールするために構成の中には含めたいと考えています。 値段や自分の知識の問題でかなりかなりブレてきていますが。。。 >単純にポートフォリオを立てたいのであれば、(金額は未確認ですが)Amazon Lightsailを活用したほうが圧倒的に作業が楽ですし、知識も不要です。 >もっと言うと、S3にページ(HTML/CSS/JS)だけ置くという手もあります。 Webサービスを開発するときによく使われていそうな構成にしたいので ちゃんとサーバ立ててる感じにしたいですね。 大まかな構成としては以下を考えています。 ■案1 約100USD ・Webサーバ:ECS(EC2) ・APサーバ:ECS(Fargate) ・DB:RDS ・その他:ECR、ELB ■案2 約85USD ・Webサーバ:ECS(EC2) 、またはWebサーバ無くしてELBを追加 ・APサーバ:ECS(EC2) ・DB:RDS ・その他:ECR ■案3 約40USD ・Webサーバ:ECS(EC2) 、またはWebサーバ無くしてELBを追加 ・APサーバ:ECS(EC2)、DBを内包 ・DB:個別インスタンスなし(APに内包) ・その他:ECR
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問