0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

FlutterエンジニアがAWSバックエンドを学び始める

0
Posted at

はじめに

Flutterエンジニアとして実務を経験してきたが、エンジニアとしての幅を広げるためにバックエンド領域、特にAWSを使ったサーバー構築に挑戦。そのメモを残していく

学習ロードマップ

今回構築する環境では、以下のAWSサービスを段階的に学んでいく方針とした。

  • Cognito:認証・ユーザー管理
  • API Gateway:FlutterからのHTTPリクエスト受け口
  • Lambda:ビジネスロジックの実行
  • DynamoDB:データの永続化
  • S3:ファイルストレージ
  • Amplify:上記をFlutterから扱いやすくするSDK

最初のマイルストーンとして、Amplify + Cognitoによる認証機能の実装を目標に設定した。

環境構築の流れ

今回完了させたのは以下の作業。

ローカル環境の準備 → AWSアカウント設定 → Amplify CLIの紐付け

1. ローカル環境の準備

  • AWS CLIのインストール
  • Node.jsのインストール(Amplify CLIの実行に必要)
  • Amplify CLIのインストール
brew install awscli
npm install -g @aws-amplify/cli

2. rootアカウントのMFA設定

AWSではrootアカウントを日常使いせず、IAMユーザーに権限を委譲して作業するのが推奨とされている。rootアカウントはすべての権限を持ち、漏洩時のダメージが大きいため、まずMFA(多要素認証)を設定。

手順:

  1. AWSコンソールにrootでログイン
  2. 「セキュリティ認証情報」→「多要素認証 (MFA)」
  3. 認証アプリ(Google Authenticator等)でQRコードを読み取り設定

3. IAMユーザーの作成

Amplify用の作業ユーザーとしてIAMユーザーを作成した。

  1. IAMコンソール →「ユーザーの作成」
  2. ユーザー名を設定(今回は test_dev として作成)
  3. 権限ポリシーとして AdministratorAccess を付与
    • 学習段階のため最小権限ではなく広めの権限で進めた
    • 実務・本番運用では最小権限に絞るのが望ましい
  4. アクセスキーを発行(CLI用途)し、CSVを保存

4. AWS CLIの認証情報設定

ローカルのAWS CLIに、作成したIAMユーザーの認証情報を設定した。

aws configure

入力項目:

項目 入力内容
AWS Access Key ID IAMユーザーのアクセスキー
AWS Secret Access Key IAMユーザーのシークレットキー
Default region name ap-northeast-1(東京リージョン)
Default output format json

設定後、以下のコマンドで認証情報が正しく反映されているか確認した。

aws sts get-caller-identity

出力例:

{
    "UserId": "AIDAVBQXCHEFBTJ6EY5PF",
    "Account": "346866989322",
    "Arn": "arn:aws:iam::346866989322:user/test_dev"
}

作成したIAMユーザー(test_dev)の情報が正しく表示され、CLIからの認証が成功していることを確認できた。

5. Amplify CLIとIAMユーザーの紐付け

最後に、Amplify CLI自体にAWSの認証情報を紐付け。

amplify configure

ブラウザでAWSコンソールが開き、IAMユーザーの設定を促されるが、すでに test_dev を作成済みのため、既存ユーザーの情報(リージョン・アクセスキー・シークレットキー)を入力する形で問題なし。

Successfully set up the new user.

の出力を確認し、Amplify CLIの初期設定が完了した。

ここまでで完了したこと

  • rootアカウントのMFA設定
  • IAMユーザー(test_dev)の作成・権限付与
  • AWS CLIの認証情報設定
  • Amplify CLIとIAMユーザーの紐付け

次にやること

ここまででAWS側・ローカル環境側の土台が整った状態。次回は、実際にFlutterプロジェクトとAmplifyを紐付ける作業(amplify init)から、Cognitoを使った認証機能の実装に進んでいく。

  • amplify init でFlutterプロジェクトとAWSバックエンドを接続
  • amplify add auth でCognitoの設定を追加
  • amplify push でAWS上にCognito User Poolをデプロイ
  • Flutter側にAmplify SDKを導入し、サインアップ/サインイン機能を実装
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?