AWS関連のことを調べてみた2022年05月10日

AWS関連のことを調べてみた2022年05月10日
目次

【AWS】Elastic Beanstalkで作成されたS3バケットを削除する場合の注意点

## はじめに
検証でAWS ElasticBeanstalkでアプリを立てた後、整理のため削除した。
S3を確認したところバケットも作成されていたので、削除したところ、アクセス権限がないため削除できなかった。
改めてElasticBeanstalkの作成プロセスを理解するために備忘録として残しておきます。
![スクリーンショット 2022-05-10 9.39.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/478546/9e5e9820-ed9c-87e5-161c-5ea11de75461.png)

## 結論
S3バケットが作成されていることを知らなかったのが原因でした。
ちゃんと作成プロセスを把握しよう。

## ElasticBeanstalkの作成プロセス
[公式ドキュメント](https://docs.aws.amazon.com/ja_jp/ja_jp/elasticbeanstalk/latest/dg/AWSHowTo.S3.html)の記載によると、ElasticBeans

元記事を表示

Terraform でクロスアカウントのCodePipeline を最小権限で構築する

# はじめに
クロスアカウトのCodePipeline の構築で、各サービスのロールのIAMポリシーやリソースベースポリシーを最小権限で実装しようとした場合、アカウント間のアクセス制御を、公式のユーザーガイドだけで理解して実装するのは少し難しいのかなと思います。(自分は、詰まりました。)

本記事では、クロスアカウントのCodePipeline を最小権限で構築するTerraform のコードとそのパイプライン(ビルドまで。)を図示してみましたので、参考までに、サンプルとして共有しますので、理解する手助けになればと思います。
また、補足として、アカウント間のアクセスを制御している各サービスのロールのIAM ポリシーやリソースベースポリシーについて、簡単に説明をしています。

# Terraform で構築する全体構成図
![cross-account-codepipeline_全体構成図.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/283246/7483a844-77b0-5eef-ea8e-2504

元記事を表示

【初心者】特徴量エンジニアリングについて調べてみた

# 背景・目的
私は、現在データエンジニアリングを生業としています。普段は、データ基盤の構築や、パフォーマンスチューニングなどビックデータに関する業務に従事しています。
ビックデータの収集や、蓄積、分析などの環境構築の経験はそこそこありますが、機械学習による予測や分類などのスキルは持ち合わせていませんでした。
今まで機械学習を避け続けてきましたが、一念発起し学ぼうと思います。

学び方としては、AWS Certified Machine Learning – Specialty(以降、ML試験という。)の勉強を通して、理解を深めていきます。
ML試験のガイドの第2分野に、探索的データ解析が登場しましたのでそこから学びたいと思います。

過去に以下について、学習を進めてきました。今回は特徴量エンジニアリングについて学びたいと思います。

– 2.探索的データ分析関連
– 2.1.モデリング用のデータをサニタイズおよび準備する
– [【初心者】探索的データ解析とは何かを調べてみた](https://qiita.com/zumax/items/52c97307bf18f407bb6e

元記事を表示

AWS認定 機械学習 – 専門知識(MLS):合格への近道

# AWS認定 機械学習 – 専門知識(MLS)の合格に向けて、下記の通り対策すれば必ず合格できます!
まず初めに「1」に取り掛かってから、「2」「3」を同時並行で進めてください。
いきなり、「2」「3」から取り掛かると、わけがわからず挫折する可能性があります。

※機械学習経験済みのデータサイエンティストの方は「1」を飛ばして、「2」「3」で合格できます。

[1. 機械学習の参考書を一つ読み込む](#1-機械学習の参考書を一つ読み込む)
[2. 問題集を解く](#2-問題集を解く)
[3. AWSサービスや機械学習の意味を理解する](#3-awsサービスや機械学習の意味を理解する)

# 1. 機械学習の参考書を一つ読み込む

**書籍:「Pythonではじめる機械学習 ―scikit-learnで学ぶ特徴量エンジニアリングと機械学習の基礎」**
Pythonと書いてありますが、読書として活用できます!
**1〜5章を読んでください。**
Pythonを理解する必要はなく、ざっくりこういうことをしている程度の理解で大丈夫です。
逆に簡単すぎる機械学習の書籍を読むと、理解に苦労する場

元記事を表示

API Gateway+LambdaのAPI実行時にMissing Authentication Tokenとなった場合の確認観点

## はじめに
API Gateway + LambdaでAPIを作成して、アクセスした際にタイトルのエラーが発生したので、その際の確認観点を記載します。

## エラー内容
– ステータスコード: 403
– エラーメッセージ: Missing Authentication Token

## 試したこと
### Missing Authentication Tokenで検索
– 認証情報周りは特に問題なさそうでした。

### 403のステータスコードの意味を検索
ウィキペディアによると、以下と書いてあります。

> ページが存在するものの、特定のアクセス者にページを表示する権限が付与されず、アクセスが拒否されたことを示すもの。また、サイトの制作者側の設計ミスによる障害やサイトが非常に混雑している時、URLが間違っている場合にも表示されることがある。

Ref:https://ja.wikipedia.org/wiki/HTTP_403

> URLが間違っている場合にも表示されることがある。

とあったので、この観点で確認してみました。

## 原因
– 上記の通り、APIのエン

元記事を表示

【AWS】1か月でAWS ANSに合格した話(2022/05/09投稿)


# 目次

1. [はじめに](#はじめに)
1. [必要な前提知識](#必要な前提知識)
1. [使用した教材](#使用した教材)
1. [勉強方法](#勉強方法)
1. [苦労したこと](#苦労したこと)
1. [さいごに](#さいごに)

# はじめに
タイトルの通り、AWS ANSに合格したので勉強法を記事にします。
普段の仕事でRoute53,DirectConnectを触ることがあまりないので非常に勉強になりましたし、楽しかった!
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2615865/5f92b120-8bc5-f950-578e-f4d1a9051f8a.png)

# 必要な前提知識
この試験ではDirrectConnectを使用したハイブリッドな構成に関して問われることが多いですが、それに次いで名前解決に関する設問も多い印象でした。
以下はANS勉強前にある程度前提知識として押さえ

元記事を表示

AWS Lambda Powertoolsで実現する快適Lambda生活

# TL:DR
AWSでサーバレス開発を初めて早1年強、毎回関数コードにLoggerやX-Rayのコードを埋め込むのに疲れ始めていました。
そんな折に発見したLambda Powertools(Python)が非常にお手軽かつ便利そうだったので使ってみました。

# AWS Lambda Powertoolsって何?
[GitHubのProject](https://github.com/awslabs/aws-lambda-powertools-python)より引用
> A suite of Python utilities for AWS Lambda functions to ease adopting best practices such as tracing, structured logging, custom metrics, and more. (AWS Lambda Powertools Java and Typescript is also available).

上記からも分かるように、Lambda関数実行時のトレーシング、ロギングをベストプラクティスに沿う

元記事を表示

AWS セキュリティグループに関して

AWSの勉強を始めて、頻繁に出てくるセキュリティグループに関して、毎度これって何の為にあるんだっけという衝動に駆られることがあったので、ここらへんで1回まとめてみたいと思い記事を書いてみてることにしました。
記事の内容としては基本的なことしか記載しておりませんので、初学者向けと思って読んで頂けると幸いです。

## セキュリティグループの役割とは?

セキュリティグループとはAWS側で提供されている仮想ファイアウォール機能のことで、
VPC上の通信(トラフィック)を制御する為に使用されます。代表的なものとして、
EC2インスタンスやRDS設置の際に適用することで、外部からのアクセスを制限したりといったことが行えます。

## セキュリティグループの設定方法

ここではRDS用のセキュリティグループを例にとって、一つ設定してみたいと思います。
前提としてMYSQLを使用し、WEBサーバーからのアクセスのみを許可するといった仕様で進めて行きます。
下記が実際の設定画面になります。
(EC2のダッシュボードから、ネットワーク & セキュリティ欄の1番上のセキュリティグループをクリック)
![

元記事を表示

PythonでLambdaを作るときのメモ

## はじめに

PythonでLambdaを書くときに自分が意識している内容をアウトプットします。
とりあえずLambdaは使ったことあるよ、という人には1歩進んだネタが提供できるんじゃないかと思います。

## 開発環境

Lambdaの作成はローカルで行います。

マネジメントコンソール上でもコードを入力して作成できますが、

– Git等のバージョン管理が行われず変更差分を追跡できない
– ユニットテストが行われずソースコードの変更による影響範囲が予測できない

こういった理由で運用時の負債を残してしまう可能性が高いです。

Lambdaと他のAWSリソースとの接続を確認するためにマネジメントコンソール上から動作確認をするケースもあるかと思います。
そういった場合は以降の項で触れるモックを使ったテストを行えばAWS上のリソースを使わなくてもほとんどのAWSリソースとの接続を確認できます。

ローカルでLambdaを作成するにあたって、仮想環境とIaCの設定方法について説明します。

### 仮想環境(pipenv)

仮想環境はpipenvを使って作成します。

元記事を表示

Fargateについて学んだことをまとめてみた。

こんにちは、k_ukiです。「AWSではじめるクラウド開発入門」の7章を進めている際にFargateという機能について学びました。今回は、そのFargateについてまとめていきます。
## Fargateとは?
FargateはECSの管理下にあるクラスターの中で計算を行う仕組みのことです。
クラスター内で計算を行う実態としてFargateの他にEC2が挙げられますが、FargateはECSの利用に特化した設計となっています。

## EC2との違い
 EC2との大きな違いとしてFargateは物理的な実態を持っていないという点が挙げられます。そのため、何か新しいソフトウェアをインストールするといったこともできません。Fargateは物理的な実態を持たない代わりにDockerなどのコンテナを用いて計算タスクを実行します。

 Fargateを用いることでEC2よりも容易にスケーリングなどの設定やプログラムを構築することができます。

 また、EC2インスタンスを用いて計算タスクを実行する場合、コンテナを実行するためのdocker engineやインスタンスの

元記事を表示

【初心者でも無料でHTTPS化したい!!!】Certbotを用いて実装【画像つき】

# この記事でわかること
HTTPでのデプロイ後Certbotを用いた無料でのHTTPS取得方法を解説します!
独学やスクールでの初学者に向けて丁寧に解説していきます。

参考にしていただけると幸いです^^
また間違っているところがあればご教授お願いします

# 環境
Ruby 2.6.3
Rails 5.2.6
本番環境 nginx/Puma/Amazon Linux2/AWS EC2/MySQL

___※CertbotはAmazon Linuxでは動作しません
Amazon Linux2を使用している場合のみ実装できます___

# 目次
1. EC2にHTTPSを追加する
1. nginxのconfファイルを編集
1. railsのconfigファイルを編集
1. Certbotの実装
1. 自動更新のcronを設定する

# 解説
### 1.EC2にHTTPSを追加する

AWSにログインしEC2を開いて、
インスタンスID > セキュリティ > セキュリティグループの順に進みます。

![C9F6DDB3-7B9F-4E53-B85F-FF5FB7D83440_1_201

元記事を表示

AWS認定資格の取得への道

## 資格取得しようと思った背景
 - 業務でAWSを触れる機会が増えた。
 - AWSを知ることで開発の幅が広がりそう。

## これまで受験したAWS認定資格
 - **AWS Certified Solutions Architect – Associate**
 - **AWS Certified Developer – Associate**
 - **AWS Certified SysOps Administrator – Associate**

## 勉強方法
– 書籍
[AWS認定資格試験テキスト AWS認定ソリューションアーキテクト – アソシエイト 改訂第2版](https://www.amazon.co.jp/AWS-E8-AA-8D-E5-AE-9A-E8-B3-87-E6-A0-BC-E8-A9-A6-E9-A8-93-E3-83-86-E3-82-AD-E3-82-B9-E3-83-88-AWS-E/dp/4815607389/ref=dp_ob_title_bk “AWS認定資格試験テキスト AWS認定ソリューションアーキテクト – アソシエイト 改訂第

元記事を表示

【AWSハンズオン】サーバーレスクラウドを利用してSNSアプリを実装する。

こんにちは、k_ukiです。
現在、「AWSではじめるクラウド開発入門」という書籍の12章を進めています。
ここでは、10章,11章で学習したサーバレスクラウド(Lambda,S3,DynamoDB)を使用し、シンプルなWebアプリを実装するという内容でした。今回のハンズオンで学んだことをここにまとめていきます。

## アプリの説明
### アプリの概要
利用者が考えて作った俳句を投稿し、ユーザがいいねできるようなSNSアプリです。
また、アプリ名を”Bashoutter”としています。
機能要件は以下の通りです。
– 俳句の一覧を取得
– 俳句を新規投稿する。
– 俳句にお気に入り表を一つ入れる
– 俳句を削除する
### API

上記の機能要件を満たすための最小限の設計として4つのREST APIを実装しています。

GET/haiku 俳句の一覧を取得
POST/haiku 俳句を新規投稿する。
PATCH/haiku/{ite

NFCを用いて入室管理システムの作成備忘録Ver1.0

# システム作成の経緯
先日メリカリを閲覧していたところ、「Sony Corporation©︎ RC-S330」を格安で入手することができました。
そこで、NFCを用いて遊んでみようと思い入室管理システムの開発を行いました。
※今購入するのであれば、「Sony Corporation©︎ RC-S380S」が最新モデルなのでこちらを買うと良いと思います。

# 開発環境
* OS : macOS Monterey12.2.1(Intel Mac)
* リーダ : Sony CorporationRC-S330
* 言語 : Python3.10.0
* DB : AWS RDS(MySQLを使用)

# 搭載する機能の決定
入退室管理システムで必要な機能をまとめました。
1. 新規登録機能(ICカードの情報と名前等を登録する機能)
2. 削除機能(ユーザーの削除を行う機能)
3. 入退室記録(何時にどこに入退室したのか)

まずはシンプルに基本機能である上記3点の機能を実装することとします。

# システム構成図 & システムフロー

1. 新規登録機能のシステムフロ

自社サービス「病院なび」へ AWS Opensearch を導入したい

はじめまして。「[病院なび](https://byoinnavi.jp/)」の開発チームメンバー甘利です。
国内最大級の病院検索サービス「病院なび」の改善にRailsエンジニアとして日々挑み続けております。現在 AWS Opensearch の導入を業務いて行なっています。少しずつ共有して行けたらと思っています。(※ この記事に具体的な手順等は含まれていません)

# 概要
 自社サービスの 「病院なび」 に AWS Opensearch を導入するにあたり ”使いやすい仕組み” を目指して色々考えていきたいと思っています。「病院なび」 は主に Ruby on Railsで開発されていますので、便利な Gem で楽な実装ができると考えていました。ところが、AWS Elasticsearch から AWS Opensearch に変更になってしまい、巷にあるGemがそのまま使えなくなってしまい、楽ができなくなってしまいました orz。
 現状、Opensearch を Rails から利用する際の選択肢として”公式コミュニティが公開している Ruby 用クライアントの利用”が比較的楽で

AWS practitionerに一週間で合格するには

私はこれをやってPASSしました。
本番より難しめ。
本番が簡単に感じるはず。

書籍名

AWS Certified Cloud Practitioner Practice Tests 2022: 390 AWS Practice Exam Questions with Answers, Links & detailed Explanations (English Edition)

aws cliの”default”を名前変更&変更後のprofileをデフォルトにする方法

複数アカウントで運用していると、
– いちいち`–profile`で指定するのは面倒くさい
– どれがデフォルトなのか分かりにくい

と思い、`default`という名前を持たないようにしたいと思った。
gcloudでも全てに名前つけてactivateで切り替えているので

# 名前を変更するコマンドはない

結論から言うとファイルをいじる。
`.aws/`にある`/credentials`と`config`を開いて`[default]`となっている部分を`YOUR_FAVORITE_NAME`と手打ちで変更。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1984110/e35821fe-77af-6b21-2bd1-77c39b3db8eb.png)

それからWindowsでは
“`bat
set AWS_DEFAULT_PROFILE YOUR_FAVORITE_NAME
“`
Linux系なら
“`bash
$ export AWS_DEFAULT_PROFILE=YO

Amazon CloudWatch Logs でログを読むための手法メモ

Amazon CloudWatch Logs でログを読むために学んだ手法をいくつかメモします。
あまり高度な機能は利用せず、ECS や Lambda をほぼデフォルト設定で使って出力されたログを調査するような想定です。

# 前提となる概念について

CloudWatch でログを読む際には「ログイベント」、「ログストリーム」、「ロググループ」の概念について意味を理解している必要があります。

下記のドキュメントを引用しつつ、ごく簡単に各概念を説明します。

https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/logs/CloudWatchLogsConcepts.html

## ログイベント

> ログイベントは、モニタリングされているアプリケーションまたはリソースによって記録されたアクティビティのレコードです。

![ログイベント](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273742/1b652c66-c7b5-f818-a898

検証用AWSアカウントでGuardDutyと闘う話 〜不用意にポート開けるな編〜

# はじめに

前回の話: [検証用AWSアカウントでGuardDutyと闘う話 〜S3バケット編〜](https://qiita.com/kikeyama/items/8582e015f4bd6e5c57da)

2021年師走、街はクリスマスのイルミネーションが点灯し、世間は年越しに向けてせわしなくなり始めたある日、1通のSlack DMが届いた。

例の如くインシデントレスポンスからだった。

英語のメッセージだったが、要約するとこう↓いうことである。

> お前のインスタンスがポートスキャンされて8089ポートにアクセスされたぞ。なんでこんなポート開けてるんだ?とりあえずインスタンス止めといたンだわ

あーやっちまったかな、と思いつつGuardDutyを確認すると、確かに某国から `8089` で**Port Probing**を検知したとのイベントが上がっていた。

# なぜ8089ポートを開けていたのか?

**結論**:ただの不注意

検証用にSplunkのインスタンスを立てて、あろうことか管理用ポート8089を `0.0.0.0/0` に開けてしまっていたのである。

ポートフォリオ作成の過程で学んだ技術を振り返る ~Webサーバ構築編~

# はじめに
Javaのポートフォリオ作成の過程でWebサーバを構築する必要があり、リバースプロキシからSSL証明書の設定,取得までの手順をまとめました。自身の備忘録として、linuxコマンドやオプションの意味も一部まとめております。

# 前提
AWSにて、以下の環境が構築されている前提で話を進めます。ドメインを取得し、Route53にDNSレコードを設定済みです。
EC2にはnginxをインストールしているだけになります。この状態からtomcatをインストールし、リバースプロキシ、ssl証明書の取得,設定を行っていきます。
![sample.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2448205/2b0deb72-34d9-3824-6698-0117b0997e48.jpeg)
こちらのサイトを参考に、tomcatのインストールを行いました。

https://tech.pjin.jp/blog/2019/10/02/ec2_corretto11_02/

## nginx
オープンソースな