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

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

AWS Cloud9を使ってみた※編集中

本記事はAWS Cloud9の学習を始めた筆者が、備忘録として残したい内容を記述します。

■AWSアカウント作成
リンクよりAWSアカウント作成を行う。
https://aws.amazon.com/jp/register-flow/

■Cloud9環境作成
AWSマネジメントコンソールにサインインし、画面上部より「cloud9」を検索する。

「Create environment」をクリック

設定を確認し「Create environment」をクリック

■Pythonを最新にアップデート
既定のバージョン:Python 3.7.10
最新バージョン:Python 3.10.4

アップデートはこの記事を参考した。
(https://qiita.com/wa_0a/items/cf8fad294d74938c80ec)

元記事を表示

Route53

追記予定

元記事を表示

AWS CDKをDenoで動かす3 デプロイ編

https://qiita.com/rinfield/items/49b89005678da188c214

https://qiita.com/rinfield/items/5496e7d1884a9d4593da

の続きでDenoでCDKを動かしていきます

## 要約
– CDKコードがDenoだったとしてもちゃんとAWSにデプロイできる(CDK CLIがnodeだけど)

## synth以外はどうなんだ?

これまで`cdk synth`は試していましたが実際のAWS環境に対する変更はしていませんでした。
`cdk.out`がキチンと出力されている上、CDK CLIは依然nodeで動作しているので動くかと予想していますが念のため確認します。

前提として`aws configure`を済ませておきます。

デプロイするコードはこちら

https://github.com/rinfield/cdk-deno/tree/192182bffe063e5cb7a8d78cb97f533291b2319f

### cdk bootstrap
“`console
$ cdk b

元記事を表示

【AWS】関数URLを利用して外部からLambda関数を呼び出す

# 1.はじめに
どうも、ARIの名古屋支社に勤務している愛知県民です♪
(/・ω・)/

2022年4月6日にLambda関数に「関数URL」という機能が追加されたようです。

https://aws.amazon.com/jp/about-aws/whats-new/2022/04/aws-lambda-function-urls-built-in-https-endpoints/

一言でいうと、API Gatewayの設定なしで外部からLambda関数を呼べるみたいです!
そこで今回は**Lambda関数の関数URLの使い方を説明したいと思います♪**
AWSについて勉強中の方の参考になれば幸いです。
(*^^)v

# 2.用語の説明
## 2.1.Lambdaとは
LambdaとはAWSのサービスの1つで、コードを書くだけで即実行ができるサービスのことです。
サーバの設定等が不要なため、便利です。

ただし、15分以上続けて実行することはできないため、
複雑なアプリケーションの場合はEC2やECRでの実行が必要となります。

# 3.前提条件
* Lambda関数が作成済で

元記事を表示

EC2とRDSでバックエンド環境を構築してみた

[こちらの記事](https://qiita.com/t-tysm/items/2fe4d878d8cfeecd9107)の続きです。

今回はバックエンド環境のセキュリティグループの設定および、
EC2、RDSそれぞれの実行環境を構築します。

## 構成(フロントエンド含む)
### EC2
Webアプリのバックエンドを実行します。
今回はJavaのjarファイルを常時実行し、フロント側から実行されたAPIを処理します。
RDSに構築されたデータベースとデータをやりとりします。
今回はSpringBootで実装しています。
なお、HTTPS接続したいために、SSLを有効にしています。
その際、今回はテスト環境のため自己署名証明書を使っています。

### RDS
Webアプリのデータベースを担います。
今回はPostgreSQLです。

### S3
Webアプリのフロントエンドを配置します。
静的ウェブサイトとして設定し、エンドポイントにアクセスすることでフロント側の画面を表示します。
今回はVue.jsを用いて画面を作成します。

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

元記事を表示

Cloudformationで構築したEC2にAnsibleを設定、実行するまで!

## はじめに
前回Cloudformationで構築した環境にServerspecでテストの実施を行うために、Ansibleで環境を構築する。
記事はこちら↓
[AWS CloudFormationのテンプレートをLayer別に作成してクロススタック参照を作ってみた。](https://qiita.com/ezakiglico0215/items/09719bfbcf6c7f164369)

## 目指すゴール
– EC2(1a)にテスト実行サーバーとしてAnsibleを実装
– EC2(1c)にテスト対象サーバーとしてApacheを構築

### 構成図
![スクリーンショット 2022-06-02 8.35.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2601549/711a3a7d-c684-4018-104d-e5437a3e7204.png)

## Ansibleのインストール
Ansibleサーバにssh接続したところからスタート!
まずはサーバーにAnsibleをインストー

元記事を表示

RDSのKMSキー変更でコンソール表示に惑わされた話(MySQL)

先日RDSのKMSキーをマネージドキー(aws/rds)からカスタムマネージドキーに変更する作業を行ったのですが、RDSのコンソール画面に惑わされて時間がかかってしまったので備忘録として書いておきます。

## 何に戸惑ったのか
RDSのKMSキー変更の手順は[こちらの通り](https://aws.amazon.com/jp/premiumsupport/knowledge-center/update-encryption-key-rds)で、
①対象RDSのスナップショットを取得
②そのスナップショットをコピー ※この段階で変更したいキーで暗号化選択を必ず行う
③コピーしたスナップショットからRDSを復元

といった流れで対応します。

何に時間をとられたか、というと
1.②スナップショットのコピーと、③RDS復元の両段階でKMSキーを指定選択するものと認識していた


2.あれ、③RDS復元段階でコンソール画面上KMSキー選択欄がグレーアウトしている…選択できないぞ?!しかも選択されているキーがマネージドキー(aws/rds)のままみ

元記事を表示

AWS CDKをDenoで動かす2 experimentalモジュール編

https://qiita.com/rinfield/items/49b89005678da188c214

の続きで、DenoでAWS CDKを動かしていきます。

## 要約
– CDKモジュールを複数esm.shからimportする場合constructsのバージョン合わせが必要

## experimentalモジュールを使う

AWS CDK v2はパッケージが1つにまとまりましたが、
依然experimentalモジュールは別モジュールとして配布されています。

experimentalモジュールとして一番使いそうな[Amazon Kinesis Data Firehoseモジュール](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-kinesisfirehose-alpha-readme.html)を使ってみます。

### 素朴なインポート
“`ts
// app.ts
import cdk from “https://esm.sh/aws-cdk-lib@2.26.0”;
import logs from “htt

元記事を表示

AWS Cloud9でRailsサーバーにアクセスできない場合の対処法

こんにちは!昔恩師に「できるエンジニアには巨漢が多いんや、Appleがそうやったように」
って言われて以来、ずっとその言葉を信じているUD(ゆーだい)です。

今回は、Railsチュートリアルでも使用されるAWS Cloud9で一度は引っかかるプレビュー時のあれこれについてメモ程度に記事にしていこうと思います。

# AWS Cloud9とは
そもそもAWS Cloud9とはなんぞやという人はこの記事は読まないと思うのですが、一応説明するとAmazon Web Serviceで提供されているオンライン統合開発環境(IDE)のことです。

もっと簡単に言うと、ブラウザで動かせるエディタだと思ってください。

### メリット
1. オンライン環境であれば、PCスペックにほとんど依存せず開発が可能
2. 共同編集機能やチャット機能がついている
3. 他のAWSサービスにアクセスしやすい

### デメリット
1. オフライン環境では開発できない(今時オフラインで開発しないですよね…?)
2. ターミナルやエディタが見ずらい
3. 使用方法によっては有料になる

メリットとデメリットを見

元記事を表示

S3トリガのLambdaを作成する際の注意点について

## 事象
今回、AWS S3にファイルがputされたことをトリガに起動するLambdaを作成したのですが、ファイルサイズが大きいファイルを該当のS3バケットにアップロードした際にイベント通知がされずLambdaが起動しないというトラブルがありました。
その原因と対策を共有させて頂きます。

## 原因
そもそもS3には様々なイベント通知のタイプが存在します。

S3トリガのLambdaを作成する場合は、トリガーとしてS3バケットに対してどのようなアクションがあった時に通知を送るかを設定する必要があります。

今回の場合は、S3にファイルが配置(PUT)された時にLambdaを起動させたかったので、以下のPUTのイベントタイプを設定しました。

イベントタイプ:s3:ObjectCreated:Put

AWSのドキュメントを見て頂くと全てのイベント通知のタイプを確認できます。
https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/notification-how-to-event-types-and-destinati

元記事を表示

IAM Role/Policy について

# ポリシーとは
ポリシーとは、「誰が」「どのAWSサービスの」「どのリソースに」「どのような操作を」「許可する/しない」かを制御するものである

https://dev.classmethod.jp/articles/aws-iam-policy/

[サービス一覧とサービスに対する記述可能なアクション(操作)一覧](https://docs.aws.amazon.com/ja_jp/service-authorization/latest/reference/list_amazonelasticcontainerservice.html)

# ポリシーの分類
[Identity-based policies and resource-based policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_identity-vs-resource.html)
## アイデンティティベースポリシー
アイデンティティベースポリシーのポリシーでは、IAMユーザー、IAMグループ、IAMロールに関連付

元記事を表示

CodePiplineのDeploy StageでInstall eventsが一生続いた話

# 結論
CodeDeployなどログを直接確認できないサービスにおいては、その処理に関連するサービス、リソースのところに行き何か手がかりとなるものがないか探すのが良い!

# 事案

CodePiplineを実行しDeploy stageの段階に来たときに

`Step 1. Deploying replacement task set`
`Deployment lifecycle events`が`install`

にて`in progress`の状態で一生止まっていた

直接ログ確認などができずどうしたものかと悩んでいた
冷静に考えてみると`Deploying replacement task set`ということでタスクの切り替えを行なっている段階ということでタスク関連であると

そこで今回のデプロイで使用されているタスク定義を調べた

`CodeDeploy > Deploy > Deployments > Deploy`
画面にて`Revision details`からRevisionの詳細画面にいくと`appspec.yaml`を確認することができる

![スクリーンショ

元記事を表示

SSM セッションマネージャーによるBastion設計

# セッションマネージャー
Systems Managerの機能の一つにセッショ、ンマネージャーが存在する
これは、今まで行っていたEC2などの接続に用いていた`ssh`を不要とするマネージドインスタンスへの接続方法を可能とする

## メリット
– `ssh`で必要としていた公開鍵の保管が不要となる
– IAMによる認証・認可ができる
– SSHポートへのインバウンドアクセス許可が不要になる
> 443番アウトバウント許可のみ必要です。SSM AgentがSSMエンドポイントに対してポーリング行なう際に使用します。
– ターミナル内で行ったログが取れる

# 設計
今回はインスタンスにFargateを用いたBastion構築を行います
その時考慮するべき点がいくつか存在する

## アクティベーションコードの運用
マネージドインスタンス化するためにアクティベーションIDとコードが必要となるがアクティベーションコードには有効期限がありデフォルトでは24時間となっている。そのため、必要な時だけ踏み台サーバーを起動する運用方針の場合、期限切れ後に起動したインスタンスはアクティベーション化す

元記事を表示

EC2 インスタンスタイプ〜t系〜

EC2(Elastic Computing Cloud)のサーバーには構成要素がいくつかある。
EC2は仮想サーバーであるが、実態として存在するサーバーの構成要素とほぼ対応しており

– AMI
– インスタンスタイプ
– EBS
– ENI

が存在する。
今回は、特にインスタンスタイプの1つであるT系に注目する

# インスタンスタイプ
先にインスタンスタイプについて軽く

インスタンスタイプの構成要素にCPU、メモリ、ストレージ、ネットワークキャパシティーがある。

`t2.micro` などと表記され、先頭の`t`はファミリー名と呼ばれ、種類によってそれぞれ異なるユースケースに合わせたスペックを持つ。
例えばm系ならば汎用インスタンスと呼ばれ、バランスの取れたコンピューティング、メモリ、ネットワークのリソースを提供しており、c系では、コンピューティング最適化インスタンスと呼ばれ、高パフォーマンスプロセッサの恩恵を受けるコンピューティングバウンドなアプリケーションに最適である。

その隣の数字は世代を表している

`.`の右側はインスタンスのサイズを表しており`nano` `m

元記事を表示

AWS: Root User と AdministratorAccess Policyの権限の違い

ルートユーザーは全権限がある。

そのため、アカウント管理のベストプラクティスとしてIAM Userを作りそれぞれのユーザーに相応の権限(ポリシー)を付与するのが良い。

しかし、ポリシーの中に `Administrtor Access`というものがある。
これは管理者権限を持つものだが、ふと疑問に思った。

これはルートユーザーとの権限の差異はどこにあるのか?と。

そこで調べてみた〜〜〜!

クラメソさんがもう記事書いてた
https://dev.classmethod.jp/articles/only_aws_account/

aws公式ドキュメントにも載ってた。(ルートユーザーしかできないこと)
https://docs.aws.amazon.com/ja_jp/general/latest/gr/root-vs-iam.html#aws_tasks-that-require-root

**ルートユーザーしかできないこと(重要そうなの抜粋)**
– ルートユーザーの権限情報の変更
– 請求およびコストマネジメントコンソールへの IAM アクセスを有効にする
– AWSアカウ

元記事を表示

~Codepipline~ CodeCommit変更の検出方法

# 概要
`CodePipline`では、ソースコードリポジトリへの変更を検出することでCodePiplineが実行される。
この検出方法にはポーリング型とプッシュ型が存在する

# Poll型
ソースコードリポジトリが変更されたかどうかをポーリングによって検出する
ポーリングとは、複数のクライアント端末の状態を管理・制御する方式で、ホスト端末が接続されているクライアント端末の状態を決められた順番で問い合わせる
[ポーリングとは](https://atmarkit.itmedia.co.jp/aig/07wcr/polling.html#:~:text=%E3%83%87%E3%83%BC%E3%82%BF%E8%BB%A2%E9%80%81%E6%96%B9%E5%BC%8F%E3%81%AE1,%E3%81%97%E3%83%9B%E3%82%B9%E3%83%88%E3%81%8C%E5%8F%97%E4%BF%A1%E3%81%99%E3%82%8B%E3%80%82)

# Push型(イベント駆動)
https://docs.aws.amazon.com/codepipel

元記事を表示

CFnによるECS on FargateのBlue/Green DeploymentをCodePiplineで実装した手順

# 目次
1. [Networkの構築](#network)
2. [ECS on Fargateの構築](#ecs)
3. [Pipelineの構築](#pipeline)

# 1. Networkの構築
ここでは、VPC, Subnet, RouteTable, InternetGateway, VPC Endpoint, Security Groupを作成する

詳細は以下を参考

# 2. ECS on Fargateの構築
1. [クラスターとロググループ作成](#cluster)
2. [タスク実行ロール作成](#taskExecutionRole)
3. [タスク定義作成](#taskDefinitions)
4. [ロードバランサー作成](#loadbalancer)
5. [VPC Endpoint作成](#vpce)

## クラスター作成

“`yaml
ECSClusterBackendApplication:
Type: AWS::E

元記事を表示

Redshiftのsuper型配列を反復処理する方法

# はじめに
Redshiftの[superデータ型](https://docs.aws.amazon.com/ja_jp/redshift/latest/dg/r_SUPER_type.html)は、配列などを簡単に扱うことができ、とても便利である。
今回は、superデータ型の配列を反復処理する方法を簡潔にまとめてみた。

# 参考ドキュメント
https://docs.aws.amazon.com/ja_jp/redshift/latest/dg/query-super.html

# テスト用テーブル準備
今回の検証のために、以下のようなカラムを持つテンポラリテーブルを作成した。

“`
create temporary table tmp_test_super(
username varchar(8),
hobby super
);
“`

次に以下の値を持つ、jsonファイルを作成し、作成したテーブルにインポートした。

“`
{“username”:”Mac”,”hobby”:[“baseball”,”soccer”,”tennis”]}
{“username”:”

元記事を表示

AppSync & Aurora Serverless の GraphQL バックエンドを CDK で構築したぞい!(2022/05/24版)

# はじめに

これまで、API Gateway + Lambda + RDS(or Aurora Serverless)の REST API バックエンドしか実装したことがなかったのですが、いま参加している開発ではじめて AppSync + Aurora Serverless の GraphQL バックエンドを実装することになったので、色々調べならが実装中の、現時点の CDK のコードについて軽く紹介してみたいと思います。

> 本記事は、以下の記事の後続記事となります。
> Aurora Serverless の CDK のコードについてご覧になりたい方は、こちらをどうぞ。
>
> – [Aurora Serverless V2 を CDK v2 で構築できるか試してみたぞい!(2022/05/24版)](https://qiita.com/r-hirakawa/items/c71ead3e51307f3710b8)

# 試した内容

## 利用したライブラリ

| ライブラリ名 | バージョン |
| ——————–

元記事を表示

AWS SSL化設定後に、アクセスできない【見直したい点】

# AWS SSL化の設定したはずが、、、
おはこんばんにちは!
AWSを触り始めのエンジニアです。

今回、EC2上にアプリケーションを構築し、httpにてDNS名前解決までできており、
**https通信**したい!と思い立ち、以下記事を参考に設定を全て完了しました。

https://qiita.com/nakanishi03/items/3a514026acc7abe25977

*しかし、、、*
設定したはずの、ドメインにてアクセスするもタイムアウトになり、アクセス不可。

Apacheのエラーログを見てみたり、以下記事を参考に見直してみるも解消できず…

https://qiita.com/kn2728/items/c4c1504753a3aefff927

# 原因はセキュリティグループだった
EC2インスタンスのセキュリティグループが、作成したロードバランサーのセキュリティグループに追加されていませんでした。

![スクリーンショット 2022-06-01 14.15.37.jpg](https://qiita-image-store.s3.ap-northeast

元記事を表示

OTHERカテゴリの最新記事