【メモ】AWS CodeDeploy で GitHub の Organization Account の Private Repo をデプロイできなかったので調査メモ

ハマった。あとで技術ブログにまとめるために備忘録。

やりたかったこと

  • EC2 で動いている WEB アプリのデプロイ自動化をやりたい

はまったこと

  • GitHub の Organization アカウントのプライベートリポジトリに CodeDeploy がアクセスできない
  • GitHub と CodeDeploy の連携が必要っぽいのだがどうすればいいかわからない

結論

  • AWS CLI だけだと多分完結できなくて、一回手動で CodeDeploy のデプロイ作成画面で「GitHub に接続」を押して連携する必要あり
  • Organization の Owner アカウントだとそれだけでいけるけど、そうでない場合は Organization にアプリ連携のリクエストする必要あり
  • 連携→連携解除したら $ aws deploy delete-git-hub-account-token --token-name <tokenName> でキレイに消そう

メモ

  • 全部 CLI でできないっぽい(?)。一度、デプロイ画面から手動で GitHub と連携する必要ある
  • CodeDeploy の「デプロイ作成」画面
    • 「アプリケーション」「デプロイグループ」を入力
    • 「アプリケーションは GitHub に格納されています」を選択
    • GitHub アカウント」にユーザー名を入力して「GitHubに接続」を押す
    • アプリ連携の画面が表示されるのでそのまま連携完了

で、この作業を Organization の Owner の GitHub アカウントで実施した場合は、この状態で Organization と連携できてるので完了。そうでない GitHub アカウントで実施した場合は、Organization にアプリ連携をリクエストする必要ある。やり方は GitHub 公式ヘルプのこちら。

で、この作業をした後に、GitHub 側で連携解除したら、CodeDeploy 側に保存されているアクセストークン情報も削除する必要ある。 $ aws deploy list-git-hub-account-token-names で確認して、$ aws deploy delete-git-hub-account-token --token-name <tokenName> でキレイに消してからやってみるとうまくいく。

ハマった要因

  • 今と昔でちょっとやり方が違うっぽくて、昔のやり方の記事にヒットしてごちゃごちゃわちゃわちゃやってたらわからなくなった。焦らず落ち着いてやろう(自戒)。
  • AWS のドキュメントの日本語にまだ慣れてないので読めない、、、精進します。

ちょっとこれは AWS の人に聞いてみたい

  • CodeDeploy の「GitHub アカウント」のユーザー名に「-」が入力できない・・・!泣く泣く GitHub のアカウント名変えた・・・orz なにか回避策はあるのかな?
  • CodeDeploy で GitHub 連携後に「GitHub アカウント」のユーザー名にめっちゃ適当な文字列いれてもエラーにならない。これは大丈夫なのかな??