AWS Startup ブログ

【週刊 Ask An Expert #29】「モバイルアプリを作りたいけど全く何も AWS 知らなくて」先週の #AWSLoft で受けた質問10選

こんにちは、スタートアップ ソリューションアーキテクトの針原 (Twitter: @_hariby) です。

先週末は北海道で開催された JAWS FESTA 2019 SAPPORO に参加して AWS DeepRacer のワークショップを行いました。ハンズオンで強化学習のモデルをトレーニングし、その場で実際にコースを走らせるとやはり盛り上がります。イベントの様子は Twitter: #jft2019 DeepRacer などで検索すると雰囲気がわかるかと思います。

さて、このブログ記事では週刊 Ask An Expert 第29回目をお届けします。「参考になった」「いい内容だ」と思っていただけたら、ぜひハッシュタグ #AWSLoft を付けてシェアしてください。改善点・ご要望もお待ちしております。

Ask An Expert ?

皆さん AWS Loft Tokyo はご存知でしょうか?
目黒セントラルスクエア17Fにある、AWS を利用中のスタートアップとデベロッパーのためのコワーキングおよびイベントスペースです。その一角に AWS のエキスパート – Solutions Architect (SA) や Cloud Support Engineer (CSE) – といった中の人に技術的な質問ができる、Ask An Expert カウンターがあります。そこでは毎月、来場者の方から100件以上にものぼるご相談をお受けしています。


ある日の Ask An Expert の様子。お客様対応中の内山・榎本。

この連載「週刊 Ask An Expert」では、多くのご相談を中から我々スタートアップソリューションアーキテクトが 独断で面白かった質問を 7 個選び紹介していきます。他の AWS Loft 利用者がどんな質問をしているのか、自分が知らなかった新しいトピックはないか、Ask An Expert ってどんなところなのか、一緒に見ていきましょう。Let’s ask an expert!


週刊 Ask An Expert #29 (2019/10/28 – 11/1)

この週の対応者は
[Loft Tokyo] SA: 笹木・岡本・石橋・石橋 (2人います)、CSE: 嶋本
[Pop-Up Loft Osaka] SA: 松田・藤原・河井・辻・塩飽・河野・山口
でした。

Q1: Amazon CloudFront で会員限定の URL をキャッシュさせたい。

署名付き URL と署名付き Cookie を使用しましょう。詳細はドキュメント「署名付き URL と署名付き Cookie を使用してプライベートコンテンツを供給する」をご覧ください。

Q2: Cognito UserPool でユーザー登録やサインインをしたいと考えています。この場合ログイン済みかどうかは何で判断すればいいでしょう?

ユーザー登録やサインインについて、サーバーサイドで Amazon Cognito を制御するなら Admin* 系 API を使いましょう。そうでないなら SignUp, InitiateAuth を使います。
ログイン状態は「Amazon Cognito JSON ウェブトークンの署名を復号して検証する方法を教えてください。」にあるように ID トークンの exp を見てください。

Q3: Amazon ECS にすると楽になるか?

何をもって楽だと考えるかによります。移行コストもかかりますし、結局デプロイ周りで CI/CD を行うのは変わりません。サーバー管理を気にしなくて良くなるのはメリットであることを説明したところ、すでに EC2 でコンテナを動かしているとのことでした。それなら移行は楽にできるかもしれないとご案内しました。

Q4: 管理者が二人いる状態でのルートアカウント MFA の扱いはどうすればいいか

まず前提として、ルートアカウントは普段使いせず、IAM ユーザーを使うことをお勧めします。IAM ユーザーに Admin 権限を付与できるのでせめてそちらを、あるいは、できれば最小権限に絞ってアクセス許可を付与するようにしてください。2人の管理者間でアカウントを共用するのもお勧めしないので、人ごとに個別の IAM ユーザーを作成して下さい。そして、個別に MFA を有効化して下さい。

参考資料: AWS Summit Tokyo 20「AWSの利用時におさえておきたい10のこと

なお、こういったセキュリティ周りの考慮事項は AWS Well-Architected フレームワークのセキュリティの柱にまとまっていて、AWS Well-Architected Tool (日本語対応) でセルフチェックができます。

Q5: Amazon RDS 証明書更新について、ダウンタイムや Amazon ElasticBeanstalk との連携が解除されたりはしないか?

AWS ブログ「Amazon Relational Database Service (RDS)とAmazon AuroraのSSL/TLS 証明書のアップデートについて」によると、再起動は通常 2 分以内に完了します。再起動なので Amazon ElasticBeanstalk 側から解除されることはありません。再起動時間に対応できるメンテタイムを設けて、実施してください。

Q6: AWS Certificate Manager (ACM) の更新に失敗した。更新のメールも受信できていない。

自動更新失敗理由はこちら「ACM 証明書の自動更新が失敗するのはなぜですか ?」。 ACM の更新メールアドレスは Amazon SES で受信する形になっており、Amazon S3 に保存されていたので、ACM 検証メール再送 → S3 からダウンロード → リンクを踏む、で更新完了しました。

Q7: 中国とインドでシェアリングエコノミーサービスをローンチ予定だが、AWSを使うにあたってどのリージョンを使うべきか。中国リージョンと他のリージョンの違いは何か。

一般論として、CDN でのキャッシュなどで回避できない低遅延の要件がない限りは、サービス提供地と AWS リージョンが地理的に近接している必要はない場合が多いです。その上でインドのリージョンを選択される場合も、ムンバイリージョンは他のリージョンと同様にお使いいただけます。なお中国リージョンに関しては「AWS 中国ゲートウェイ」をご覧頂き、不明な点はお問い合わせ下さい。

Q8: モバイルアプリを作りたいけど全く何も AWS 知らなくてどうすれば良いか知りたい

AWS Amplify はいかがでしょう。ブログ「スタートアップが AWS Amplify を使うべき3つの理由」をご覧ください。

Q9: スポットフリートを GPU インスタンスのみにしたい

例えば以下のように GPU インスタンスだけを含む config.json ファイルを作成し、

{
  "SpotPrice": "3.06",
  "TargetCapacity": 20,
  "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role",
  "LaunchSpecifications": [
    {
      "ImageId": "ami-1a2b3c4d",
      "InstanceType": "p3.2xlarge",
      "SubnetId": "subnet-482e4972",
      "WeightedCapacity": 1
    },
    {
      "ImageId": "ami-1a2b3c4d",
      "InstanceType": "p3.8xlarge",
      "SubnetId": "subnet-482e4972",
      "WeightedCapacity": 4
    },
    {
      "ImageId": "ami-1a2b3c4d",
      "InstanceType": "p3.16xlarge",
      "SubnetId": "subnet-482e4972",
      "WeightedCapacity": 8
    }
  ]
}

request-spot-fleet コマンドを使ってスポットフリートリクエストを作成します。

aws ec2 request-spot-fleet --spot-fleet-request-config file://config.json

スポットフリートの使い方に関してはドキュメント「チュートリアル: スポットフリート を使ってインスタンスの分量を指定する」をご覧下さい。

Q10: 簡単に機械学習始めたい

AI サービスを使うと機械学習の経験がなくても AI アプリケーションを構築できます。

などのサービスが揃っています (日本語対応は2019年11月8日時点)。

週刊 Ask An Expert まとめ、今回はここまで

最後までお読み頂きありがとうございます。冒頭に書いたように、執筆者の独断により興味深かった質問を選び、かつざっくり要約して記載しています。実際にはより具体的な質問をより多く頂いていますが、様々なご相談があることが伝わっていれば幸いです。まだ Ask An Expert カウンターをご利用になったことがない方も、AWS Loft Tokyo をご利用の際はぜひお気軽にご質問ください。
※ Ask An Expert が混雑してお待ちいただく場合、またはエキスパートが不在の場合がございます。何卒ご容赦ください。


このブログの著者

針原佳貴 (Yoshitaka Haribara)

スタートアップソリューションアーキテクト。好きなサービスは Amazon SageMaker, Amazon Rekognition, AWS DeepLens、趣味は音楽・バンド (ドラム)。