AWS Startup ブログ

【週刊 Ask An Expert #38】AWS の勉強方法、おすすめは?先週の #AWSLoft で受けた質問10選

スタートアップソリューションアーキテクトの塚田 (@akitsukada): です。皆さん、AWS Loft App は設定しましたか?Loft App は2020年1月6日より開始された、新しい AWS Loft Tokyo の利用登録、および Loft 入館用ウェブアプリケーションです。2月からは、入館には Loft App が必須になるので設定してきてくださいね!イベント予定なんかもチェックできますよ。詳しくはこちら → AWS Loft App について

さて、先週は Ask An Expert がおやすみを頂いていたので、 #37 から一週間間をあけての週刊 Ask An Expert 第38回をお届けします。読んでいて「参考になった」「いい内容だ」と思って頂けたら、ハッシュタグ #AWSLoft を付けてシェアしてください!

Ask An Expert とは

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

写真は、ある日の Ask An Expert で SA 石橋と野間がピースしているところです。

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

週刊 Ask An Expert #38 (2020/01/20 – 01/24)

この週の対応者は SA: 長谷川・辻・園田・市崎・倉光・木村・吉田・菅野・阿部・永山・石井・石橋・野間・廣瀬・三平・三上・木村・中島(章)・福嶋・中島(丈)・と、CSE: 嶋本・古野 でした。

Q1: センシティブな情報(口座番号、電話番号など)を AWS 上で安全に保管したい。何かとっかかりになる情報はないか?

データ保護、アクセシビリティ、監査の観点でソリューションをご案内しました。また、ベストプラクティスについて解説したブログ(AWS データストア内の機密データを保護するためのベストプラクティス)を参考情報として紹介しました。ブログ内からリンクされている、AWS セキュリティのベストプラクティスに関するホワイトペーパーなどもぜひご覧ください。

Q2: 最近 AWS を使い始めた。どう勉強するのがおすすめ?Web アプリケーションのサーバーサイドエンジニアであるが、インフラも覚えたい。

AWS の Tech メンバーが毎週二回ほど無料の Webinar をお届けする、 AWS BlackBelt Online Seminar の資料や動画などが AWS クラウド活用資料集にまとまっているのでぜひ見てみてください。AWS ブログAWS Startup ブログの購読もおすすめです。AWS の公式トレーニングや認定資格もありますよ。

また、まずは自分の書いたコードを Amazon EC2 や ELB といった典型的な構成でデプロイし、手を動かしてみると感覚がつかめると思います。AWS CloudFormationAWS Cloud Development Kit (AWS CDK) 等によるインフラのコード化や CI, CD の導入なども、アプリケーションエンジニアの方が馴染みやすいインフラ作業かもしれません。

Q3: AWS Amplify Console でビルド時に webpack を使いたいが、ビルドイメージに webpack が入っていない。どうすればよいか。

ビルド設定の preBuild フェーズで npm install -g webpackを実行する方法や、開発環境で npm i -D webpack を実行して package.json に含めておく方法が考えられます。

Q4: Amazon ECR へのコンテナイメージ Push をトリガーに、Amazon ECS にデプロイしたい。

AWS CodePipeline を使って設定できます。こちらのブログ(Amazon ECR をソースとしてコンテナイメージの継続的デリバリパイプラインを構築する)で詳しく解説しているので御覧ください。

Q5: iOS/Android に一斉プッシュ通知を送信したい。

Amazon Pinpoint を使ってみてください。

Q6: Amazon Cognito を Authorizer に設定した AWS AppSync で、Cognito でサインインしているユーザー名を取得してバックエンドに渡したい。

リゾルバーのマッピングテンプレート内で、 $context.identity オブジェクト内に username などの情報が入っています。$context オブジェクトのリファレンスはこちらです

Q7: Amazon API Gateway の WebSocket API を使って、ユーザー間でメッセージを送りあうにはどうすればよいか。

API Gateway に WebSocket 接続すると、接続ごとに Connection ID が払い出されます。バックエンドの AWS Lambda ファンクションなどから、メッセージ送信用の @connection URL に POST リクエストを送信することで、指定した Connection ID のクライアントにメッセージを送ることができます。

Q8: 企業の Web サイトを公開するのによい方法はあるか。

仕様を伺ったところ静的なサイトのホスティングでよさそうだったので、 AWS Amplify Console の利用をおすすめしました。

Q9: AWS CloudFormation のスタックはどういう単位で分けるべきか。

CloudFormation のベストプラクティスを見ながら、ライフサイクルと所有権を考えて分ける方法をご案内しました。

例えば、 Amazon RDS とアプリケーションサーバー(Amazon EC2 や AWS Lambda 等)ではライフサイクルが異なることが考えられます。また、RDS は DBA が、アプリケーションサーバーは開発者が所有していることもあり得ます。その場合はスタックを分けることで管理しやすくなります。あるいは、分けておけばそもそも RDS は CloudFormation 以外の方法で管理する、といったアプローチも取ることができます。

Q10: AWS Lambda を使いたいが、コールドスタートが気になる…。

2019年12月に発表された Provisioned Concurrency を使ってみてください。(新機能 – Lambda 関数のプロビジョニングされた同時実行性

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

最後までお読み頂きありがとうございます。冒頭に書いたように執筆者の独断で興味深かった質問のみをピックアップの上、要約して記載しているので実際にはより具体的な質問をより多く頂いています。まだ Ask An Expert カウンターをご利用されたことがない方も、AWS Loft Tokyo にお越しの際はぜひお気軽にご質問ください。

※Ask An Expert が混雑してお待ちいただく場合、またはエキスパートが不在の場合がございます。何卒ご容赦ください。

このブログの著者

つかだ あきひろ / Startup SA