- 1. 【Swift×AWS】iOSアプリにAPI Gatewayを導入してCognitoから指定のユーザーデータを消去する
- 2. AWS認定試験 DevOps Engineer Professional (DOP) 合格記 〜学習期間2週間、模擬試験スコア56%でも合格できました〜
- 3. SageMakerへのscikit-learnモデルのデプロイメント
- 4. 機械学習モデルをSageMakerにデプロイするのためのAWS認証設定のセットアップ
- 5. AWS WAFの公開設定を色々とためしてみた
- 6. 面倒なEC2インスタンスssh接続を超速で行えるようにした
- 7. Amazon Forecastを試してみる
- 8. AWS Organizations 内のアカウントリストを組織構造と一緒に csv 出力する
- 9. チャットからLambda関数の実行を予約する
- 10. ECSでコンテナ実行メモ その2
- 11. AWS の EC2 上にJenkinsをインストールする
- 12. Amazon Connect と、LambdaやLexとの連携方法
- 13. Storagegateway用のEC2にSSHログインできない意外な見落とし
- 14. Kubernetes初心者がAWSを活用してコンテナ入門ハンズオンやってみた
- 15. AWS未経験でも1ヵ月でSAAに合格する方法
- 16. 【AWS認定クラウドプラクティショナー資格】⑩全章の要点まとめ
- 17. EC2起動時に、自信を監視するCW Alarmを、EC2がTerminateされる際に一緒に削除する
- 18. 【AWS】Go Lambdaのローカル開発環境を作る ( aws-sam-cli + M1mac )
- 19. M1 MacでビルドしたイメージをFARGATEで使おうとした時の'exec user process caused: exec format error' の対処法
- 20. キャッシュの実装(AWS Memcachedの実行環境の構築)
【Swift×AWS】iOSアプリにAPI Gatewayを導入してCognitoから指定のユーザーデータを消去する
## 前提
ユーザーの退会機能を作るべく、今までAmplifyを使用していたアプリにAPI Gatewayを追加したサーバレスアプリです。
Amplifyからユーザーの削除APIがあればよかったのですが見つからずで、Lambdaから実現することに。(もしAmplifyからのやり方を知っている人がいたら教えてください笑)
元々はLambdaが使えれば良く、どうやらLambdaを直叩きする方法もあるっぽいんですが、API Gatewayを触ったことがなかったのでそちらを使って実装してみることにしました。
また、今回初めてAPI Gatewayを触るので、とりあえずリクエストだけ実装してレスポンスはデフォルトです。
実装が甘いところ等もあると思いますがご容赦ください。## 構成
構成はこんな感じ。これをAlamofireを使って叩いていきます。![Untitled Diagram.drawio (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/653537/f13f392c-f203-42da-4
AWS認定試験 DevOps Engineer Professional (DOP) 合格記 〜学習期間2週間、模擬試験スコア56%でも合格できました〜
2021/12/30 に [AWS Certified DevOps Engineer – Professional (DOP)](https://aws.amazon.com/jp/certification/certified-devops-engineer-professional/) を受けて合格したので、僭越ながら体験記を記しておきます。
なお、この記事の目的は「模擬試験スコアが大きく下回っていても合格できるんだ」ということを知ってもらい、合格を目指す皆さんに勇気を与えられれば、というものです。
## スコア
852/1000 でした。
合格ラインが 750 だったので、学習期間や模擬試験結果を考慮するとまずまずの結果だったと思います。## 前提スペック
AWS 歴は 3~4 年くらいです。
ちょうど自分が中心メンバーとなってサーバレスアプリケーションを設計・開発・リリースした経験があり、なんとなく DevOps の概念がわかってきたかなーくらいのレベルです。
ただしほとんどの期間はサーバレスアプリケーションの開発に携わっていたため、知識がだいぶ偏っています。
(
SageMakerへのscikit-learnモデルのデプロイメント
[scikit\-learn model deployment on SageMaker \| Databricks on AWS](https://docs.databricks.com/applications/mlflow/scikit-learn-model-deployment-on-sagemaker.html) [2021/3/22時点]の翻訳です。
:::note warn
本書は抄訳であり内容の正確性を保証するものではありません。正確な内容に関しては原文を参照ください。
:::このノートブックでは[scikit\-learnモデルのトレーニング、scikit\-learnフォーマットでの保存](https://qiita.com/taka_yayoi/items/093f68cb0983cf683647)で説明されている糖尿病データセットでトレーニングしたElasticNetモデルを使用します。このノートブックでは以下を説明しています。
– MLflowエクスペリメントUIを用いてデプロイするモデルを選択。
– MLflow APIを用いてSageMakerに
機械学習モデルをSageMakerにデプロイするのためのAWS認証設定のセットアップ
[Set up AWS authentication for SageMaker deployment \| Databricks on AWS](https://docs.databricks.com/administration-guide/cloud-configurations/aws/sagemaker.html) [2021/3/17時点]の翻訳です。
:::note warn
本書は抄訳であり内容の正確性を保証するものではありません。正確な内容に関しては原文を参照ください。
:::本書では、[MLflowモデル](https://qiita.com/taka_yayoi/items/e265d48a3e3473edd1b6)をAWS SageMakerにデプロイするために、どのようにインスタンスプロファイルをセットアップするのかを説明します。ここで用いるIAMロールと同様のアクセス権をAWSユーザーのアクセスキーで設定することは可能ですが、SageMakerにデプロイするクラスターにアクセス権を設定する際には[インスタンスプロファイル](https://qiita.
AWS WAFの公開設定を色々とためしてみた
![img](https://day-journal.com/memo/images/logo/aws/waf.png)
### AWS WAFの公開設定を色々とためしてみました :tada:
事前準備
– Amazon CloudFrontとAmazon S3を組み合わせて公開
[Amazon CloudFront #001 – Amazon S3と組み合わせて公開](https://day-journal.com/memo/amazon-cloudfront-001)## Amazon CloudFrontと組み合わせた公開
AWS WAFとAmazon CloudFrontを組み合わせて公開する方法です。
AWSコンソール → WAF & Shieldをクリック。
![img](https://day-journal.com/memo/images/aws-waf-001_01.png)「Create web ACL」をクリック。
![img](https://day-journal.com/memo/images/aws-w
面倒なEC2インスタンスssh接続を超速で行えるようにした
# 目的
ec2のインスタンスにログインする時に、特に久しぶりだとコマンドを忘れたり、覚えていてもパブリックDNS探すのが面倒だったり、そもそもこの長いコマンドを打つのが嫌だった。。。“`
$ ssh -iec2-user@
“`まさかこれを簡単にする方法があるとは知らなかった。
# 前提
– EC2インスタンスを起動済み
– ElasticIPをそのインスタンスにアタッチ済み# 概要
# .sshディレクトリ を作成し、権限を付与する
“`bash
$ mkdir ~/.ssh
# 所有者に全ての権限を与える
$ chmod 700 ~/.ssh
“`# key.pemを.sshディレクトリに移動し、権限を付与する
EC2インスタンス起動時にダウンロードした自分のキーをkey.pemに置き換えること。
所有者にread権限のみ与える。“`bash
$ mv key.pem ~/.ssh
$ chmod 400 ~/.ssh/key.pem
“`# configにSSH接続情報を登録しておく
conf
Amazon Forecastを試してみる
## Amazon Forecastとは
– Amazon Forecastは、機械学習を使用して精度の高い予測を行う完全マネージド型のサービス### 検証データ内容
– 日別の予約数(っぽいもの)を記録したCSVを作成し、Forecastに読み込ませて予測を行ってみる
– 作成したCSVはS3においておく
– 項目は店舗ID、予約日付、予約数
– 2020/11/1から2020/1/31までの3ヶ月分のデータ(92行)
– 土日祝日は予約数多め、平日だと比較的火曜日が多い。予約数は増加傾向を示している。というデータとなっている
– このデータを使って2月の予約数の予測を算出してもらおう### 検証データ項目
– item_id
– Forecastで必須の項目
– ディメンション(○○別に見るといった分析軸を示すもの
– 店舗IDを当てはめる
– timestamp
– Forecastで必須の項目
– 時間軸を示す
– yyyy-MM-dd(日単位)
– 予約日付を当てはめる
– target_value
AWS Organizations 内のアカウントリストを組織構造と一緒に csv 出力する
## はじめに
AWS Organizations でマルチアカウント管理していると、アカウントの一覧を定期的に取得したいときはありませんか?アカウント情報だけではなく、所属する OU の情報も一緒に出力する方法を紹介します。
## 実はコンソールから csv をダウンロードできる
コンソール上でも通知が出ているように、最近組織内のアカウントリストを csv 出力することができるようになりました。アクションから「アカウントリストをエクスポート」でダウンロード可能です。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125105/1333de19-3353-0d66-e9af-375ee8c6ba97.png)
これはこれでとても便利なのですが、2022年1月時点では以下の問題があります。
### コンソールからしかダウンロードできない
AWS CLI や SDK 経由でダウンロードができないため、定期的に取得したいといったケースでは自動化が困難です。以下のドキュメントに記載が
チャットからLambda関数の実行を予約する
#はじめに
LINEからLambda関数の指定時刻実行を予約したかったのでLambda関数を作成しました。#つくるもの
###イメージ
![訓練時.drawio (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2457109/4e3230bb-7a9b-559f-befb-7b9a711ebe3d.png)* LINEから受け取ったメッセージを基にLambdaでboto3を実行し、指定のLambda関数を実行予約するEventBridgeルールを作成します。
* 定期実行ではないため実行予約1つにつき1つのEventBridgeルールを作成します。
* ルール名は<Lambda関数名-実行時間>とし、この関数から作成された事を示すためのTagと実行時刻(UTC)Tagを付与します。
* Tagを参照しこの関数から作成されたEventBridgeルールの中で、実行済みのEventBridgeルールをチャットから一括削除出来るようにします。
* 実行対象に取れる関数のリージョンは1つのみです(
ECSでコンテナ実行メモ その2
## 概要
[前回の記事](https://qiita.com/dmikita/items/745b44b80bd34b8d9d57)の後ECSでコンテナを動かそうとしましたが、`Essential container in task exited` のメッセージがでてうまくコンテナが起動できず、また[こちら](https://matsuand.github.io/docs.docker.jp.onthefly/get-started/02_our_app/)のアプリを使って構築してみようとしましたが、同様にうまくいかなかったので、まずは[こちら](https://dev.classmethod.jp/articles/amazon-ecs-entrance-1/)を参考にECSでコンテナを動かすところだけをまとめてみました。
## タスク定義登録
* まずタスク定義を登録します。ここで使用するコンテナのイメージなどを設定します。AWSコンテナ設計・構築入門 のほうではFARGATEで作成していますが、今回はEC2で実施します。![タスク_0.png](https://qii
AWS の EC2 上にJenkinsをインストールする
初投稿となりますので、つたない部分はご容赦ください。
以下タイトルを実現するまでの手順です。#EC2インスタンスの作成
* EC2インスタンスを作成します。私は以下のパラメータで設定しました。
* リージョン:東京
* AMI:Amazon Linux 2 AMI (HVM) – Kernel 5.10, SSD Volume Type – ami-03d79d440297083e3 (64 ビット x86) / ami-0feb52c8d51bafff6 (64 ビット Arm)
* インスタンスタイプ:t2.micro
* セキュリティグループ(インバウンドルール):ssh22番、カスタムTCP8080を指定#JDK8のインストール
1. 以下のコマンドを実行$ sudo yum install java-1.8.0-openjdk-devel.x86_642. 以下のコマンドでインストールが成功したか確認
$ java -version#Jenkinsのインストール
1. yum のリポジトリを追加
Amazon Connect と、LambdaやLexとの連携方法
#はじめに
下記のような構成で、connectのシステムを構築した際、
お問い合わせフローから、LambdaやLexを使用する際のパラメータの渡し方などのまとめます。パラメータを`問い合わせ属性`と呼びます。
>Amazon Connectでは、顧客とのやり取りはそれぞれ問い合わせ として処理されます。やり取りには、音声通話、チャット、または Amazon Lex ボットを使用した自動的な対話があります。
各問い合わせは、特定のやり取りに固有の、いくつかのデータを保持することができます。このデータは、問い合わせ属性としてアクセスされます。
例:
- 顧客の名前。
- エージェントの名前
- 電話やチャットなど、問い合わせに使用されるチャネル
- その他![スクリーンショット 2022-01-30 18.01.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/988747/b63d3fb3-8a3b-7ace-2fe4-82400f4d9b26.png)
#Connectのお問い合わせフロ
Storagegateway用のEC2にSSHログインできない意外な見落とし
Stogtagegateway作成の際にEC2インスタンスを作成するケースがしばしばあります。
その際にEC2インスタンスでは以下のAMIで作成します
AMI ID: aws-storage-gateway-1637946823
このAMIでEC2を作成してSSHログインしてみると・・・![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/969819/616c646b-74e1-7c52-28d6-c9e851d38c59.png)
あれれ・・・認証に失敗した・・・
疎通はしているし、EC2の秘密鍵は正しいし・・・あ・・・ユーザー名がおかしい・・・?ということでドキュメントを確認してみると・・・・
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/969819/4e691650-8f49-55ee-8562-9bb980d909c7.png)ユーザーがadminじゃないですかああああ
Kubernetes初心者がAWSを活用してコンテナ入門ハンズオンやってみた
職場で上記の勉強会を企画してみることにしたので、参加者むけの手順書を兼ねてやり方を残しておきます。
# はじめに
こんな人向けのハンズオンです。- コンテナって興味あるけど自分で触ったことないからイメージわかない
- Kubernetesに入門してみたい必要なものは以下です。
- PC:Win/Mac両対応。会社の業務OA端末(制限付きWindows)でも問題なし。
- AWSアカウントとIAMユーザー:社内向けにはわたしの方で用意しました。# その1:ブラウザーでAWSログインして操作端末を起動
まずはウェブブラウザー(ChromeもしくはEdge推奨)を起動し、AWSの管理画面(マネジメントコンソール)にアクセスしてIAMユーザーでログインします。
※ 社内向けにはログイン用のURLとIAMユーザー認証情報を別紙でお渡しします。
![スクリーンショット 2022-01-30 8.04.23a.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1633856/cca64d1a-5ee
AWS未経験でも1ヵ月でSAAに合格する方法
#はじめに
この記事はこんな方におすすめです。- AWSの基礎的な知識を身につけたい
- AWS認定資格を短期間で取得したい
- AWSを仕事で活かしたい
- 少しでも周りに差をつけたいそんなあなたへエンジニア歴6ヵ月、AWSも未経験だった私が1ヵ月でSAAに受かった方法を伝授します!
##まずは結論
短期間で合格するには、「全体像を掴んでからとにかく問題を解く」がなにより近道です。ゼロベースから問題だけ解きまくっても一番大事な全体像が見えず迷走してしまいます。AWSサービスが解決する課題はどういうものなのか、またそれをどうやって解決しているのか、おおざっぱでいいので全体像を掴んでみてください。そこから問題に取り掛かることではるかに効率的な勉強ができます。
##全体像の把握
先も述べましたが、全体像の把握は効率的な勉強をする上でとても大事になります。
2週間もあれば1冊は確実に読めると思いますので、頑張って読んでみてください。以下の本が個人的にはおすすめです。これ一冊読めばSAAは問題ないので安心してください。
[(模擬問題付き)改訂新版 徹底攻略 AWS認定 ソ
【AWS認定クラウドプラクティショナー資格】⑩全章の要点まとめ
#はじめに
AWSクラウドプラクティショナー資格を取りたいと、1月からちょっとずつ勉強を始めました。
今回は、『AWS認定資格試験テキスト AWS認定クラウドプラクティショナー』で勉強した内容について、要点を箇条書きでまとめております。
AWS資格試験の参考にしていただければと思います。
##参考書籍
※ [『AWS認定資格試験テキスト AWS認定クラウドプラクティショナー』](https://www.amazon.co.jp/gp/product/B07QX45RXM/ref=as_li_tl?ie=UTF8&camp=247&creative=1211&creativeASIN=B07QX45RXM&linkCode=as2&tag=itabashitat0a-22&linkId=9598d51e51c3843f7a25a61ef3b45475)
本記事は、本書の第2章から第10章に相当## 項目
1. AWSクラウドの概念
2. AWSのセキュリティ
3. AWSのテクノロジー
4. AWSのコンピューティングサービス
5. ストレージサービス
6. ネットワーク
EC2起動時に、自信を監視するCW Alarmを、EC2がTerminateされる際に一緒に削除する
## 始めに
以前、以下の記事で書いたように、EC2起動時に自信を監視するCW AlarmをUserdata使用で作成しました。
https://qiita.com/namely_/items/bbe02769c4fbe6114655今回は、それの延長で、EC2が終了される前にCW Alarmも一緒に削除する仕組みを作りました。
起動時にはUserdataで仕込むことができますが、終了時にはそういったオプションはないと思うので、Systemdを活用しました。## Shell
```sh
# Service 作成
sudo vi dele.service-------
[Unit]
## 説明
Description=delete
## shutdownされる前に実行
Before=shutdown.target[Service]
## シングルジョブを行い終了する
Type=oneshot
## systemd はプロセスが終了した後もサービスがアクティブだとみなす。
## この設定が今回必要だったかは不明
RemainAfterExit=true
## 終了時の
【AWS】Go Lambdaのローカル開発環境を作る ( aws-sam-cli + M1mac )
# はじめに
`aws-sam-cli`を利用すれば、手元の端末内にLambdaの実行環境を再現して、動作検証できる。
手元でコードを修正しながらその場で動作確認できるため、ディプロイの手間とLambdaの費用を削減できる。
nodejsとpythonの導入手順は多い中、Golangのドキュメントが少ないように感じたため、ここで纏める。### やること
* 開発用にarm版Golangをローカル環境にインストールする
* `aws-sam-cli`でローカル環境にLambdaとAPIGatewayを構築する### 前提
* arm版(M1チップ)の`macOS`環境をベースに説明する (goenv導入部分以外は大差ないはず)
* Z shell (zsh) をベースに説明する (環境変数の通し方以外は大差ないはず)
* Dockerは既にインストールしてあるものとして説明する# もくじ
1. Golangをセットアップする
* aws-sam-cliをセットアップする
* ローカル環境でLambdaを起動する# 1. Golangをセットアップする
#
M1 MacでビルドしたイメージをFARGATEで使おうとした時の'exec user process caused: exec format error' の対処法
# exec user process caused: exec format error
M1 MacでビルドしてECRにプッシュしたnodejsのイメージをタスク定義に使用してFARGATEでコンテナを立ち上げようとしたところ、このエラーに遭遇。
#解決法
ローカルでイメージをビルドする時のコマンドを以下に変更することで問題なくFARGATEでコンテナを立ち上げることができた。```shell
docker buildx build --platform=linux/amd64 -t.
```
#参考
FARGATEがおそらくIntel x86-64 アーキテクチャの上で動いているのに対して、M1MacがARMアーキテクチャの上で動いているのが問題。https://stackoverflow.com/questions/67361936/exec-user-process-caused-exec-format-error-in-aws-fargate-service
キャッシュの実装(AWS Memcachedの実行環境の構築)
## はじめに
Amazon ElastiCache for Memcachedを利用した値の取得について記載します。
実行環境は以下となります。![001.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/322881/85a7c1c6-702d-e32f-4edc-d9b9f09f1ab8.png)
また、それぞれのセキュリティグループのインバウンド許可は以下になっています。
|AWSサービス|利用用途|
|:--|:--|:--|
|EC2|User側から5000番ポート(アプリがflaskのため)の許可, Cloud9から22番ポートの許可(アプリ配置のため)|
|RDS|EC2,Cloud9の割り当てたセキュリティグループから3306番ポートの許可|
|Memcached|EC2,Cloud9から11211番ポートの許可|
|Cloud9|デフォルト|## 各AWSリソースの作成
各AWSリソースの作成と設定についてを記載します。
EC2,RDS,Cloud9については、一般的な