- 1. AWS IoTのポリシー名から紐づく証明書を取得する
- 2. RedshiftのUNLOADでPARTITION BYを行う際にファイルのプレフィックスが付けられない場合の回避策
- 3. [Github_Actions][error]User: arn:aws:iam:::user/is not authorized to performの解決例
- 4. パーミッション事故でSSHログインできなくなった時の対処(AWS EC2)
- 5. EBS ボリュームとパフォーマンス再入門
- 6. AWS Certified Solutions Architect – Professional を取得した
- 7. AWS Cloud9上でJupyter labを開く方法
- 8. AWS S3+Github Action+IP制限でwebサイトをホスティングする
- 9. AWS Cloud9で環境を作成しようとした際のエラーたち
- 10. はじめて携わるaws Amplify チュートリアル(準備編)
- 11. AWS日記32 (SageMaker Studio)
- 12. Cloud9環境へDockerのインストール方法 準備編
- 13. AWS ECS コンテナ毎のメトリクスを取得する
- 14. EC2 Ubuntu インスタンスに CloudWatch Logsエージェントをインストールして設定する
- 15. AWSにてELBを削除しようとするとLoad balancer ‘…’ cannot be deleted because it is currently associated with another serviceのエラーがでて削除できない
- 16. LambdaからRDSへ接続してみる
- 17. 【Active Directory 】GPOの優先順位をAWS EC2上で検証してみた
- 18. Step Functionsを使ってStorage Transfer Serviceの転送ジョブを管理する
- 19. Workload Identity + フェデレーションIDを使用して、AWS環境からStorage Transfer Serviceの転送ジョブを作成する
- 20. 【ハンズオン】Flutter-for-webをS3でホストしてCloudFrontで配信する +aでCICDも!
AWS IoTのポリシー名から紐づく証明書を取得する
# 何がしたいか
AWS IoTのPolicy名から紐づく証明書がわかるかの調査です。
これができるなら、MACアドレスやdeviceのIDなどデバイス固有の値をPolicy名にすることで、DBなどにdeviceと証明書の紐付き情報を持たずに、以下項目ができると考えています。
* デバイス再登録時に証明書を再作成する
* ポリシーはそのままで、証明書を削除&作成する
* デバイス削除時にポリシーと証明書を削除する
* 証明書もポリシーも削除する## Policyが紐づいている証明書のArnを表示
“`bash
aws iot list-targets-for-policy –policy-name <ポリシー名>
“`取得できる情報
* targets
* 証明書のarnのリスト# 結論
ポリシー名から証明書を引くことはできる。
# おまけ
## Policyの内容を名前から表示
“`bash
aws iot get-policy –policy-name <ポリシー名>
“`取得できる情報
* poli
RedshiftのUNLOADでPARTITION BYを行う際にファイルのプレフィックスが付けられない場合の回避策
# やりたいこと
– yyyymmごとに溜まっていくデータを対象とし
– Athenaで扱うためのParquetデータを作成したい(AthenaのCTAS以外で)
– とあるカラムのデータから分散させた partition_number でパーティションを分けたい
– でもyyyymmではパーティション切りたくない
– RedshiftのUNLOADの機能「PARTITION BY」を利用したい# やってみた
まずは1か月分のyyyymmで試します。“`unload1.sql
unload
(‘select column1, column2, column3,partition_number from tablename where yyyymm =\’202101\’ ‘)
to ‘UNLOAD-TO’ CREDENTIALS ‘aws_iam_role=MYROLE’
FORMAT AS PARQUET
PARTITION BY (partition_number)
PARALLEL ON allowoverwrite;
“`PARTITION BYによ
[Github_Actions][error]User: arn:aws:iam:::user/is not authorized to performの解決例
## エラーの様子
下記のように題名のエラーを吐いた。
![スクリーンショット 2021-11-01 7.31.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/555157/e639dc4e-dd7a-ac26-059e-530871785157.png)## 原因
github用のiam_roleのaccess_key_id,secret_key_idを通常のawsアカウントのもので環境変数に登録してしまったから。(画像では***になっている部分)## 解決法
下記コマンドで該当のiam_roleのaccess_key_id,secret_key_idを確認する→それを環境変数に登録する
“`
% aws iam get-account-authorization-details
“`access_keyがなければ下記コマンドで生成する。
“`
% aws iam create-access-key –user-name example-prod-foobar-gith
パーミッション事故でSSHログインできなくなった時の対処(AWS EC2)
WordPressでサイト作ったけど、SSH接続できなくなりました!
っていうヘルプがきたので対処してみました。historyに残ってた最後のコマンド***(絶対うたないでね)***
“`
sudo chown -R ec2-user /
“`恐怖ですね…数年に一度は見るLinux事故です。
以下、私が対処した流れです。
あくまで***私が対処した流れ***で、ベストな手順ではないので注意してください。
実施の前にはデグレを防ぐため、***スナップショット***を取得しておきましょう。###①全体的なパーミッションの変更(実際に対処するときは項目4までで良いかも?)
不幸中の幸いか、EBSは***デタッチ/アタッチ***ができるので復旧の余地が大いにあります。***1、EC2停止→EC2→ボリューム→該当のボリュームを選択→アクション→デタッチ***
***2、アタッチ→復旧用のインスタンス(停止済)を選択***
復旧用インスタンスを用意します。
復旧用インスタンスは同じAZであること。
この時/dev/以下はデフォルトでOK。***3、復旧用インスタ
EBS ボリュームとパフォーマンス再入門
## EBS ボリュームタイプの選択
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ebs-volume-types.html### EBS ボリュームの種類
Amazon EBS では複数のボリュームタイプが提供されており、パフォーマンス特性と料金が異なります。
* 汎用 SSD (gp2, gp3): その名の通りほとんどのワークロードに適しています
* Provisioned IOPS SSD (io1, io2, io2Block Express): ミッションクリティカルで高い I/O 性能が求められるワークロードに適していますそれぞれのボリュームタイプの最大性能が決まっており、このカタログ値も判断基準の一つです。
詳細は後述しますが、すべてのボリュームで常に最大パフォーマンスが得られるわけではないことに注意ください。| ボリュームタイプ | gp2 | gp3 | io1 | io2
AWS Certified Solutions Architect – Professional を取得した
# 前回のお話
https://qiita.com/morio1101/items/078351c7d013e8ecdaa6# はじめに
本記事は、将来再認定を受けるときの備忘録でもあります
本記事を見る時点で大体AWS認定試験のことや、Solutions Architect – Professional のことは大体理解されている前提で記事をまとめたいと思います# 試験を受ける前の私のスペック
* AWS を使った業務経験は最低限はある
* EC2 関連がメインであり、その他機能についてはほぼ知らないに等しい状態
* AWS認定試験は以下を取得
* アソシエイト資格3種
* スペシャリティ 試験3種
* データアナリティクス
* セキュリティ
* ネットワーク
* データベース# 学習教材
* AWS 認定ソリューションアーキテクト – プロフェッショナル 試験特性から導き出した演習問題と詳細解説
* AWS WEB 問題集で学習しよう※ 今回、模擬試験はやってません
# 学習期間
10/1 – 10
AWS Cloud9上でJupyter labを開く方法
今回は、AWSの統合開発環境(IDE)Cloud9上でデータサイエンスをする上で開発効率が一気に上がるIDEのJupyter Labを立ち上げる方法を紹介します。
#この記事の流れ
① Cloud9にJupyterをインストール
② Jupyter labを立ち上げる
③ Jupyter labに入る##①Cloud9にJupyterをインストール
今回使うCloud9はAmazon Linux2、Pythonはdefaultのversion 3.7.10をを使っています。
それでは、Cloud9上のTerminalでJupyter labをインストールしましょう。“`pip install jupyterlab
“`##②Jupyter labを立ち上げる
次にJupyter Labを立ち上げます。ここで、ローカル環境でよくやる“`jupyter lab“`
というコマンドを書けばすぐに立ち上がってWebブラウザを開いてくれましたが、Cloud9ではそうなりません。
またJupyter Labのデフォルトポート番号は8888ですが、Cloud9上で実行して
AWS S3+Github Action+IP制限でwebサイトをホスティングする
– AWS S3の静的ホスティングの設定〜Github Actionでデプロイが走るとS3にアップロードしてくれるパイプライン構築までの手順を自分用にまとめました。
– IP制限もかけられるようにしました。## AWS側の設定
### S3の設定
1. [https://s3.console.aws.amazon.com/s3/home?region=ap-northeast-1](https://s3.console.aws.amazon.com/s3/home?region=ap-northeast-1)へアクセスし、バケットを作成をクリックする。
![スクリーンショット 2021-10-31 19.18.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/527664/22b01917-f79b-04b4-48c9-e87982817b77.png)1. 任意のバケット名を入力し、リージョンを選択(ap-northeast-1)し、**パブリックアクセスを全てブロックのチェックを外す**。
AWS Cloud9で環境を作成しようとした際のエラーたち
#### AWS Cloud9で環境を作成しようとした際のエラーです
ある日、Cloud9で新規環境を作成しようとすると、下記のエラーが出ました
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/565397/c667e51d-d7e8-a160-7bdc-1ea2fa667812.png)素直に、CloudFormationが原因と考えて、色々調べたところ下記の検索結果がヒントになりました
https://aws.amazon.com/jp/premiumsupport/knowledge-center/cloudformation-stack-delete-failed/URLにある記事のとおり、下記の画面で「削除」を実行します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/565397/929e2889-51c1-4db9-9d90-1f7f8990ecc1.png)
![
はじめて携わるaws Amplify チュートリアル(準備編)
aws Amplify チュートリアルをやる前の準備
#準備
## ローカル環境確認
node -v
npm -v
create-react-app –version
amplify –version## アカウント取得
Githubアカウント取得
awsのアカウントを取得
Reactのローカル環境を構築# ローカル環境構築
##参考
M1macでReactの環境構築をやってみた
https://www.mitsurog.com/opinion/m1macbook-react/###Reactの環境構築に必要なファイルをインストールする
– homebrewのインストール
– nodebrewのインストール
– nodeのインストール
– npmのインストール
– yarnのインストール
– crea-react-appのインストールamplifyのインストール
“`
npm install -g @aws-amplify/cli
“`# アカウント取得
・Githubアカウント取得
・awsのアカウントを取得## Githubアカウント
AWS日記32 (SageMaker Studio)
# はじめに
今回は [Amazon SageMaker Studio](https://aws.amazon.com/jp/sagemaker/studio/) を試します。機械学習のための統合開発環境を起動し、サンプルコードを実行します。
# 初回設定
– AWSマネジメントコーンソールから Amazon SageMaker > SageMaker Domain を開きます。
– クイックスタート欄のIAMロールを設定します。
– 次の画面でVPCを設定します。![sagemaker_studio_1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/586707/d68cbd11-0793-d833-8c61-03acbccb2652.jpeg)
# 起動
– 初回設定の後しばらく待ちます。![sagemaker_studio_2.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/586707/
Cloud9環境へDockerのインストール方法 準備編
## 概要
Dockerを使用した開発にあたり手持ちのWindows端末ではいろいろと不便になってきたのでCloud9で開発をできるようにしてみようかと思います。
作成の部分は[こちらAWS CLI 専門支部のイベント](https://jawsug-cli.connpass.com/event/222881/) を参考に作っています。## Cloud9用VPC作成
### VPCの設定
* Cloud9用のVPCを作成します。
* CloudShell で以下のコマンドを実行していきます
* #以下のコマンドをコピペして実施すればできます“`shell
# 各変数の設定 ターミナルを切り替えたりした場合は再度設定が必要になります
AWS_REGION=”ap-northeast-1″
EC2_VPC_TAG_NAME=’docker-vpc’
EC2_VPC_CIDR=’10.0.0.0/16′
EC2_INTERNET_GATEWAY_TAG_NAME=’docker-internet-gateway’
EC2_ROUTE_TABLE_TAG_NAME=’do
AWS ECS コンテナ毎のメトリクスを取得する
AWS ECS でコンテナ毎のメトリクス(CPU使用率やメモリ使用率など)を取得する方法です。
ECSの起動タイプはEC2、Fargateにて確認しています。取得できるメトリクスは以下サイトの「Type: Container」に記載のある項目です。
[Amazon ECS の Container Insights パフォーマンスログイベント](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Container-Insights-reference-performance-logs-ECS.html)# 概要
CloudWatch Container Insightsを有効にしたECSクラスターは、コンテナのメトリクス情報
(パフォーマンスログ)がCloudWatch Logsに出力されます。
そのログに対してCloudWatch Logs Insightsでクエリを実行することでメトリクスを取得できます。
本記事ではCPU使用率とメモリ使用率を取得します。## CloudWatch Logs In
EC2 Ubuntu インスタンスに CloudWatch Logsエージェントをインストールして設定する
CloudWatch Logs エージェントをインストールすると CloudWatch Logs の画面でEC2インスタンスで実行されているアプリケーションのログがリアルタイムに閲覧できます。
# IAMロール設定
まずは適切なロールが必要です。
下記のポリシーで新規ロールを作って、そのロールをEC2インスタンスに割り当てます。“`
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Effect”: “Allow”,
“Action”: [
“logs:CreateLogGroup”,
“logs:CreateLogStream”,
“logs:PutLogEvents”,
“logs:DescribeLogStreams”
],
“Resource”: [
“*”
]
}
]
}
“`ロールが作成できたらEC2インスタンス一覧画面で、インスタンスを右クリックして、セキュリティー
AWSにてELBを削除しようとするとLoad balancer ‘…’ cannot be deleted because it is currently associated with another serviceのエラーがでて削除できない
## 背景
– EC2 > ロードバランシング > ロードバランサー
– 削除したいロードバランサーを選択してアクションで削除をクリック後、赤字でタイトルのエラーが表示され削除ができない## 結論
– 統合サービスと連携している場合はまずそちらを削除する
– 今回は緑のチェックが入ったVPC エンドポイントサービス (AWS PrivateLink)を使用していたため、サービスIDをクリックし、サービスID先を削除することでELBの削除が可能になった![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/308965/d867eb47-8a60-ac33-ca5a-abda3442ad54.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/308965/93f3466a-9cd5-3e68-478b-0cad7c95af2b.png)## メモ
– 上記の前に以下を行った
LambdaからRDSへ接続してみる
#ご挨拶
タイトルの通りLambdaからRDSへ接続してみたので記事を書いていきます。
最近業務でLambdaを使用することが増えてきたので勉強になればと思いやってみました。
#やること
LambdaでプライベートサブネットにあるRDS MySQLに向けてSQLを実行して実行結果を確認します。
今回RDSの作成はCloudFormationを使用しています。
事前にプライベートサブネットを二つ作成しています。
以下の手順で進んでいきます。1. Lambda関数の作成
2. IAMロールの編集
3. RDSの作成
4. LambdaをRDSに接続できるように設定
5. テスト実行###構成図
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/612471/080a41ab-852d-2f12-2066-cf1b11abea77.png)#参考にしたサイト
[チュートリアル: Amazon VPC の Amazon RDS にアクセスする Lambda 関数の設定](https://
【Active Directory 】GPOの優先順位をAWS EC2上で検証してみた
#目次
[1.はじめに](#はじめに)
[2.検証結果_gpoの優先順位](#検証結果_gpoの優先順位)
[3.検証準備_ec2の作成および日本語化](#検証準備_ec2の作成および日本語化)
[4.検証準備_adインストールおよびdc昇格](#検証準備_adインストールおよびdc昇格)
[5.検証_gpoの優先順位](#検証_gpoの優先順位)
[6.まとめ](#まとめ)#はじめに
Windows Serverの機能で、ユーザや機器の集中管理に利用できるActive Directoryですが、GPO(グループポリシーオブジェクト)の優先順位で時々混乱してしまうため、記事として整理しました。GPOの優先順位で混乱することを減らすためには実際に手を動かすことが有効であると考え、実機を通した検証を行いました。尚、Active Directoryを使用するためにはWindows Serverが必要になってきますが、今回はAWSのEC2にてWindows Server2019を用意し、検証を実施しています。
#検証結果_gpoの優先順位
今回2つの検証を実施しますが先に結果をまと
Step Functionsを使ってStorage Transfer Serviceの転送ジョブを管理する
# 概要
https://qiita.com/okadarhi/items/5ff734c6472b83d51597 の続き。
AWS側で転送元のデータを作成するが、作成処理が完全に完了してから転送ジョブを実行して欲しいという要望があり、スケジュール実行ではなく、AWS側から手動で転送ジョブを実行する方法を検討した。
転送ジョブを実行するAPIがあるのだが、それは実行しかしてくれず、転送ジョブの成否は別のAPIで確認する必要があった。
実行するAPI: https://cloud.google.com/storage-transfer/docs/reference/rest/v1/transferJobs/run
確認するAPI: https://cloud.google.com/storage-transfer/docs/reference/rest/v1/transferOperations/get
なので、転送ジョブの実行と確認を管理するジョブを作成しようと思い、Step Functionsを採用することにした。
その時行った検証作業を備忘録としてまとめる。# 手順
## L
Workload Identity + フェデレーションIDを使用して、AWS環境からStorage Transfer Serviceの転送ジョブを作成する
# 概要
AWS環境に構築したシステムのデータを、Google Cloud環境にあるデータレイク(GCS)に格納して欲しいという依頼があり、Storage Transfer Serviceを使って、S3バケットからGCSバケットにデータ転送することにした。
また、なるべく永続的なキー情報を使用せずに対応して欲しいとの要望があり、– Storage Transfer Serviceの環境構築するために、Workload Identityを使用すること
– Storage Transfer ServiceがS3バケットのアクセス設定でフェデレーションIDを使用することを提案しようと思ったが、まずはちゃんと実装できることを確認するために検証作業を行った。
その時に実施した作業内容を備忘録としてまとめる。# 手順
## Workload Identityの設定
Workload Identityを設定して、JSONの認証情報ファイルを取得する。
手順はNRIネットコムの記事が綺麗に纏まっているので割愛。
https://tech.nri-net.com/entry/2021/07
【ハンズオン】Flutter-for-webをS3でホストしてCloudFrontで配信する +aでCICDも!
## 前置き
### 想定読者
flutter-for-webをAWSのs3でホストしてCloudFrontを使用して配信したい方。
**+aでCICDも行って開発スピードを上げたい方**### 目的
私が今回初めて参画したプロジェクトでフロントエンドをFlutter-for-webで実装をしておりその時の
– AWSを用いたSPAでのホスト
– codeシリーズ用いたCICD
– buildspec.ymlの書き方上記で躓いたので共有したいと思いこの記事を書きました
## 準備
### ハンズオンで作成する手順
1. S3の作成
1. CloudFrontの作成
1. FlutterプロジェクトをローカルでビルドしてS3にアップロードする
**——– ここまででS3 + CloudFrontでの配信は完了 ——–**
1. IAMポリシーの作成
1. IAMロールの作成
1. GitHubと接続
1. CodePipelineの作成
1. 該当のリポジトリにbuildspec.ymlファイルを追加
1. 一旦FlutterコードをCloud